1. Your product CSV
The file from Shopify's Export, a supplier feed, or your own spreadsheet, saved as CSV.
Choose a file or paste the text, then click Check file.
Result
Products
| Line | Handle | Title | Variants | Images |
|---|
Safe fixes
The model, and what it leaves out
- Handle groups rows into products. The first row of a product carries its Title, Vendor, Tags and options; later rows are extra variants (option values and a price) or extra images (Image Src), and must repeat the Handle and stay together.
- Variants are identified by their option combination, which may appear once per product. Option names live on the first row only, and a product has at most three options.
- Plain numbers: Variant Price, Variant Compare At Price and Cost per item are digits and a decimal point, with no currency symbol or thousands separator.
- Inventory: Variant Inventory Qty is stored only when Variant Inventory Tracker is
shopify; policy isdenyorcontinue. - Barcodes that are 8, 12, 13 or 14 digits are checked as GTINs, because marketplaces and Google Shopping reject a wrong check digit even though Shopify stores any text.
- Safe fixes change only delimiter, header capitals, stray spaces, TRUE/FALSE and lowercase flags, price formatting and handle form. It never edits a title, description, SKU, barcode, quantity or image address.
- Not checked: that Shopify will accept the file today, Product Category taxonomy values, metafield definitions, that image URLs are reachable, your plan's variant limit, and anything Shopify changes in its import. Import two or three products first.
Common questions
Why does my Shopify product CSV import fail or create the wrong products?
The usual causes are a missing or blank Handle on variant and image rows, rows for one product that are not together, an unquoted comma in Tags or Body (HTML) that shifts every later cell, prices with a currency symbol or a decimal comma, a repeated option combination, an Image Src that is not a public web address, and an Excel save that turned SKUs or barcodes into scientific notation. This tool tests each of them and names the line.
How do I check a Shopify product CSV before importing it?
Paste the file or drop it onto this page. It reads the header against Shopify's product template, groups rows by Handle, and lists every problem with its line number, grouped as errors, warnings and notes. Nothing is uploaded.
Why did Excel change my SKUs and barcodes?
Excel turns long digit strings into scientific notation (1.23457E+12) and drops leading zeros the moment a CSV is opened and saved. The original digits cannot be recovered from the damaged cell; format the column as Text before typing or pasting the codes back in. This tool flags both.
Why is my Shopify CSV semicolon-separated?
Excel in many European and Latin American locales saves CSV with semicolons because the comma is the decimal separator. Shopify expects commas. This tool detects the delimiter and, with Apply safe fixes, rewrites the file with commas.
What does Apply safe fixes change?
Only things with one reasonable reading: the delimiter, header capitalisation, stray spaces around handles, SKUs, barcodes, option values and image URLs, TRUE and FALSE capitals, lowercase for tracker, policy, unit and status, and prices like $1,299.00 to 1299.00. It never edits a title, description, SKU, barcode, quantity or image address, and it will not slugify handles if two would collide.
Is it safe to put my product catalogue into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Your own policies still decide what you may open in a browser.
What does this not check?
Whether Shopify will accept the file today, product category taxonomy values, metafield definitions, whether your image URLs are reachable, your plan's variant limit, theme limits, and anything Shopify changes in its import each year. A clean result is not a promise of success: import a few products first.