Skip to content
Selling Fee Tools

Shopify Product CSV Validator

Check a Shopify product CSV row by row and fix import errors before you upload it.

1. Shopify product CSV

No file handy? (6 rows, 30+ problems).

2. Result

Drop a file to check it. Nothing is uploaded.

Runs in your browserNo uploadLast verified Source: Shopify Help Center

How it works

Drop the product CSV you plan to import into Shopify. Your browser reads it; nothing is uploaded. The check runs in three passes and reports every finding with its spreadsheet row, the column, a severity and a suggested fix.

The file. Shopify wants comma-separated UTF-8 under 15 MB. Semicolon files from European Excel and Windows-1252 files are flagged, and fixed in the download.

The headers. Every column name is compared with the names a Shopify export writes and the names in Shopify’s Help Center table. A header in the wrong case, such as handle, is corrected. An unknown column is an error, because Collection is the only extra column Shopify accepts. Having both Variant Barcode and Variant Barcodes, or only some of the four packed-size columns, is also an error.

The products. Rows are grouped by Handle. Each group needs a title on its first row and the same title throughout; one handle used by two different products is caught. Handles with spaces or symbols are slugified. Every variant needs a value for each option, option names must match the first row, and no two variants can share the same values. Rows of one product that aren’t next to each other are flagged, because sorting in a spreadsheet can separate images from their product.

The values. Prices must be plain numbers, compare-at prices should be higher than the price, inventory must be a whole number and weight a number of grams. True/false columns, status, inventory policy, tracker and weight units are checked against Shopify’s allowed values. Image URLs must be full web addresses, positions start at 1, and Shopify’s limits on tags, images and SEO length are applied.

Example

The sample file behind “Try a file with mistakes in it” has three products in six rows. These are five of its 32 findings:

RowColumnSeverityMessageFix
2Variant PriceErrorPrice is “$1,299.00”; Shopify wants the number only.1299.00 (fixed in download)
3HandleErrorHandle “Lifting Belt” contains spaces.lifting-belt on all 3 rows (fixed)
4Option1 NameErrorOption1 name is “Sizes” here but “Size” on the first row.Use “Size” on every row.
6Option1 ValueErrorSame option values as row 3 (S / Black).Change or remove the duplicate.
7TitleErrorHandle “plate” is used by “Bumper Plate” and “Kettlebell”.Give each product its own handle.

Seven of the 32 findings are fixed automatically in the download; the rest need a decision, such as which title belongs to the handle plate. For comparison, a real 1,836-row export from a Shopify admin, with 334 products, passes with no findings at all.

FAQ

Is my file uploaded anywhere?

No. The CSV is read and checked by JavaScript in your browser tab, and the fixed file is generated on your device. Nothing is sent to our servers or to Shopify, so prices, costs and unpublished products stay private. Closing the tab discards everything you dropped in.

Where do the rules come from?

From Shopify’s Help Center pages on using and importing product CSV files: the column table, valid values such as true or false and active, draft or archived, and limits such as 250 images per product and 15 MB per file. Header names are also checked against a real Shopify admin export.

What does “Download fixed CSV” change?

Only changes with one correct answer: it trims stray spaces, removes currency symbols and thousands separators from prices, corrects header capitalisation, lowercases values like Active, turns handles with spaces into URL-safe ones on every row of that product, and saves as comma-separated UTF-8. Everything else is listed for you to decide.

What’s the difference between errors, warnings and info?

Errors break the import or give a wrong result, such as an unknown column, a duplicate variant or a price with a currency symbol. Warnings import but probably not as you intend, like an empty price becoming 0.00. Info items are worth knowing but harmless, such as the same SKU on two variants.

Why is an extra column an error?

Shopify’s Help Center says Collection is the only column you can add without breaking the format, and that column names must match exactly, including capitalisation. A column like Color or a header typed as handle makes the import fail. Market price columns, metafield columns and Google Shopping columns from your own export are recognised.

Does a clean result guarantee the import works?

It means the file follows Shopify’s documented format, which removes the common causes of failed imports. Some things can only be checked by Shopify itself, such as whether image URLs actually load, whether a custom fulfillment service exists in your admin, or how products with matching handles are overwritten. Test with a few products first.