How to undo a bulk edit in Shopify
Shopify's built-in bulk editor has no undo button, and Shopify doesn't offer a product version history to restore from. You can reverse the edit with a CSV export taken beforehand, by running the opposite edit, or with an app that saved each product's earlier version.
Which tool made the edit?
Where the bulk change came from decides your options:
- Shopify's bulk editor (Products → select → Bulk edit): no undo, no history.
- A bulk editor app such as Hextom or Ablestar: these keep their own undo history for edits made through that app, within a window that depends on the plan. Check the app first.
- A CSV import: see how to undo a CSV import.
- Another app or a sync from an ERP or supplier feed: the app may log its own changes. Shopify has no built-in way to revert them.
How to undo a bulk edit without a history app
Option 1: run the opposite edit
Works when the change was a single, reversible rule, and only if nothing else changed those fields since.
- Write down exactly what ran, for example "price +20% on tag
summer". - Select the same products with the same filter.
- Apply the inverse. For a 20% increase that's ×(1/1.2), not −20%. Rounding may leave prices a cent off; check a few.
- Spot-check products that were on sale: a compare-at price rule may need its own inverse.
This doesn't work for edits that overwrote different values with one value (for example "set all compare-at prices to blank"). The old values aren't recoverable from the result.
Option 2: re-import an earlier export
- Find the most recent product export from before the edit.
- Delete every column except
URL handle,Titleand the columns the bulk edit changed. For variant columns (Price,SKU,Inventory quantity), also keepOption1 nameandOption1 value: without them Shopify can delete or recreate variants. Other left-out columns keep their current values. - Import with Overwrite products with matching handles ticked.
- Check a sample of products.
This overwrites any edits made to those columns since the export, so remove rows for products that were fixed or changed afterwards.
Option 3: fix by hand
For a few dozen products, use the bulk editor grid to type the old values back in, using order line items, Google Merchant Center, or screenshots as the source.
What Shopify can and can't undo after a bulk edit
| Change | Shopify on its own | Notes |
|---|---|---|
| Edit in Shopify's bulk editor | No undo | Reverse by hand or from an export |
| Edit through a bulk editor app | Often, in that app | Only that app's edits, within its plan's window |
| Edit by another app or a sync | No | Unless that app has its own undo |
| Single product edit before saving | Yes | Discard unsaved changes |
| Single product edit after saving | No | Shopify has no product version history to restore from |
| Stock changes | No undo | Adjustment history shows each change per product or variant (last 180 days), with no revert |
The full list: what Shopify can and can't undo.
How it works with Trailmark
Trailmark records changes to product fields, variants (price, compare-at price, SKU, barcode), tags, images, metafields and collections, whatever made them: Shopify's bulk editor, a bulk editor app, a CSV import, another app, or a sync. It needs to be installed before the edit.
You get an alert
Once a minute, Trailmark checks for bursts of edits. A burst becomes an alert when it touches about 10% of the catalog (at least 10 products, at most 50) in a run of edits with no 5-minute gap, cut off at 30 minutes. You see it on the Alerts page and as a banner on the app's home page. Alerts are in the app only for now.
Stock gets its own alerts: a burst of items set to 0 or moved by more than half. Those show before and after per item with a CSV download. Stock alerts have no undo button, because orders keep selling and an automatic reset could oversell.
Undo only what the bulk edit did
Undo this change on a product alert compares three versions of each product: before the edit, right after it, and now.
- Every part the edit touched goes back: title, handle, description, vendor, type, status, each variant's price, compare-at price, SKU and barcode, each tag, images and their order, metafields, manual collections, added or removed variants.
- If someone changed that part again after the edit, it's kept and listed as a conflict. Tick a conflict to put it back anyway. Tags and collections are merged item by item instead, with no conflicts.
- A preview lists the changes for up to 50 products before you confirm.
- Online Store visibility isn't undone. If the edit hid products, restore visibility from each product's timeline.
- Undo works while the change is inside your plan's history window.
Example: a bulk edit raised prices at 2pm. At 4pm a staff member fixed three product titles. Undo puts the prices back and keeps the new titles.
Revert to a date
For edits too small to trigger an alert, or to choose the products yourself (paid plans): select products, pick a date, and revert each to its state at the end of that day. This replaces everything that changed after that point, not only the bulk edit. The preview shows what will change before you confirm.
Your latest revert, including an undo from an alert, can be undone, and that undo can be undone again.
Checklist before a bulk edit
- Export the products you'll change, or all products.
- Write down the filter and the exact rule you're applying.
- Test the edit on 2–3 products first.
- For percentage changes, check rounding on a low-priced product.
- Check compare-at prices: raising price above compare-at hides the sale badge on many themes.
- Pause any app or sync that writes to the same fields.
- After saving, spot-check products from the start, middle and end of the selection.
FAQ
Does Shopify's bulk editor have an undo button?
No. Changes are saved to the products immediately, and Shopify has no product version history to go back to.
Can Hextom or Ablestar undo edits made in Shopify's bulk editor?
No. Bulk editor apps undo their own edits. Edits from Shopify's bulk editor, CSV imports or other apps aren't in their history.
How do I reverse a percentage price increase?
Divide by the same factor. A 20% increase is undone by multiplying by 1/1.2 (about 0.8333), not by subtracting 20%. Expect some rounding differences.
Will undoing a bulk edit also wipe changes made after it?
With an export re-import or a revert to a date, yes, for the fields involved. With Trailmark's alert undo, no: later edits to the same fields are kept and shown as conflicts.
Can I undo a bulk stock change?
Not automatically. Trailmark shows each item's before and after, with a CSV, so you can correct counts with an inventory import. It doesn't reset stock itself.