Moving from Shopify to WooCommerce usually means moving to WordPress for more control, lower transaction fees, or full ownership of your store. The product migration is the hardest part. Shopify and WooCommerce use completely different CSV formats, and a straight export-import doesn't work.
Step 1: Export from Shopify
In your Shopify admin, go to Products, click Export, select "All products" and "Plain CSV file." This gives you a CSV with Shopify's column names: Handle, Title, Body (HTML), Vendor, Type, Tags, Variant SKU, Variant Price, and about 20 more columns.
Step 2: Understand what needs to change
Here's the core mapping between Shopify and WooCommerce columns:
| Data | Shopify column | WooCommerce column |
|---|---|---|
| Title | Title | Name |
| Description | Body (HTML) | Description |
| Price | Variant Price | Regular price |
| Sale price | Variant Compare At Price | Sale price |
| SKU | Variant SKU | SKU |
| Stock | Variant Inventory Qty | Stock |
| Weight | Variant Grams | Weight (lbs) |
| Images | Image Src | Images |
| Category | Type | Categories |
| Product type | (all rows same Handle) | Type = simple/variable |
But it's not just renaming columns. The structure is different too.
Step 3: Restructure variants
Shopify puts every variant on its own row, all sharing the same Handle. The first row has the title and description, subsequent rows are blank except for variant data.
WooCommerce also uses multiple rows, but the first row must have Type = "variable" and list all possible attribute values with pipe separators (Small|Medium|Large). Child rows have Type = "variation" and reference the parent via the Parent column.
This restructuring is the most time-consuming part of the migration. For 10 products, it takes an hour. For 100+, it takes a full day.
Step 4: Handle weight conversion
Shopify stores weight in grams (Variant Grams column). WooCommerce uses pounds by default (Weight (lbs) column). You need to convert: divide grams by 453.592 to get pounds.
Step 5: Transfer SEO data
Shopify includes "SEO Title" and "SEO Description" in the export. WooCommerce doesn't have native SEO columns. If you use Yoast (most WooCommerce stores do), add "Meta: _yoast_wpseo_title" and "Meta: _yoast_wpseo_metadesc" columns and copy your SEO data there.
Step 6: Import to WooCommerce
In WordPress, go to Products, Import. Upload your reformatted CSV. WooCommerce's importer has a column mapping step where you can manually assign columns if the names don't match exactly. Review the preview and import.
Skip the manual reformatting
Export from Shopify, upload to Catalogd, select WooCommerce as your target platform, and download a properly formatted WooCommerce CSV. Catalogd handles the column mapping, variant restructuring, weight conversion, and Yoast SEO fields. Try it free with 5 products.