Shopify CSV updates · verified 2 August 2026

How do you update Shopify products by CSV without overwriting the wrong data?

Use a fresh export, keep URL handle and Title, include only the columns you intend to change, preserve complete variant option data, and import a small representative set first. In Shopify's documented update workflow, an included blank field can overwrite the existing value with blank, while an optional column left out of the update file leaves that product information unchanged.

What identifies the product being updated?

Shopify documents URL handle and Title as required when a product CSV updates existing products. The handle is the stable product-level key in the file. It is repeated across rows when one product has several variants or images. Do not substitute SKU for the product handle: a SKU belongs to a variant and can be blank, reused, or changed depending on the catalogue.

Start from an export made close to the edit time. That reduces the chance that somebody else changed the store after the spreadsheet was prepared. Keep the original export unchanged as a rollback reference.

What is the difference between an omitted column and a blank cell?

This is the most important update distinction. Shopify says that when an optional column is absent from the CSV, the existing product value is not changed. If the column is present and the corresponding cell is blank, importing with overwrite enabled can replace the existing value with blank.

Update-file stateTypical resultSafer use
Optional column omittedExisting value is preservedUse for a narrow update that should not touch that field
Column included with a new valueExisting value can be replacedUse when the replacement is deliberate and reviewed
Column included with a blank cellExisting value can be clearedUse only when removing the value is intentional

Spreadsheet templates often keep dozens of empty columns for convenience. That can turn a small price change into a broad destructive update. Make a working copy and delete irrelevant optional columns instead of leaving them present and empty.

Why do variant options require extra care?

Variant data such as SKU, price, weight, inventory, and variant image is tied to an option combination. Shopify warns that variant fields depend on Option1 name and Option1 value. Omitting those option values during an update can create a default variant and delete existing variants. Changing option values can also delete old variant IDs and create new ones, affecting apps, feeds, analytics, and integrations that reference the prior IDs.

Keep every variant row for the affected product together, preserve the complete option hierarchy, and compare it with the fresh export. Read the variant option guide before an update that changes sizes, colours, or other option values.

How should a narrow update file be prepared?

  1. Export the affected products. Save one untouched backup and one working copy.
  2. Define one change set. For example, update prices only rather than mixing price, description, option, image, and inventory changes.
  3. Keep the required identity columns. Retain URL handle and Title, plus the complete variant columns needed to identify each row safely.
  4. Remove irrelevant optional columns. Do not leave blank columns that you do not intend to clear.
  5. Preserve row grouping. Do not sort a single column independently; all cells in a row must remain attached to the same product or variant.
  6. Preflight the working copy. Select “Update existing products” in CatalogVigil and resolve blockers before uploading.
  7. Stage the import. Test a small set containing a simple product, a multi-variant product, and any edge case affected by the edit.
  8. Review and verify. Read Shopify's overwrite preview, then check products, variants, images, feeds, inventory, and dependent apps.

What can CatalogVigil detect in an update file?

The local preflight checks header structure, required update fields, incomplete option dependencies, duplicate and suspicious identifiers, row shape, numeric formatting risks, recognised current and legacy headers, and several conservative data-quality signals. It does not know the live values in your store, whether overwrite is appropriate, whether a handle was recently changed, or whether an app depends on a variant ID.

A result with no blockers means the file is ready for Shopify's own validation and preview. It is not a promise that the update is semantically correct.

Quick decision rule

If a field should remain exactly as it is in Shopify, omit that optional column from the update file. If a field should change, include it with the reviewed replacement value. If a field should be deleted, include the column with a blank only after confirming that blanking is supported and intentional.

Preflight the update locally

Choose update intent before selecting the CSV. The file is read in the browser and is not uploaded to CatalogVigil.

Check an update CSV

Primary source: Shopify Help Center: Using CSV files to import and export products. This is an independent operational guide; Shopify's current documentation and import preview control.