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 handleId column and a fieldType column 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

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