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.
How you recognise it
- A
handleIdcolumn and afieldTypecolumn that says what each row IS. - Long description cells that contain real newlines inside their quotes.
- Around fifty columns for a catalogue that is only a couple of dozen products.
What goes wrong
Worst first, and the worst one is nearly always the one that reports nothing.
- A parser that samples LINES rather than records sees a description newline as a row boundary. The file then appears to have many more rows than it has, and the correct quote character loses the vote to the wrong one.
- The row-type column has to be read before mapping. Treated as ordinary data it produces products whose title is a field name.
- The same export mixes product rows and variant rows without repeating a group key the way Shopify does.
What we do about it
- Delimiter and quote character are scored on the RECORDS they produce, never counted as occurrences. This file is the one that proved the difference.
- Newlines inside quoted fields are preserved through the parse and reported in the shape summary rather than silently normalised.
- Row roles are classified from the file’s own type column when it has one.
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.
- wix_catalog_export.csv
- 18 rows · 53 columns. Newlines inside quoted descriptions, which is the file that exposed line-based dialect sniffing and forced record-based scoring.
What we did not measure. Eighteen products is a small file. It proved a parser defect decisively, which is what it is cited for; it is not evidence about how a large Wix catalogue behaves.
Other shapes
- A B2B linesheet, going into Shopify — Six hundred columns, most of them empty, and a header row written for a human buyer rather than for an importer.
- An ERP export or a plain price list — Non-Latin headers, a European decimal comma, and identifiers a spreadsheet has already turned into numbers.
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