Skip to content
Endline

GuidesShopify

How to bulk edit Shopify products without breaking your store

Bulk edits save hours. They can also change hundreds of products in one step, and a CSV import has no undo button. This guide covers the three ways to edit in bulk, a safe CSV workflow, the mistakes that cause most of the damage, and how to recover.

By Endline Studio · Updated

Why bulk changes go wrong

A single product edit touches one page. A bulk edit touches every product in the selection or file. Small mistakes multiply fast.

  • Prices. A formula fills the wrong rows, or a spreadsheet turns a price into a formatted currency value. Now the error is live across the catalog.
  • Variants. A missing option column can delete variant options, and a row moved away from its product is no longer imported as one of its variants.
  • Inventory. Quantities from an old export overwrite the stock you actually have.
  • SEO. A changed handle changes the product URL. Links and search results that point to the old URL break.

Most CSV accidents come from one rule. In a Shopify product import, a blank cell is a value. Shopify reads it as “clear this field”.

Three ways to bulk edit

1. Shopify’s bulk editor

Built into the admin. Select products in the Products list, choose to bulk edit, and change values in a spreadsheet-like grid. You choose which fields appear as columns.

Use it for quick, visible changes to a manageable number of products: a few prices, SKUs or tags. It is also the place to edit variant metafields in bulk, because product CSV files don’t support them.

2. CSV export and import

Export products to a CSV file, edit it in a spreadsheet, and import it back with the option to overwrite products with matching handles. Shopify identifies each product by its handle.

Use it for large or structured changes across many products. The trade-off is that the format is unforgiving, an import can’t be canceled once it starts, and the file must be 15 MB or smaller.

3. Apps

Bulk editing apps add things Shopify doesn’t do on its own. Depending on the app, that means rules (“raise prices in this collection by 10%”), editing in Google Sheets or Excel, a review step before changes apply, and a saved copy of the data before each change.

Use one when you edit in bulk often, when several people edit, or when you want the backup and review step handled for you. Keep in mind that it is one more app with write access to your products.

MethodBest forMain risk
Bulk editorSmall, visible editsNo file to roll back to
CSV importLarge, structured editsBlank cells clear data
AppsFrequent or team editsCost and app access

A safe CSV workflow, step by step

The same six steps work for a price update on a few products and for a cleanup across the whole catalog.

  1. Export the products you will change. In the Shopify admin, go to Products and click Export. Choose all products, the current page, selected products or the products that match your search. Depending on its size, the file downloads in your browser or is emailed to you.
  2. Save an untouched backup. Copy the exported file and add the date to its name. Never edit this copy. It is your way back if the import goes wrong.
  3. Edit only the columns you need. Delete every column you are not changing, but keep Handle. If you edit variant data, also keep the option name and value columns. A column left out of the file keeps its current values. A blank cell clears the value. Do not sort the rows.
  4. Test with a few products. Make a second file with the header row and every row of two or three products. Import it and check those products in the admin and on the storefront.
  5. Import the full file. Go to Products, click Import, add the file and select Overwrite products with matching handles. Click Upload and continue, then click Import products. Keep the file under 15 MB, or split it.
  6. Verify the result. Spot check products from the start, middle and end of the file. Compare prices, compare-at prices, variants, images and inventory with what you expected, in the admin and on the storefront.

Step 3 matters most. Here is a file that only updates prices for a product with variants. Everything not in the file stays as it is.

Handle,Option1 Name,Option1 Value,Variant Price
linen-shirt,Size,S,48.00
linen-shirt,Size,M,48.00
linen-shirt,Size,L,52.00

Shopify’s own guidance is to have a backup of your product data before you import. Treat the export in step 2 as required, not optional.

Common mistakes

Overwriting variants

Every variant has its own row, and all rows of a product share the same handle. Shopify warns that if a column depends on data in columns that aren’t in the file, the existing data is removed. A missing Option1 Name and Option1 Value can delete the variant option. Keep the option columns whenever you touch variant data.

Two more rules from Shopify. If you don’t select Overwrite products with matching handles, products whose handle already exists are ignored, so nothing changes for them. And changing the values in the Option1, Option2 or Option3 columns deletes the existing variant IDs and creates new ones. Any app or integration that relies on those IDs can stop matching its data.

Handles and row order

All rows of one product share its handle, and they have to stay together. Shopify notes that if rows with the same handle are separated by other products, the later rows aren’t imported as variants of that product. Handles can contain letters, numbers and dashes, but no spaces.

Changing a handle on purpose changes the product URL. Add a redirect from the old path in Content > Menus > URL redirects, and don’t change handles often. See Shopify’s URL redirect guide.

Blank cells that erase data

With overwrite on, a blank cell in a column clears that field. Shopify’s example is the vendor: leave the cell empty and the vendor is removed. A column you delete from the file keeps its current values. When in doubt, delete the column instead of emptying it.

Price formats

Keep prices as plain numbers, with no currency symbols. Spreadsheet programs like to reformat numbers as currency, so check the saved file in a text editor. An empty Variant Compare-at Price cell is still a blank cell: it removes the compare-at price.

Images

Additional product images live in their own rows, with only the handle and the image URL filled in. They look like empty rows, so they get deleted or sorted away. Shopify warns that sorting the CSV can separate products from their images, and those images can be lost. Filter if you must, but don’t sort.

Metafields

Product metafields can be imported and exported by CSV. The column header uses the metafield’s namespace and key, like product.metafields.custom.material, which you can find in Settings > Custom data > Products. Variant metafields are not supported in product CSV files; use the variant bulk editor for those.

Inventory

Inventory has its own CSV, exported and imported from the Inventory page. In that file you can leave the On hand (new) column empty to keep a quantity unchanged. SKUs are the exception: they can only be updated with the product CSV. Never import stock numbers from an export that is hours or days old.

How to undo a bad import

Shopify has no undo for a CSV import, and an import can’t be canceled once it starts. Recovery means importing the right data back.

  1. Stop further changes. Pause other imports, apps and automations that write to products.
  2. Find what changed. Export the affected products now and compare the file with your backup, column by column. A spreadsheet lookup on Handle is enough for most stores.
  3. Build a restore file. From the backup, keep Handle, the option columns if variants were affected, and only the damaged columns. Keep only the affected products.
  4. Test, then import. Import the restore file for two or three products first, check them, then import the rest with overwrite on.
  5. Clean up. Delete any products the import created by mistake, and add redirects for any handle that changed.

No backup? Look for other copies: the original file you imported from, the version history in Google Sheets if you edited there, or the history in a bulk editing app. Failing that, the fix is manual. That is the strongest argument for step 2.

Tools that help

Some links may be referral links. We only list tools we’d recommend anyway.

  • Sheetsmith. Exports products to Excel or Google Sheets and imports your changes back, with a preview of the differences before anything is applied and a backup of the data it replaces. A good fit if you like the spreadsheet workflow but want the review step and the backup built in.
  • Matrixify. Imports, exports and updates store data in bulk using Excel, Google Sheets or CSV files. It covers much more than products, which makes it common for large catalogs and store migrations.
  • Shopify’s bulk editor. Free and built in. For small edits it is often all you need.

Checklist

  • Fresh export saved, plus an untouched, dated backup copy
  • Only Handle and the columns you are changing are left in the file
  • Option name and value columns kept for any variant edits
  • No blank cells where you meant to keep a value
  • Rows never sorted; image rows still sit under their product
  • Prices are plain numbers with no currency symbols
  • Metafield namespace and key checked in Settings > Custom data
  • Inventory changes go through the inventory CSV, not guesses from an old export
  • Redirects planned for any handle you change
  • File saved as CSV and under 15 MB
  • Test import of two or three products checked first
  • Overwrite products with matching handles selected
  • Results spot checked in the admin and on the storefront

Sources

The Shopify facts in this guide come from the Shopify Help Center: