A WooCommerce export, going into Shopify
Two grammars that disagree about what a variant is. Woo points a child row at a parent SKU; Shopify groups by a handle that repeats.
How you recognise it
- An
IDcolumn, aTypecolumn readingsimpleorvariableorvariation, and aSKU. - Variation rows that reference their parent rather than repeating a group key.
- Attribute columns spelled as
Attribute 1 nameandAttribute 1 value(s).
What goes wrong
Worst first, and the worst one is nearly always the one that reports nothing.
- The parent-child relationship has no equivalent in the Shopify file. It has to become a repeated handle, and a mechanical rename of the column does not do that.
- A variable parent row carries no price of its own. Copied across as a product row it becomes a product priced at nothing.
- Woo lets one attribute hold several values in one cell. Shopify wants one value per variant row, and the expansion is where variant counts silently change.
What we do about it
- Row roles are classified before anything is mapped, so a parent row and a variation row are never treated as the same kind of thing.
- Rows in and rows out are counted and reported on every run. A transformation that changes the count says so.
- The WooCommerce grammar is published in full, next to the Shopify one, so the two models can be compared rather than assumed to match.
Where this came from
Each of these is a real file in our test corpus, run through the engine on every change. We publish the shape and what it proved, never a cell — these are catalogues with real buying prices in them.
- woocommerce_product_export.csv
- 101 rows · 17 columns. A real WooCommerce export with parent-child variation rows, which is the structural difference this page is about.
What we did not measure. Our Woo work is a published grammar and a parser that reads these files. The export writer for WooCommerce is not built, and this page does not claim a round trip we have not run.
Other shapes
- A Magento export, going into Shopify — A workbook that says it has forty rows and physically contains eight thousand. Most tools read the declaration.
- A Wix catalog export, going into Shopify — Row types encoded in a column, and descriptions with line breaks inside them. A line-based parser splits one product into several.
All export shapes · Import errors, measured · The Shopify product CSV grammar
Run the file you have.
Whatever shape it arrived in, the Pre-Flight Report names every blocker in it before you upload anywhere. Free, no account.
Check a file free