Fix Shopify product CSV import errors

Shopify rejects a product CSV for a handful of reasons: the file isn't UTF-8, a quote is out of place, a header doesn't match the template, or a value isn't one Shopify allows. Drop the file below to see every problem with the line Shopify would report, fix it in one click and download a clean CSV.

Wording and rules verified on

Fixed in your browser – your file never leaves your device.

Files over 50 rows: 1 credit each ($0.75–$1 depending on pack), no subscription · See prices

Several files? Select or drop them together to fix them all at once.

No file handy? Try a broken sample

Sample files with typical import errors, loaded in your browser. Fixing and downloading them is free.

Why it happens

Shopify's importer stops at the first line it can't read and reports only that line. You fix it, upload again, and the next error appears. Checking the whole file first saves those round trips.

Most rejected files were edited in Excel. Excel saves "CSV" in your Windows code page instead of UTF-8, separates columns with semicolons in much of Europe, turns straight quotes into curly ones and reformats barcodes and prices. Shopify accepts both its current template (Title, URL handle, Price…) and the older one (Handle, Body (HTML), Variant Price…), but in both the column names are case-sensitive.

How to fix it manually

Before you upload

  1. Start from Shopify's template or an export from your own store, so the header row matches.
  2. In Excel, save as "CSV UTF-8 (Comma delimited)". Google Sheets always exports UTF-8.
  3. Keep each product's rows together: variant and image rows repeat the handle and leave the product columns empty.
  4. Keep the file under 15 MB. Split a larger catalogue into several files, keeping each product's rows in one file.

Fix it automatically

  • Detects the encoding, the separator and which Shopify template the file uses.
  • Checks every row against Shopify's columns: required headers, handles, allowed values, numbers, image URLs and option combinations.
  • Shows each problem with the line number Shopify would report.
  • Fixes what can be fixed safely and lists every change. You can switch any fix off.
  • Writes a UTF-8, comma-separated CSV with Shopify's exact header spelling.
  • Splits a file over 15 MB into several files without cutting a product in two, and can split by Shopify's daily variant limit.

Checking and the preview are free. Downloads are free up to 50 rows; a larger file costs 1 credit.

Choose a file

The file is read and repaired inside your browser. Nothing is uploaded: only the row count and the platform are ever sent to us, so supplier prices and customer data stay private.

Other errors and how to fix them

Missing or stray quote on line

Exact error message

  • Missing or stray quote on line

Shopify gives two causes: a spreadsheet app replaced straight quotes (") with curly ones (“ ”), or an extra quote ended up in a value. CSV uses the straight double quote to wrap values that contain commas or line breaks, so a curly quote where a straight one belongs, or a lone " in the middle of a value, breaks the row.

Curly quotes inside a value, such as a product called “The Band”, are fine: Shopify's own template contains one. The tool only repairs quotes that act as CSV quoting and leaves your text alone.

Check my file for this

Inventory quantity is not a number

Exact error message

  • Inventory quantity is not a number
  • Inventory quantity can't be blank

The quantity column (Inventory quantity, or Variant Inventory Qty in the old template) takes a whole number. Values such as "12 pcs", "1,200" or "5.5" are rejected. A blank quantity is rejected when the variant's inventory is tracked: enter a number, or leave Inventory tracker empty if you don't track stock.

The tool flags every quantity that isn't a whole number and strips units and thousands separators where the number is unambiguous.

Check my file for this

Validation failed: price can't be blank

Exact error message

  • Validation failed: price can't be blank

Every variant row needs a price, including the first row of each product. Rows that only add an image (handle plus image columns) don't.

The tool lists every variant row with an empty price. It can't guess a price, so those are left to you. It does fix prices written as "12,90", "$12.90" or "1 299", which Shopify reads as text.

Check my file for this

Ignored line: handle already exists / did not contain product data

Exact error message

  • Ignored line #-## because handle `example` already exists
  • Ignored line #-## because it did not contain product data

The first means two separate products share a handle. Give each product its own handle, and keep all rows of one product next to each other.

The second means a row has a handle but no title, so Shopify can't create a product from it. Add the title, or, if the row belongs to a product above, move it next to that product's rows.

The tool reports both: a handle used by two separate products, and a product row without a title.

Check my file for this

Product CSV is larger than 15 MB

Shopify accepts product CSV files up to 15 MB and advises splitting a larger file into several smaller ones. A file can also time out before it reaches that size, and the advice is the same.

Split by product, never between the rows of one product: variant and image rows that land in the next file without their first row are imported as a separate product or rejected. Every file needs the header row.

The tool does this for you. When the fixed file would be over the limit, the download is a ZIP of parts under 15 MB, each with the header and with every product's rows kept together. Import the parts one after another.

Check my file for this

Daily variant creation limit reached, try again

Exact error message

  • Daily variant creation limit reached, try again

Stores with 500,000 or more variants, other than Shopify Plus stores, can create at most 10,000 new variants through CSV imports or the API in 24 hours. The 24 hours start with the day's first upload. Updating existing variants doesn't count; only new ones do.

If your file creates more than 10,000 variants, switch on "Also split by variants" before downloading. The tool cuts the file into parts of at most 10,000 variants, without splitting a product, so you can import one part a day.

Check my file for this

Not a valid product category

Exact error message

  • Not a valid product category

The Product category column (Product Category in the old template) only takes a category from Shopify's Standard Product Taxonomy, written exactly: either the full path, such as "Home & Garden > Linens & Bedding > Bedding > Bed Sheets", or the category ID, such as "hg-15-1-2". A store's own categories ("Christmas", "Summer sale") belong in Type, Tags or collections, not here. Leave the column empty if you don't need a category.

The tool checks every value against the taxonomy. It corrects capitalisation, spacing and separators, turns a gid://shopify/TaxonomyCategory/… link into the plain ID, and completes a bare name such as "Bed Sheets" when only one category has it. A name several categories share, or a category that doesn't exist, is listed for you to choose, with the matching paths when there are any.

Check my file for this

Frequently asked questions

Does Shopify still accept the old CSV template?

Yes. The current template uses names such as Title, URL handle and Price. Files with the older names (Handle, Body (HTML), Variant Price) still import. Names are case-sensitive in both. The tool recognises both templates and only corrects capitalisation and spacing.

Can it split a file larger than 15 MB?

Yes. When the fixed file would be over Shopify's 15 MB limit, you download a ZIP of smaller CSV files. Each one has the header row, and no product is split between two files. Splitting doesn't cost extra: it's part of the same download.

Is my file uploaded anywhere?

No. The file is read, checked and fixed in your browser. For a paid download only the row count, the platform and a fingerprint of the file (SHA-256) are sent, so you aren't charged twice for the same file.

How much does it cost?

Checking a file and previewing the fixes is free. Downloading the fixed file is free up to 50 rows. A larger file costs 1 credit, and for 24 hours you can download the same file again in another format or encoding at no extra cost. No subscription needed; agencies that fix files every month can choose Pro: 300 files a month for $19.