Craftshift logo

How to bulk update Shopify SKUs without breaking your inventory reports

how to bulk update shopify skus

When updating Shopify bulk records to add sku fields for all the variants for your store, the right way to do it depends on your circumstances. If you have hundreds or thousands of variants, and you want to update sku information for all of them, first determine why your variant SKUs need to be updated (e.g. You transferred from a legacy ERP system, or you are implementing new SKUs?). Both problems are easy to solve, and neither should be done within the product editor, one record at a time. The approach will differ from a store with legacy SKUs, to a store with no SKUs at all and a desire to implement a numbering scheme.

This guide covers three viable methods for variant numberation as of 2026: using the native Shopify bulk editor for numbers of variants under 200; utilizing Shopify’s native product importer to import from a CSV for numbers of variants up to 3000; and finally utilizing the excellent Matrixify application for numbers of variants over 5000. It also touches on the much greater importance of SKU consistency compared to most founders think, as well as the one mistake that can force you to re-do half of any re-numbering project.

In this post

Why SKU consistency matters

SKUs are more than just little labels on products in your store. They appear in your in-house inventory reports, in your customers’ confirmation emails, in your warehouse’s fulfillment pick slips, in the workflow you set up for returning merchandise, in the automated exports you send to your accountant, in the purchase orders you send to your suppliers, and in (if you are 3rd party logistics or marketplace integrated) any automated communication that your store has with external sites using your Shopify API. Therefore you should rename a SKU only if the change will agree be adopted by all places that use that value.

SKUs with duplicate values can cause a lot of pain in your shop, in the form of double counting of inventory, problems reconciling orders to purchase orders, and possibly the most insidious problem of all: reports that look correct but are actually returning the wrong value because two different products share the same SKU. If you see a “blue” entry in your “Sales by SKU” report, you likely have this problem. Check out our post on Shopify SKU system for information on how to create SKUs that can handle over 10,000 products.

Method 1: Native bulk editor

Shopify’s bulk editor is okay for small changes. Go to Products, filter down what you need to edit, select all, then Bulk edit, then add the field SKU to the bar at the top. This will turn it into a spreadsheet. Paste in the values and then save changes.

Limits: The bulk editor can be quite slow to load when you have more than a few hundred items in the list. It does not allow you to create SKUs from formulas. If you want “TSHIRT-RED-S” to automatically get generated from the product handle, the color option, and the size option using the native editor you would have to type each one out individually. Ugh.

Method 2: CSV import/export

This is the method most stores use. Here’s the clean flow:

  1. Go to Products, click Export, choose “All products” and CSV for Excel/Numbers/Google Sheets.
  2. Open the file. You’ll see columns for Handle, Option1 Name, Option1 Value, Variant SKU, and a bunch of others.
  3. Use a formula to build the new SKU from your columns. Example: =UPPER(LEFT(B2,4))&"-"&E2&"-"&F2 to combine a handle prefix with option values.
  4. Delete every column you’re not updating except Handle, Title (Shopify requires it for the first row of each product), and Variant SKU. Keeping extra columns risks overwriting them with stale data.
  5. Save as CSV with UTF-8 encoding.
  6. Go back to Products, click Import, and upload. Check the “Overwrite existing products with matching handle” box.

In the Variant SKU column, never leave a row empty (i.e. don’t type nothing there) if you don’t want to change the SKU of that variant. Blank in the CSV will mean Shopify writes an empty string to that variant’s SKU on import. This is how people accidentally clear out the SKU field for 8,000 variants with one click. We’ve seen a lot of these kind of tickets.

Method 3: Matrixify

When you hit a few thousand variants (or worse, logic like “update SKUs for products in collection X with vendor Y”) you flip to Matrixify (formerly Excelify). An app with a reasonable price tag. Highly recommended.

NeedNative bulk editorNative CSVMatrixify
Under 200 variantsFineWorksOverkill
200-5000 variantsPainfulWorksEasier
5000+ variantsNoSlowYes
Conditional updatesNoNoYes
Scheduled exportsNoNoYes
Rollback a bad importNoNoYes, with snapshot

love how use SNAPSHOTS when working with SKUs in Matrixify. this means that with every import, the function saves a report of what formula it used to process the file, so should anything go wrong in the formula, it is simple to re-import the saved information for the correct output.

Naming conventions that survive

A few principles:

Example pattern: TS-CREW-BLK-M. These patterns contain enough information to identify an item within a catalog, such as a t-shirt with a graphic print. They are easily sortable and concise. For a small catalog with 50 products, these patterns are sufficient. But they can also be used for a catalog with 50,000 products.

Gotchas that bite later

These are the ones we see in support tickets:

  1. Duplicate SKUs across variants. Shopify allows it. Most reporting tools don’t. If two variants share a SKU your “units sold by SKU” report collapses them and you think one variant is twice as popular as it is.
  2. Leading zeros stripped by Excel. Open a CSV in Excel and “00421” becomes “421”. Use Google Sheets or force text format on the column before pasting.
  3. Hitting the 2048 variant cap on a product with Combined Listings. Shopify lets products have up to 2048 variants with Combined Listings, and 3 option types max. If you’re scaling a catalog, read our 2048 variant limit explanation before you restructure SKUs.
  4. Renaming SKUs without telling your 3PL. Your warehouse still has the old SKU on its shelf labels. Coordinate.
  5. Forgetting barcodes. SKU is internal. Barcode is for scanners. Don’t jam them into the same field.

Cleaning up SKUs by having one product per color (vs one product with many colors) is only half the battle if you have too many separate products that should be displayed together. You also want to have combined listings with swatches for customers to easily compare variants in category and product pages. That’s where Rubik Combined Listings comes in. It does exactly that, and leaves you with nice SKU families (one product per color, with its own SKU family). Check out the demo and docs here: http://rubikify.com/ and http://rubikswatch.com/.

Rubik Combined Listings bulk grouping

For the product page side, show the right images when a customer picks a variant. Demo and tutorial at http://rubikvariantimages.com, docs at http://rubikvariant.com.

“Rubik Variant Images helped me organize my product images without needing to duplicate them for each variant, which is great for page speed.”

Pack Ship Mail Supplies, US, App Store review

“Great for grouping products together, very easy to use. Thank you developers.”

BELSKI, Australia, Rubik Combined Listings review

If you need to check your product catalog size before doing an import check out the Shopify variant limit calculator or the rest of our free tools.

FAQ

Can I bulk update SKUs from the Shopify mobile app?

No. SKU editing is something that can only be done by a desktop admin using the web bulk editor feature or a CSV import.

Does updating a SKU affect existing orders?

Note on SKU# renames: We keep the SKU# as it was at the time of the order. All future orders will have the SKU# updated to the new value. This can make for some very confusing reporting numbers if you happen to rename a SKU in the middle of the month.

What’s the max length of a Shopify SKU?

255 bit: Keep length of string well under 16 characters.

Is there a free way to bulk update thousands of SKUs?

Yes: allow manual editing of the output in spreadsheet format (e.g. export from Matrixify, edit in Excel, import back into Yes) which I realize requires more hand labor but is free.

Can I bulk update barcodes the same way?

You’re using “Variant Barcode” as the CSV column, correct? Don’t enter a value for that column on rows you are not updating, or you will remove any existing Variant Barcodes.

What happens if two variants end up with duplicate SKUs?

Shopify accepts it; however most reports, 3PLs, and accounting tools will fold these duplicates together so be sure to check for any duplicates before finalizing the name change.

Always do an export of your CSV before you click Import. Future you will thank past you when the formula goes wrong.

Our Shopify Apps

Smart Bulk Image Upload

Bulk upload product images from Google Drive & save time!

Rubik Variant Image & Swatch

Show only relevant variant images on your product pages.

Rubik Combined Listings Swatch app

Rubik Combined Listings

Link separate products as variants with beautiful swatches

CS – Export Product Images

Bulk export product images by vendor, collection or status

Blog Posts