How to Move Your Products from Wix to Shopify (Variants and All)
The practical mechanics of getting a Wix Stores catalog into Shopify: CSV mapping, variant limits, images, inventory, and the data that will not survive.
Published June 23, 2026
4 min read
PortMySite
The catalog transfer is the part of a store migration that looks mechanical and turns out to be fiddly. Wix and Shopify both speak CSV, but they speak different dialects, and the differences are exactly where products get mangled. This is what happens between "export" and "import".
Step 1: Get the export out of Wix
In your Wix dashboard, the Store Products section offers a CSV export. Take it, open it, and look at what you actually received before assuming anything. Depending on your catalog you may notice:
- Options and variants flattened into columns that do not match how you think about the products.
- Rich-text descriptions reduced to HTML strings of varying cleanliness.
- Image references as Wix-hosted URLs.
- Inventory as a snapshot from the moment of export, it goes stale the moment someone buys something.
Export orders and customers separately while you are there. You will want all three.
Step 2: Understand Shopify's import format
Shopify's product CSV has a specific column vocabulary: Handle, Title, Body (HTML), Vendor, Type, Tags, Option1 Name/Value through Option3, Variant SKU, Variant Price, Variant Inventory Qty, Image Src, and friends.
The two formats do not line up one-to-one. The work is a column-mapping exercise:
| Wix concept | Shopify destination | Watch out for |
|---|---|---|
| Product name | Title + Handle |
The handle becomes the URL, keep it clean |
| Description | Body (HTML) |
Audit the HTML; Wix markup can be noisy |
| Options (size, colour…) | Option1–3 Name/Value |
Hard limit of three options |
| Price / sale price | Variant Price / Compare At Price |
Wix "sale" maps to compare-at logic |
| SKU | Variant SKU |
Blank SKUs import fine but haunt you later |
| Weight | Variant Grams |
Shopify wants grams, convert |
| Images | Image Src |
One row per additional image |
Step 3: The variant question
Shopify allows three options per product and (on standard plans) up to 100 variants. Most Wix catalogs fit comfortably. The ones that do not usually have a product like "T-shirt: size × colour × sleeve × print", four options, and that product must be restructured, typically by splitting it into two products or folding two options into one.
Find these products before import day. They are a decision, not a formatting task, and decisions made under launch pressure are bad ones.
Step 4: Test with ten before importing five hundred
Import a deliberately awkward sample first: your most variant-heavy product, one with a long formatted description, one with many images, one with a sale price. Inspect each in the Shopify admin and on the storefront.
The failure modes you are looking for: descriptions with broken formatting, variants that imported as separate products, images out of order, compare-at prices missing. Every one of these is cheap to fix in the mapping and miserable to fix across a full catalog.
Step 5: Images
Shopify pulls images from the URLs in your CSV at import time. Since the Wix store is still live (it should be, never take the old store down before the new one is verified), point the CSV at the live Wix image URLs and let Shopify fetch and re-host them.
Check a sample afterwards: image order matters on product pages, and the primary image should still be primary.
Step 6: Inventory, at the last responsible moment
Inventory quantities are the one column that goes stale while you work. The practical sequence: import the catalog early with approximate stock, build everything else, then do a final inventory sync just before cutover, either a fresh export/import of quantities or a manual pass on your fast-moving SKUs.
What will not survive, no matter how careful you are
Be clear-eyed about these before you start:
- Product reviews live in whichever app collected them. If the app exports, they can be imported into a Shopify review app; if it does not, they are gone. Check first.
- Wix-specific metadata, custom fields from Wix apps, has no Shopify equivalent unless you rebuild it with metafields.
- Sales history attribution. Orders can be imported as records, but analytics continuity resets. Screenshot your Wix reports before you lose access.
The part that outlasts the catalog: URLs
Every product had a Wix URL of the form /product-page/your-product, and its Shopify equivalent lives at /products/your-product. Google knows the old address, other sites link to the old address, your past customers bookmarked the old address. Each one needs a 301 redirect. Shopify's built-in redirect tool imports them as CSV.
A perfectly transferred catalog with no redirects is a store that vanished from search and reappeared as a stranger. The redirects are not an appendix to the product migration; they are the half of it that protects your revenue.
The short version
Export everything, map columns deliberately, respect the three-option limit, test with ten products, let Shopify fetch images from the live store, sync inventory last, and redirect every product URL. The catalog is data; the URLs are equity. Move both.
Doing this yourself?
Or hand it to people who do it weekly.
Fixed price, 7-day delivery, full 301 redirect map, no downtime. Send the URL and get a real quote back within one business day.