Illustrative overwrite: a matching product has Vendor North Mill before import; an empty first-row Vendor cell clears that value.
Journal
Support & Development · 7 min read

Shopify CSV imports: avoid overwriting the wrong product data

Before you re-import a Shopify product CSV, check what every included column is allowed to change. A blank cell can clear existing data, and removing the wrong column can affect a product's variants.

This guide is for updating products already in your store with Shopify's native product CSV importer. If an import has already changed something unexpectedly, keep the exact file you uploaded and compare one affected product before trying another bulk correction.

Check which existing product the file will match

Shopify uses the product handle to match existing products. With the overwrite option enabled, included values can replace existing ones; without it, matching products are skipped [1]. A SKU is useful for checking the intended variant, but it isn't the product-matching key for this overwrite option.

Start from a fresh export of the products you intend to edit. Keep an untouched copy, then make a separate working file. Shopify lets you export a selected or filtered set, which makes this easier to review than a whole-catalog file [3].

Write down the purpose in one sentence: ‘Change the vendor on these products’ or ‘Update these variant weights’. If a colleague cannot tell which products and fields are in scope, the file isn't ready for import. Keep handles unchanged when the aim is to update those same products.

Separate blank cells from omitted columns

For a non-required field, an included blank column can erase its existing value. Leaving that column out preserves the value, provided no other included field depends on it [1,2]. Check the field reference for defaults too; don't apply this rule to every column. This distinction matters when someone clears spreadsheet cells to mean ‘leave this alone’.

Consider an illustrative product whose Vendor is North Mill. A populated Vendor cell changes it to the supplied name. A blank Vendor cell clears it. An omitted Vendor column leaves North Mill in place. The following comparison isolates this one field; it is not a complete import file.

Illustrative Vendor comparison for a matching product with overwrite enabled. North Mill becomes Cedar Works when supplied, becomes blank when the Vendor cell is blank, and remains North Mill when the Vendor column is omitted.
For Vendor, an empty first-row cell is an instruction to clear the value. If the intention is to keep North Mill, omit the Vendor column and review other field dependencies. This example is not a universal rule for every CSV column.

Product-level fields such as Vendor belong on the product's first row. Later variant rows can legitimately leave them blank [2]; don't fill those continuation rows indiscriminately. Mark intentional clearing in your work notes. That lets the reviewer distinguish a requested deletion from an accidentally empty column. Keep those notes outside the upload file. Don't fill unknown values with guesses just to make the sheet look complete.

Illustrative two-row product excerpt. Canvas tote has Vendor North Mill on its first row, size S. Its continuation row for size M has blank Title and Vendor cells. Blank Vendor on the first row can clear the value; a blank continuation cell is expected. Preserve option names, values and product groupings.
Read blanks in their row context. These two rows belong to one product, not two separate products. The excerpt shows selected fields only; retain the required fields and dependencies from your store export when preparing an actual update.

Keep the columns that identify each variant

Shopify lists URL handle and Title as the required update columns, but variant-related changes need additional data. For example, a SKU or weight update also needs Option1 name and Option1 value. Missing dependent option data can replace existing variants with a default variant [2].

Use the current store export and preserve the option structure for the products being changed. Review all option columns present, including second and third options where used. Don't build a minimal file by deleting every column that isn't the field you want to edit.

Changing option values can recreate variant IDs and break app dependencies [1]. Keep a routine content or weight update separate from renaming sizes, reorganizing options or redesigning variants. If the change includes those tasks, ask the developer or integration owner to plan the effect on connected systems first.

Current Shopify documentation uses headings such as URL handle and SKU; older exports can use different supported names [2]. Work from the actual export and field reference, rather than renaming headers to match an old tutorial. Preserve the product row groupings too: Shopify warns that spreadsheet sorting can disconnect variants or images [3].

Test a small, representative set

Choose examples that cover the change: a simple product, a product with several variants, and any unusual product that relies on an app. Use a suitable test store first for a large import [1]. Keep the production update limited until the expected result is clear and the test has passed.

  • Record the current value and intended result for each changed field.
  • Record what must stay the same: option combinations, SKU mapping, images and any relevant app behavior.
  • Compare the working file with the untouched export, including blank cells and omitted columns.
  • Review the import details and overwrite choice before starting. Shopify says a started CSV import cannot be canceled [1].

Check the product in the admin after the import, then inspect the affected storefront behavior. A new export helps compare saved field values. It won't replace a customer-facing check when the change affects a product selector, image or app feature.

Pilot decision guide: rejected rows need their reported error corrected; accepted wrong values need comparison with the uploaded product row and untouched export; missing variant or app checks keep the batch on hold. Widen only after intended changes and unchanged checks pass, with newer edits reconciled.
Choose the action from the saved result, not the acceptance message. A blank-value mistake needs a value correction; a missing variant or app check needs evidence. The file owner should resolve both before expanding the batch. Illustrative scenarios, not observed import results.

For the wider update, agree who owns the file and when other catalog edits can happen. If someone changes a product after your export, reconcile that change before importing your older copy. This is especially important when apps or another team also write the same fields.

Repair the cause before importing again

If a row failed, start with Shopify's reported error and the affected product. If a row was accepted but the result is wrong, compare the submitted values with the original export. Those are different problems: resubmitting a syntactically valid blank field will not recover its old value.

For a few incorrect field values, a targeted admin correction may be easier to review. For a larger correction, prepare a new file containing the intended products, the values to restore and their required dependencies. Test that correction on a small set before expanding it. Avoid re-importing an entire old catalog over newer, valid edits.

If variants were recreated or images are missing, keep the files and involve whoever owns the affected integrations or backup. Restoring a displayed label doesn't prove that a previous identifier or app relationship has returned. Shopify's product export contains image references rather than the image files themselves [3], so retain a separate recovery plan for the resources your store needs.

Two questions before choosing CSV

Is a CSV necessary for a small product update?
No. Shopify offers a bulk editor for products and variants [3]. For a short list of straightforward edits, working directly in the admin may be easier to inspect. Choose CSV when its repeatable transformations or larger batch are useful enough to justify reviewing the file.
Can I use this workflow to update stock at several locations?
Use the inventory CSV workflow for location quantities. Product and inventory imports have different fields and rules [2]. Keep the inventory operation separate from this product-content update, and verify the relevant location as well as the variant.

Before the next upload, choose one product and write its expected result beside the current value. Then check every included field that could change that product. That gives the wider import a concrete result to match.

Sources

Manish Vasaniya, Shopify Expert, Migration, CRO & AI Commerce Specialist
About the author
Manish Vasaniya
Shopify Expert, Migration, CRO & AI Commerce Specialist

Manish Vasaniya helps ecommerce founders and teams migrate to Shopify, improve conversion, and manage the long-term evolution of complex storefronts. His work connects commerce strategy, UX, engineering, analytics, integrations, and practical AI adoption, giving brands a technical and commercially grounded path from platform decision to post-launch growth.

Shopify catalog managementProduct data migrationsShopify integrationsLong-term Shopify support