Shopify CSV validator and product CSV template
Check a Shopify product CSV in your browser before you import. Download a current-header template, or drop in an export. The file stays on your computer — nothing is uploaded.
Validate a product CSV
The sample file uses Shopify’s current column names (URL handle, Price, Product image URL, …) with two example variants.
| Severity | Row | Column | Issue | Value |
|---|
What it checks
- Required Title column, and URL handle / Handle for variants and updates
- Unknown, empty, or duplicate column headers (Collection is allowed; Google Shopping, Markets, and metafield columns are allowed)
- Unclosed quotes and files that look semicolon- or tab-separated
- Blank handles, spaces in handles, and a missing Title on a product’s first row
- Duplicate handle + option values (“Options are not unique”)
- Duplicate SKUs (warning — Shopify allows them, inventory apps often do not)
- Price, compare-at, and cost as plain numbers — no
$,€, or thousands separators - Inventory quantity as a whole number; weight as grams without units
- Published
true/false; Statusactive,draft, orarchived - Public
https://image URLs, and option name/value consistency across variant rows - Packed product columns: fill all four or leave all four blank
Template column notes
- Current headers follow the Shopify Help Center table in Using CSV files to import and export products (URL handle, Description, Published on online store, SKU, Price, Product image URL, Option1 name, …).
- Older headers still work: Handle, Body (HTML), Published, Variant SKU, Variant Price, Variant Inventory Qty, Image Src, Gift Card, and the other pre-rename names. You do not need to convert a file just to pass this check.
- Column order does not matter. You can omit unused columns. Do not send both
BarcodeandBarcodes. - The
Collectioncolumn is allowed on import even when it is missing from an export. It adds the product to a collection by handle; it does not create the collection. - Title is required to create products. URL handle is required for variants and for updates. Put option names on the first row of each product and option values on every variant row.
- Prices are numbers only (for example
9.99). Boolean fields aretrueorfalse, not yes/no.
Common Shopify CSV import errors
Why does Shopify say “Validation failed: Price must be a number”?
Price, Compare-at price, and Cost per item must be plain numbers such as 19.99. A currency symbol ($19.99), a thousands separator (1,299.00), or leftover text fails the import. Use a dot as the decimal separator.
What does an unknown header or illegal quoting error mean?
Shopify only accepts its own product CSV column names (plus Collection). Extra columns, renamed headers, or stray spaces fail the import. Illegal quoting usually means a description contains a " that was not doubled (""), so the parser swallows the rest of the file.
Why is Title required on a Shopify product CSV?
Title is the only required column when you create new products. Put it on the first row of each product; later variant rows can leave it blank. Updates also need URL handle (Handle on older templates).
What does “Options are not unique” or a duplicate variant mean?
Two rows share the same URL handle and the same Option1/2/3 values. Each variant needs a unique combination. Extra image rows must repeat that variant’s option values, or Shopify tries to create another variant.
Why won’t Shopify download my product image URL?
Product image URL must be a public http(s) link to the image file, with no spaces. Drive, Dropbox, and OneDrive share pages usually fail. Shopify copies the file during import — a 404 or login wall means the image is skipped.
Do blank cells overwrite existing Shopify products?
Yes, if you tick overwrite and the column is in the file. An empty Price, Title, or image cell can clear the stored value. Omit columns you do not want to change. Variant rows should still keep handle and option columns filled.
What encoding should a Shopify CSV use?
Save as UTF-8. A UTF-8 BOM is fine. Excel on Windows often writes ANSI or UTF-16, which breaks accented characters. Use File → Save As → CSV UTF-8 (Comma delimited).
Why does Excel export a Shopify CSV with semicolons?
In many European locales Excel uses a semicolon as the list separator. Shopify needs commas. Re-save as CSV UTF-8, or set the list separator to comma, and quote fields that contain commas.
Need the file cleaned for you?
If the validator found more than you want to fix by hand, catalog.csv maps supplier sheets and messy exports to an import-ready Shopify product CSV. File-only, no store login. Free 2-row test, then pay once it imports.
Done-for-you Shopify CSV cleanup