DEV Community

王磊
王磊

Posted on

Shopify Product CSV Import Checklist: Headers, Prices, Images, and File Size

When a Shopify product CSV import fails, the real cause is often not the row Shopify highlights. A single invisible header space, regional price format, private image URL, or oversized file can make a clean-looking spreadsheet fail at upload time.

Here is the checklist I use before importing a product CSV.

1. Start with the header row

Shopify maps product data by exact column names. Before editing product rows, check the first row:

  • no blank header cells
  • no leading or trailing spaces
  • no duplicate columns after cleanup
  • canonical names such as Handle, Title, Variant Price, Variant Inventory Qty, Image Src, and Variant Requires Shipping

If you rebuilt the file from a supplier sheet, do not assume labels like Product Name, Image URL, or Product Price will import as expected. Map them deliberately.

2. Keep product handles boring

The Handle is the URL-friendly product identity. Use lowercase letters, numbers, and hyphens. Avoid spaces, uppercase-only changes, punctuation, and accidental duplicate handles.

Duplicate handles are not always wrong. Variant rows for the same product normally share a handle. The risky case is two unrelated products sharing the same handle because a spreadsheet formula or copy-paste step flattened them into the same slug.

3. Treat variant rows as groups

For products with variants, keep every row for the same handle together while editing or splitting files. Check that option columns line up:

  • Option1 Name should not be filled while Option1 Value is blank
  • variant rows should not be separated from their parent product rows
  • SKU alone is not enough to define the product/variant relationship

If you split a large file, split by product handle groups rather than raw row count.

4. Normalize prices before upload

Shopify CSV prices should be plain decimal numbers. Watch for values like:

  • $19.99
  • USD 19.99
  • 1,299.00
  • 19,99

The first three can often be cleaned safely. Comma decimal prices need manual review because the comma may mean a decimal separator in one locale and a thousands separator in another.

5. Check image URLs before blaming Shopify

Image Src needs a public http or https URL that Shopify can fetch. Local paths, private Google Drive links, Dropbox preview links, and supplier URLs that require a login are common failure points.

Also confirm that image-only rows still carry the correct Handle, otherwise images can attach to the wrong product or disappear during the import.

6. Stay under the 15 MB product CSV limit

Large product CSVs are harder to debug because one failure can hide many smaller issues. If the file is near or over the limit, validate and split it into smaller batches. Again, keep variants and image rows for one handle in the same batch.

7. Test one small import first

Before importing hundreds or thousands of rows:

  1. export your current products as a backup
  2. import one product or one handle group
  3. confirm the product page, variant options, price, inventory, images, and publish status
  4. then move to a larger batch

For a browser-side scan before upload, I use this free Shopify CSV import fixer to catch headers, handles, prices, booleans, image URL format, UTF-8 issues, and 15 MB size risk: https://shopify-csv.aivismonitor.com/shopify-csv-import-fixer

The important habit is to separate structural CSV problems from Shopify admin behavior. Fix the file structure first, then test a small import so you know exactly what changed.

Top comments (0)