Instilus

How to undo a bulk price change in Shopify

Shopify keeps no history of product prices, and bulk edits cannot be undone from the admin. There is no edit history on a product, no revert on the bulk editor, and no record anywhere of what a price used to be. If a sale or a bulk edit changed the wrong prices, your old values exist only wherever you happened to have written them down.

There are four ways back. Each one loses something, and which applies depends entirely on what you did before the change.

1. Restore from an export you took before the change

This is the only route that recovers exact values, and it only works if you exported first.

  1. Products → Import, choose the old CSV, and tick the option to overwrite existing products with the same handle.
  2. Test on one product first. Cut the file down to a single row, import it, and check the result before running the whole thing.

The thing to understand before you press go: the import writes every column in the file, not just the price. If the export is a week old, re-importing it also puts back a week of other edits — descriptions, tags, inventory, SEO fields — silently, in bulk, and with no undo of its own. Delete every column you do not want restored, keeping only Handle, the variant identifier columns and the price columns, and you turn a blunt instrument into a precise one.

2. Rebuild from compare-at prices

If the sale set compare-at price to the old price, the original is still sitting on every variant.

  1. Open the affected products in the bulk editor with both the Price and Compare at price columns showing.
  2. Copy compare-at price into price.
  3. Clear compare-at price.

Two limits. It only works where compare-at was genuinely set from the old price — if a product already had a compare-at price for some other reason, this overwrites the real price with the wrong number. And it recovers nothing for products the sale skipped but something else changed.

3. Rebuild from order history

With no export and no compare-at price, past orders show what each variant actually sold for. Export orders, find the most recent full-price line for each variant, and work back from there.

It is slow, and it has a hole: anything that has not sold recently has no recent price in the data, which tends to be exactly the long tail nobody checked before the bulk edit.

4. Restore from a backup app, if one was already installed

Store backup apps take scheduled snapshots and can restore products to a point in time. If you had one running before the change, this is the cleanest route available to you.

It has to have been installed before. A backup app installed after the bad edit has nothing to restore from, because its first snapshot is of the broken state.

What does not work

Making the next bulk change reversible

Every route above is recovery after the fact, and the two reliable ones depend on something you did beforehand. None of them can be made dependable, because the information they need is not being kept.

So the only real fix is to record what every price was before it changes, and to check each change actually landed. That second part matters more than it sounds: a bulk price update that silently fails on some variants looks identical to one that worked, and you will not find out from the admin.

Worth being plain about the limit, because it is the question everyone arrives with. Any tool of this kind cannot undo a change made before it was installed — those prices are gone, nothing recovers them, and anything implying otherwise is selling a rescue that will not arrive. What a tool can do is make the next change reversible.

A five-minute habit that makes all of this unnecessary

If you take nothing else from this page: before any bulk price edit, run Products → Export, filtered to the products you are about to touch, and keep the file somewhere you will find it. It takes under a minute and it converts the worst case from “reconstruct from orders” to “import one file”.

Putback — Run store-wide and scheduled sales that always put every original price back, with one-click undo.
Free plan, no time limit. Pro $19 a month.
Install Putback free on the Shopify App Store →

Common questions

Can you undo a bulk price change in Shopify?

Not from the admin. The bulk editor has no undo once you save, products have no edit history for prices, and Shopify support cannot retrieve previous values because they are not stored. Recovery depends entirely on what you kept before the change: an export, compare-at prices, order history, or a backup app that was already installed.

Does Shopify keep a history of product prices?

No. There is no price history on a product and no record of what a field used to say. This is also why a re-import is the only route that recovers exact values, and only when you exported before the change.

What is the safest way to restore prices from a CSV export?

Cut the file down to one row and import that first to check the result. Then delete every column you do not want restored, keeping only the handle, the variant identifier columns and the price columns. An import writes every column in the file, not just the price, so a week-old export otherwise puts back a week of unrelated edits as well.

Can compare-at price be used to recover the original price?

Only where the sale set compare-at from the old price. Open the products in the bulk editor with both columns showing, copy compare-at into price, then clear compare-at. If a product already had a compare-at price for another reason, this overwrites the real price with the wrong number.

Will a backup app recover prices after a bad bulk edit?

Only if it was installed before the change. Backup apps restore from their own snapshots, so one installed afterwards has nothing to restore from: its first snapshot is of the broken state.

How do I make the next bulk price change reversible?

Record the original values before anything changes, and check each change actually landed afterwards. A bulk update that silently fails on some variants looks identical in the admin to one that worked. The simplest manual version is to export the affected products to CSV immediately before editing them.

Read next

Instilus apps · Built by Instilus, a trading name of A Star Supply.