Troubleshooting · verified 13 July 2026

Why does a Shopify product CSV import fail?

A Shopify product CSV commonly fails because the first row has unmatched headers, the delimiter or quoting breaks row structure, a required/dependent field is absent, a price contains non-numeric text, an enum value is unsupported, or a remote image/product reference cannot be used. Start with the exact Shopify error, then check the affected row rather than rewriting the whole file.

Why does Shopify ask me to choose column headings?

Shopify says this appears when CSV headers are incorrect. Hidden spaces, older names, duplicates, or a supplier's custom columns can trigger a mismatch. CatalogVigil shows the raw header and the recognised current/legacy equivalent.

Why are there random characters in the import?

Shopify supports UTF-8 and attributes strange characters to a non-UTF-8 file. Re-export as UTF-8, preserve the original, and verify non-English product text before upload. CatalogVigil reads browser text and produces UTF-8 corrected downloads, but cannot recover characters already corrupted before the check.

Why is a price rejected?

Price fields should be plain numeric values rather than currency-formatted spreadsheet strings. CatalogVigil flags currency symbols, thousands separators, and text, but does not strip them automatically because locale punctuation can change the amount.

Why are variants lost or recreated?

Variant columns depend on option names and values. Changing option values can also create new variant IDs, which can break third-party dependencies. Review the variant option dependency before updating.

Can a preflight catch every error?

No. Store state, product/metafield references, remote image responses, app relationships, market configuration, and platform-side limits require Shopify's own validation. Use CatalogVigil as a deterministic local preflight, not a guarantee.

Primary sources: Shopify common product CSV problems and product CSV format.