Hi everyone,
I’ve been testing Shopify Product CSV imports and noticed a few issues that are easy to miss before uploading a CSV file.
Some common things worth checking are:
-
duplicate Variant SKU values
-
rows with Variant Inventory Qty but no Inventory Tracker
-
Compare At Price values that are not greater than Variant Price
-
variant rows that were moved or sorted away from the same Handle
-
CSV files edited in spreadsheet apps that change formatting or quoting
Shopify’s import preview can catch some problems, but not every issue is easy to locate by row and column.
Before importing an edited Product CSV, I’d recommend keeping the original export as a backup and checking the risky columns carefully.
I’ve also been testing these cases in a small browser-only checker. It runs locally in the browser, does not require login, and does not upload the CSV to a server. If anyone is dealing with similar CSV issues, I can share it.
THANKS!
The list you’ve got covers most of the structural issues that surface during preview. A few that pass CSV-level validation but still corrupt the import are worth adding if you’re extending the checker:
-
Variant rows missing a variant-level column (option2 / option3, weight, SKU) can collapse a multi-variant product to single-variant on re-import. No error, no warning. Comparing the variant-level column set across rows of the same Handle would catch this in the browser.
-
Image URLs that no longer resolve. Shopify re-fetches each URL at import time. If the URL has rotated, moved, or expired since export, the import silently creates a blank image record. A HEAD-request preflight would surface this, though most image hosts will block that from a browser via CORS, so this one probably needs to run server-side or be a manual spot-check.
-
Strict-typo column headers drop the whole column without warning. The browser can validate against Shopify’s documented header set, but matching headers against the store’s actual metafield definitions needs Shopify Admin API access.
-
Metafield values of type reference arriving as null. The referenced metaobject has to already exist on the target with a matching handle. CSV can’t encode metaobject definitions, so it’s a hard limit of the format. A “this column needs pre-existing metaobjects on the target” warning is about as far as a CSV-only checker can go here.
The other prevention pattern, since CSV editing is inherently risky no matter how good the preflight: snapshot the catalogue before running the import, restore from the snapshot if it lands wrong. Apps that do this include Product Save & Sync. Disclosure: I’m the developer; there’s a free tier so you can verify it captures your specific catalogue shape first. The snapshot carries metafield values, metaobject definitions and instances, variants and media, so a restore puts the catalogue back to its pre-import state cleanly. The cross-store mode is the same mechanism with a share token, but the same-store backup case is the more common one.
Thanks, these are useful edge cases.
I’m trying to keep this checker browser-only for now, so anything that needs Admin API access or server-side URL fetching is probably outside the first version.
The variant column consistency check across rows with the same Handle is a good fit though. I’ll add that to the rule backlog. For image URLs and reference-type metafields, I may keep them as static warnings/manual-check notes rather than live validation.
until and unless product title and product handle URL is same duplicate variant sku issue should not come
Thanks for your feedback, I’ve fixed the issue~