Bulk editing guides

How to bulk edit SKUs, barcodes and weights in Shopify

Updated September 2026

SKUs, barcodes, and weights live on the variant, not the product, and that one fact is behind most of the ways bulk editing them goes wrong. A spreadsheet row has to name a specific variant out of possibly dozens; a SKU is both the thing you are renaming and the way many tools find the row’s variant; and weights carry a unit that spreadsheet apps love to strip. Here is how to change these three fields across a catalog without writing them onto the wrong variants.

The identity problem: which variant is this row?

Everything else follows from row matching. In order of reliability:

  1. Variant ID. Unambiguous. Every SureEdit export includes it, and a row that carries it always wins.
  2. Option values. A Shopify-native export has no Variant ID column, but it has Option1 to Option3 name and value columns. Under a product found by ID or handle, the option values (Size S, Color Heather Grey) pick exactly one variant. Matching must be exact and case-sensitive: Shopify allows “Blue” and “blue” as two different variants, so a fuzzy matcher would write to the wrong one. When nothing matches but a case-insensitive candidate exists, a good importer suggests it and still refuses to write.
  3. SKU. Works only while SKUs are unique, which Shopify does not enforce. An ambiguous SKU match should fail the row with a reason, never pick a variant for you.

The subtle case is renaming SKUs from a Shopify-native export: the SKU cell cannot be both the row’s identity and the new value. When the option values identify the variant, the SKU cell is freed up to be a value, so a plain Handle + Option1 Value + Variant SKU file renames SKUs correctly. SureEdit applies exactly that precedence: Variant ID beats options, options beat the SKU cell, and the SKU cell is only written when something stronger identified the row.

SKU renames: the two traps

Barcodes: verbatim or not at all

Barcodes are strings, not numbers. Spreadsheets that decide 0123456789012 is the number 123456789012 destroy the leading zero, and 13-digit EANs get rewritten into scientific notation. Format the barcode column as text before editing, and use an importer that writes the cell exactly as it stands rather than parsing it. SureEdit treats barcode cells verbatim, spaces included, and allows __CLEAR__ to remove one deliberately.

Weights: units, grams, and the clear that does not exist

Find and replace across SKUs, without a file

For pattern renames (a vendor prefix change, a typo in a SKU family), the file is overhead. SureEdit’s wizard includes find and replace on SKUs with a case-sensitivity toggle: filter the products, preview every before and after SKU, run, and every write is verified and undoable, the same as find and replace on titles and descriptions.

The round trip that proves the tool

The simplest end-to-end test of any variant-field importer: export your catalog, change nothing, and import the same file back. The correct result is zero changes and zero errors. If the tool reports differences on a file it just produced, it is altering your data in flight (encodings, trimmed cells, reformatted numbers), and it will do the same to your real edits. SureEdit ships this exact round trip as an automated test, including a Shopify-native export with no Variant ID column, and the verified CSV import treats every blank cell as “no change” so a partial file is always safe.

Doing this with SureEdit

SureEdit bulk edits SKUs, barcodes, and weights from a CSV (SureEdit, Matrixify, or Shopify-native exports) or sets weights and renames SKUs straight from the wizard. Rows match by Variant ID, option values, or SKU in that order, ambiguity fails loudly, duplicates are warned about, every write is re-read from Shopify and verified, and one click undoes the whole operation. It also covers inventory counts per location through the same verified path.

WRITEREADMATCH ✓

Run this edit with proof, not hope

SureEdit renames SKUs, fixes barcodes, and corrects weights across the catalog with exact row matching, verified writes, and one-click undo. Free up to 50 products per edit.

Install free on Shopify

FAQ

Can I bulk edit SKUs in Shopify from a CSV?
Yes, but the file has to say which variant each row means. A row with a Variant ID is unambiguous. A Shopify-native export has no Variant ID column, so a safe importer matches the row by its option values (Size, Color and so on) under the product’s handle, exactly and case-sensitively, and only then treats the SKU cell as a new value to write.

Why does matching rows by SKU alone go wrong?
Because SKUs are not unique in Shopify. Two variants can carry the same SKU, and a rename breaks the link for the next import. A safe importer uses SKU as identity only when nothing better exists, reports ambiguous matches instead of picking one, and warns when a file writes the same SKU to two variants.

Can I clear a variant weight in bulk?
No. Shopify’s API silently ignores attempts to remove a weight measurement, so a tool that claims to clear weights is not doing what it says. Set the weight to 0 instead; SureEdit refuses the clear token on weight cells and points you at 0, rather than pretending.

Are bulk SKU and barcode changes undoable?
With SureEdit, yes. Every write records the exact previous value, the write is re-read from Shopify and verified, and one click restores the originals. If a value changed after your edit, undo keeps the newer value and reports it instead of overwriting.