You exported 400 products, tweaked your spreadsheet for two hours, and hit import. Shopify spits out a wall of red text. You have now met shopify csv import errors up close and personal.
This matters beyond the frustration. Every hour those products are not live is inventory your store is not selling. Here is what is actually going wrong, and how to stop it.
🎯 Quick Summary
- Most failures trace back to wrong column headers, incorrect file encoding, and broken or duplicate handles
- Always start from Shopify's own sample CSV, not a blank spreadsheet
- Save as UTF-8 (Google Sheets handles this automatically on export)
- Handles must be unique, lowercase, and hyphenated with no special characters
- For large or messy catalogs, hidden data issues almost always surface at import time
⚠️ The Most Common Shopify CSV Import Errors
Shopify's CSV format is strict. One bad cell can reject the whole file. These three culprits are behind the overwhelming majority of shopify csv import errors.
Wrong column headers. Shopify expects exact names: "Title", "Body (HTML)", "Vendor", "Variant Price". Change the casing, add a space, or use a synonym and the column becomes invisible. Your data goes nowhere.
File encoding. Excel saves files in Windows-1252 encoding by default. Shopify wants UTF-8. Any character outside basic ASCII (accented letters, Arabic text, special punctuation) turns into garbage. Products with "Café" in the title show up as "Café", or the import fails with a cryptic error that points you nowhere useful.
Handle problems. The Handle column is Shopify's internal product ID. It must be unique, all lowercase, and hyphenated. "Red T-Shirt" should be "red-t-shirt". Duplicate handles quietly overwrite existing products instead of creating new ones. Missing handles on variant rows cause multi-option products to fall apart, because every variant row for the same product needs the identical handle value.
When your Shopify CSV import is not working, these smaller issues are also worth checking:
- Prices formatted as "$29.99" instead of "29.99" (no currency symbols allowed)
- Dates not in ISO 8601 format (YYYY-MM-DD HH:MM:SS)
- Extra blank rows or hidden columns left over from Excel filtering
- Variant rows with no Handle value when a product has multiple options
If you are moving from another platform, your old system's export almost never maps cleanly to Shopify's format. The pre-migration checklist is worth reading before you open the spreadsheet.
🔧 How to Clean the File So It Imports First Try
Ready to fix your Shopify product import? Start here: download Shopify's sample product CSV. Go to Products in your admin, click Import, and grab the sample file. Build your data inside that structure. Do not import Shopify into your structure. That never ends well.
Fix encoding:
- Skip Excel entirely. Paste your data into Google Sheets and export as CSV. UTF-8 by default, no settings required.
- If you need Excel, choose "CSV UTF-8 (Comma delimited)" when saving, not the plain "CSV" option.
- For large files, open the CSV in VS Code or Notepad++ and confirm the encoding shown in the status bar reads UTF-8.
Fix handles. Strip special characters, replace spaces with hyphens, make everything lowercase. In Google Sheets, the formula =LOWER(SUBSTITUTE(A2," ","-")) handles most of it. Go through manually for anything with punctuation or numbers that could create duplicates.
For products with variants, every row that belongs to the same product needs the exact same Handle value. Title, Body, Vendor, and image columns only need to be filled in on the first row for that handle. Variant rows below can leave those cells blank.
💡 Pro tip: Import a test batch of 5 to 10 products first. Catch the format problems before you push 2,000 rows and come back to 400 errors.
| Error | What's Wrong | Fix |
|---|---|---|
| Unknown column name | Header casing or spelling does not match Shopify exactly | Copy headers from Shopify's sample CSV |
| Symbols replacing characters | File saved in Windows-1252, not UTF-8 | Re-export from Google Sheets or re-save as UTF-8 |
| Existing products overwritten | Duplicate handle values in your file | Audit handles and make each one unique |
| Variants not grouping correctly | Handle missing or different on variant rows | Copy the parent product's handle to every variant row |
| Price column rejected | Currency symbol in the price cell | Numbers only: 29.99, not $29.99 |
For stores with more than a few hundred products, these edge cases add up fast. The guide on bulk editing large Shopify catalogs covers when a spreadsheet approach starts costing more time than it saves.
🔧 Catalog import giving you grief?
CartWorks can map, clean, and import your product data as part of a store build or migration. Tell us what you are working with and we will take a look.
🚀 When It Is Worth Getting Help
For a clean 50-product store, you can fix a CSV import in an afternoon with the steps above. For anything bigger, the edge cases multiply.
Duplicate SKUs buried in legacy data. Images that need re-hosting before they can go into the CSV. Metafields that do not exist in the standard Shopify format. Products with 100 variants where a single handle typo breaks an entire group. The file work quietly turns into a project.
CartWorks handles product data imports as part of store builds and migrations. We map your data to Shopify's format, run a test import with a small batch, and do the full import once the structure is confirmed. We can also set up a repeatable import process if you add products in bulk on a regular basis.
If your catalog is the thing standing between you and a live store, send us a quick message and we will work out what it actually takes.


