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.
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
- Start from Shopify's template or an export from your own store, so the header row matches.
- In Excel, save as "CSV UTF-8 (Comma delimited)". Google Sheets always exports UTF-8.
- Keep each product's rows together: variant and image rows repeat the handle and leave the product columns empty.
- 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 fileThe 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 thisInventory 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 thisValidation 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 thisIgnored 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 thisProduct 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 thisDaily 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 thisNot 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