On this page
← Back to Blog
  • shopify
  • pricing
  • csv
  • bulk-edit

How to Bulk-Edit Shopify Prices Safely

How to Bulk-Edit Shopify Prices Safely

Quick answer

To bulk-edit Shopify prices safely, export your products to CSV and keep an untouched copy as a backup. Change only the Price column (and, if needed, Compare-at price), compare the edited file against the original, then import it with "Overwrite products with matching handles" and spot-check a few products.

A storewide price change sounds simple until you see what can go wrong: a sale badge that vanishes, a variant priced at $0.00, or a spreadsheet that turned 19.90 into 19.9 and a SKU into scientific notation. The steps below keep a bulk price edit reversible and easy to check.

What are your options for changing Shopify prices in bulk?

Shopify gives you two built-in routes.

The bulk editor works well for a few dozen variants. Select products in Products, click Bulk edit, and add the Price and Compare-at price columns. You see every value as you change it, which makes mistakes easy to spot. Past a page or two of products, it's slow going.

The product CSV is the better route for a whole catalog or a percentage change. You export products, edit the price columns, and import the file back with Overwrite products with matching handles checked. This article focuses on the CSV route because it's where most bulk-pricing mistakes happen.

Why do you need a backup before editing prices?

When you import with overwrite on, Shopify replaces the live values with whatever the file says. A blank cell in a non-required column overwrites the live value with a blank, while a column you leave out of the file entirely stays unchanged. The product CSV field reference covers these rules.

So before you touch anything:

  1. Go to Products → Export and export all products as a plain CSV.
  2. Save that file somewhere safe and don't edit it. Name it with the date, for example products-backup-2026-10-16.csv.
  3. Make a second copy to work on.

If the import goes wrong, re-importing the untouched backup with overwrite on puts the old prices back. Import soon after you export: anything you change in the admin between export and import can be overwritten by the older values in the file.

Which CSV columns control price?

Two columns matter. Price is what the customer pays, and Compare-at price is the "was" price shown crossed out next to it. Files built from older templates call them Variant Price and Variant Compare At Price; Shopify accepts either set.

Each variant has its own row, so a product with three sizes has three prices to update. Leave the other columns alone. Changing the Option1 value, Option2 value, or Option3 value columns deletes the existing variant IDs and creates new ones, which can break links, apps, and reports tied to those variants.

How do you apply a percentage or fixed price change?

You can write a formula in a spreadsheet, but opening a Shopify CSV in Excel or Sheets has side effects. Long numeric SKUs and barcodes can turn into scientific notation, leading zeros disappear, and trailing zeros get dropped from prices.

The Shopify Price Updater avoids that by editing the file directly in your browser:

  1. Upload your working copy of the product CSV.
  2. Pick the price column. It defaults to Price, or Variant Price in older files.
  3. Choose a percentage or fixed amount, increase or decrease, and an optional rounding rule.
  4. Download the updated file.

It rewrites only the column you picked and keeps every other column and row as it was. Empty or non-numeric price cells are skipped and counted in the summary, so a blank variant row won't become $0.00. Prices never go below zero, and the output always has two decimals, which is the format Shopify exports. The file never leaves your device.

The tool reads a period as the decimal separator, as Shopify exports do. If your working copy passed through a spreadsheet set to a locale that writes 12,50, fix that first or start again from a fresh export.

How should you handle compare-at prices?

Shopify only shows a sale when the compare-at price is higher than the price. That leads to two common cases.

To run a sale, the compare-at price should hold the original price and Price should hold the discounted one. If your compare-at column is empty, copy the current prices into it first, then decrease Price by your discount.

For a permanent price increase on products that already show a compare-at price, raise both columns by the same amount. Otherwise a price can climb to or above its compare-at price and the sale display disappears. With the Price Updater, that's two passes: update Price, download, upload the result, switch the column to Compare-at price, and apply the same change.

Does rounding to .99 change the result?

Yes, and sometimes in a direction you don't expect. The Price Updater's .99 and .95 rules move each price to the nearest matching ending, not the next one up. For example, a $10.00 product raised by 3% becomes $10.30, and the nearest .99 value is $9.99. That's lower than where it started.

"Nearest whole number" has the same effect: $10.30 rounds to $10.00. For small increases, choose "No rounding", or sort the result and check the lowest-priced items. The larger the change, the less the rounding matters.

How do you dry-run the change before importing?

Treat the edited file as a draft until you've compared it against the original:

  • Read the summary. A line like "Updated 412 of 418 rows, 6 skipped" tells you how many rows had no usable price. Check the skipped rows before importing.
  • Compare the two files with the Shopify CSV Diff tool to see every price that moved, and confirm that nothing outside the price columns changed.
  • Pick a few products you know well and check the new numbers by hand, including your cheapest and most expensive items.

If you're nervous about the whole catalog, import a file with a handful of products first. Once those look right, import the rest. If Shopify rejects the file, see Shopify's common import issues page.

How do you verify prices after the import?

Large imports can take a while, so wait until the import finishes before checking. Then:

  1. Open a few edited products in the admin and compare each variant's price and compare-at price against your edited file.
  2. Look at the same products on your storefront. Confirm the sale display shows where you expect it and is gone where you don't.
  3. Add a product to the cart to make sure the checkout price matches.
  4. Keep the backup file until you're confident the new prices are right.

How do you track the effect of a price change?

Once the new prices are live, the next question is how sales respond. ShopSheets syncs your full Shopify order history to Google Sheets, so you can compare order totals before and after the change without a weekly export.

Ready to try it?

Automatic Shopify → Sheets sync.

Orders and fulfillments — always up to date in your spreadsheet.

Try ShopSheets free