Synthetic Industry

Platform · updated 2026-10-11

CSV supplier files: find the first failing layer before changing the importer

For distributors and merchants who import product, stock and price data from CSV: a map of the layers a file passes through, where each fault shows up and which guide or job fits.

A CSV file promises less than people assume

RFC 4180 is an informational memo that records common practice; it says outright that it does not specify an Internet standard. It describes quoting, doubled quotes and an optional header, and leaves the character set to an optional parameter. Nothing in a CSV file says its delimiter, its encoding or what a value means. The W3C tabular metadata vocabulary exists to declare those things, such as encoding, delimiter and quote character, instead of leaving them to guesswork. For a supplier feed, that declaration is a layout description you write down and keep beside the importer.

Five layers, five different faults

A file passes through layers, and a fault belongs to exactly one. Bytes to characters: the wrong encoding, or an invisible byte-order mark. Characters to records: line breaks inside quoted fields. Records to fields: delimiters, quotes and doubled quotes. Fields to columns: a header that changed. Columns to meaning: units, identifiers, prices and categories. The quickest diagnosis starts at the first layer and moves up, because a fault low down corrupts everything above it.

  • Bytes and characters: the guide on encoding and the byte-order mark.
  • Records and fields: the guide on quotes, delimiters and embedded line breaks.
  • Columns: the existing guide on header changes.
  • Meaning: the existing guides on text SKUs, blank prices and pack prices, and the guide on ERP numbers and dates.
  • Release decision: the guide on comparing two versions by key.

Where the files come from changes the fix

A supplier file comes from a system you do not control, so the fix is a documented reading rule plus a rejection path and sometimes a request to the supplier. An ERP export is yours, so the fix may be a conversion script with explicit rules for numbers and dates. A spreadsheet in the middle is the most dangerous: opening and re-saving a file can change its encoding, strip leading zeros and reformat numbers, and the original is gone. Keep the original bytes whenever you can.

What the paid jobs cover

Each fixed job takes one layer and one named layout. Encoding and the byte-order mark: csv-encoding-bom-garbled-characters-import, £195. Quotes, delimiters and line breaks: csv-delimiter-quoting-embedded-newlines-import, £195. A change report between two versions: feed-version-diff-report-before-import, £225. An ERP export converted to your import format: etl-erp-export-to-store-import-transform, from £595. Category mapping: mapping-supplier-categories-to-store-categories, from £395. Image address checks: feed-image-url-validation-before-import, £345. Prices are untested proposals, and payment follows the agreed checks and your sign-off. Nothing is booked or charged by an enquiry.

  • Each starts from invented or redacted sample rows, not a real price list.
  • A fault that is in the supplier's data, not your importer, is explained, not fixed.

Boundaries

This cluster is about non-personal product, stock and price data in files you can lawfully share in redacted form. It does not cover personal data, credentials, live supplier access or repair of data already stored. Send column names, a few invented rows and the importer's name in a first enquiry, and nothing else.

Sources and limits

  • RFC 4180: common format for CSV files Checked 2026-10-11.
    • It records common CSV practice, is informational, and does not specify an Internet standard; it describes quoting, doubled quotes, an optional header line and an optional charset parameter.
  • Python csv documentation Checked 2026-10-11.
    • Reading depends on the declared delimiter, quote character and encoding, and reader.line_num counts lines, not records.
  • W3C Metadata Vocabulary for Tabular Data Checked 2026-10-11.
    • A dialect declares encoding, delimiter, quote character and header handling explicitly, with stated defaults.