Re-importing a product deleted its variants, and nothing warned me

A one-row update with the option columns blank, imported with overwrite on, leaves the product with one variant. The others are gone and no message says so.

What you are seeing

You re-imported to change a price or a description. The product is still there, and Small and Large are not.

There is no error message for this one. That is the problem, not an omission on this page — the import reports success and the damage is only visible if you go looking for it.

Why it happens

With overwrite enabled, the file you upload is treated as the truth about the product, not as a patch. A three-variant product re-imported from a single row with the option columns blank is a product with one variant — so that is what you get. We ran exactly that on a real store: Small and Large disappeared and nothing said so.

This is the most expensive silent failure in Shopify CSV import, because the file that causes it looks completely reasonable. Exporting one product to edit its price, trimming to the row you care about, and re-uploading is a natural thing to do and it destroys the variant structure.

How to fix it

  1. When updating with overwrite on, upload EVERY row of every product you touch — all its variants, not just the one you edited.
  2. If you only want to change one field, export the product first and edit that export in place, so the variant rows travel with your change.
  3. Before any overwrite import, check that each handle in your file has as many variant rows as the product currently has in the store. A drop in that count is the warning Shopify does not give you.

Where this came from

We broke a real Shopify store on purpose to answer these questions, and kept what it said. Nothing on this page is quoted from documentation.

  • A three-variant product re-imported from a one-row file with the option columns blank, overwrite checked, keeps ONE variant. Small and Large are gone and nothing said so.

What we did not measure. Measured with overwrite checked. We did not test the same file with overwrite off, so this page does not tell you what that does.

Observed 2026-09-04. The store this was measured on has since been deleted, so these answers are an archive rather than something we re-run — we would rather tell you the date than imply it is checked continuously.

Check your file before you upload it

The Pre-Flight Report reads your supplier file and names every blocker, with the row it is on, before you go near an importer. It is free, it needs no account, and it does not send your file to a model.

Check a file free