Import Builder/Guides/Shopify CSV import errors
E-commerce

Shopify Product CSV Import Errors and How to Fix Them

A Shopify product import can fail outright, or worse, succeed with split variants, missing images and changed barcodes. Almost every problem comes from a handful of causes in the CSV itself.

Start from Shopify's own file

Shopify has changed its product CSV over time, and column names differ between older and newer templates. The safest starting point is the sample CSV linked in the import dialog (Products, then Import), or an export of a few products from your own store. Both have the exact headers your store expects. Fill in your products underneath and don't change the header row.

Test with a few products first

Import three or four products, including one with variants, before the full catalog. Mistakes in a small file are quick to spot and quick to delete.

Common errors and their fixes

Quoting or formatting errors on a line number

Cause: A value contains a double quote, comma or line break that isn't wrapped correctly. Product descriptions with HTML or inches (12" frame) are the usual culprits, often after editing the file in a text editor.

Fix: Edit the file in a spreadsheet rather than a text editor, and save it as CSV again: the spreadsheet adds the quoting for you. See commas and quotes in CSV.

Garbled characters (é becomes é)

Cause: Shopify reads CSV files as UTF-8. A file saved in another encoding, such as Excel's plain CSV on Windows, turns accented letters, curly quotes and symbols into junk.

Fix: In Excel, use Save As and choose CSV UTF-8. In Google Sheets the download is already UTF-8. More in the special characters guide.

Columns ignored or missing

Cause: Shopify matches columns by their header. A renamed, misspelled or translated header is ignored, so that data never arrives.

Fix: Start from the sample CSV in Shopify's import dialog (or an export from your own store) and keep its header row exactly as it is. Delete columns you don't use rather than renaming them.

Variants import as separate products

Cause: Every row of the same product must have the same handle. A typo, an extra space or different capitals in the handle starts a new product.

Fix: Copy the handle down from the first row of each product, and keep a product's variant rows directly below it. Title and description only need filling on the first row.

Duplicate or conflicting variant options

Cause: Two variants of one product have the same option values (two rows of Size: M, Color: Blue), or a product uses more than the three options Shopify allows.

Fix: Make each variant's combination of option values unique, and keep option names the same on every row of the product.

Invalid price

Cause: Prices with currency symbols, thousands separators or a decimal comma, such as $1,299.00 or 12,50.

Fix: Use plain numbers with a decimal point: 1299.00. See stripping currency symbols.

Images don't appear

Cause: The image column holds a file path from your computer, or a share link from Google Drive or Dropbox that opens a web page instead of the image.

Fix: Use direct, public https:// links that end in the image itself, or upload images in Shopify afterwards. The URL validation guide explains what makes a link importable.

Barcodes and SKUs changed

Cause: Excel turns a 12- or 13-digit barcode into 1.23457E+11 and drops leading zeros from codes like 00412. Saving the CSV keeps the damaged value.

Fix: Format those columns as Text before pasting, or import the CSV into Excel with the columns set to Text. See the leading zeros guide.

TRUE/FALSE and unit values rejected

Cause: Yes/no columns (published, taxable, requires shipping) expect TRUE or FALSE, and weight units expect g, kg, lb or oz. Values like Yes, 1 or Kilograms don't match.

Fix: Use exactly the values in Shopify's sample file. A spreadsheet dropdown on those columns stops new mistakes.

File too large

Cause: Shopify limits the size of a product CSV, and very large catalogs with long descriptions reach it.

Fix: Split the file into several CSVs, keeping every row of a product in the same file, and import them one after another.

How variant rows work

Most confusing Shopify imports come down to variants. A product with variants takes one row per variant. The first row carries the product details; the rows after it repeat the handle and fill in only what differs: option values, SKU, price, barcode and stock.

One t-shirt in three sizes (simplified):

Handle,Title,Option1 Name,Option1 Value,Variant SKU,Variant Price
classic-tee,Classic Tee,Size,S,TEE-S,25.00
classic-tee,,,M,TEE-M,25.00
classic-tee,,,L,TEE-L,27.00

Header names here follow Shopify's long-standing product CSV; use the ones in your own sample file. The rules are the same: one handle per product, the option name on the first row, and a different set of option values on each row.

Checklist before you import

Header row copied from Shopify's sample or your own export, unchanged
Saved as CSV UTF-8
Each product's rows share one handle and sit together
Each variant has a different combination of option values
Prices are plain numbers with a decimal point
Barcodes and SKUs kept as text, no scientific notation
Image links are public https:// links to the image file
TRUE/FALSE and unit columns use Shopify's exact values
A small test import worked before the full catalog

Getting product data from suppliers?

Send them a form instead of a spreadsheet. The Shopify Products template checks prices, image links, yes/no and unit columns as they're entered, keeps barcodes exactly as typed, and downloads a CSV with Shopify's headers.

Try the Shopify template

Import Builder is an independent product and is not affiliated with, endorsed by, or sponsored by Shopify Inc. Shopify is a trademark of Shopify Inc.