Recovery guide

How to undo a bulk edit in Shopify

If you just ran a bulk edit that went wrong, stop reading tips and skip to "stop making it worse" below. Then come back for the recovery options in order of how likely they are to work.

Bulk edits go bad in a few predictable ways: a filter caught more products than you meant, a percentage adjustment was typed backwards, a CSV re-import mapped the wrong column to price, or an app reported "done" on a job that actually only half-applied. Whatever the cause, the fix depends entirely on one thing: whether you have a copy of your data from before the edit. This guide walks through what's recoverable, what usually isn't, and what to set up so this is a five-minute fix next time instead of a five-hour one.

First, stop making it worse

Before you try to fix anything, do three things:

Option 1: Shopify's native undo options

Shopify's built-in tools give you very little safety net for bulk product changes, and it's worth knowing the actual boundaries instead of assuming there's a "revert" button somewhere.

The admin's bulk editor grid

If you made the edit in the spreadsheet-style bulk editor (Products > Select products > Bulk edit), Shopify keeps a short-lived undo option immediately after a save, but it's session-scoped: it works right after you save, before you navigate away or close the tab. Once you've left the page, refreshed, or come back later, that undo is gone. It's not a durable history you can return to hours or days later.

No native version history for product fields

Unlike some page builders or CMSs, Shopify doesn't keep a rolling version history of product field values. There's no "restore to yesterday's version" for a product's price, tags, or status. Order history and some admin sections log activity, but product field changes made in bulk generally aren't reconstructable from an activity log after the fact.

If the bad edit was made through the CSV import screen or the GraphQL/REST Admin API (directly or through an app), the same applies: Shopify records that an update happened to power sync and search reindexing, but it does not give you a built-in way to see what the value was immediately before.

Option 2: restore from a CSV export you made before

If you exported your product catalog to CSV at any point before the bad edit, this is usually your best and fastest recovery path.

  1. Find the backup file. Check your downloads folder, any scheduled export emails, or backup apps that snapshot exports automatically. Even an export from a few weeks ago is useful for fields that don't change often, like tags or status.
  2. Do a small test import first. Shopify's product CSV import matches rows to existing products by handle (and variants by SKU or option values). Import three to five rows first and check the result before committing to the full file.
  3. Check what the CSV will and won't touch. A re-import only overwrites the fields present as non-empty columns in that file. If your backup CSV doesn't include a column, or a cell is blank, it generally won't clear the current value. That's good for avoiding collateral damage but means a partial backup gives you a partial fix.
  4. Review the import summary Shopify gives you after it finishes, and spot-check a sample of products manually in admin and on the live storefront.

The catch: a CSV re-import overwrites with whatever was true at export time. If anything legitimate happened between that export and now, like a manual price correction someone already made, an inventory count that moved, or a new variant that was added, re-importing the old file can silently undo that too. A backup restore isn't surgical, it's a blunt instrument. Know that going in, and check the products people are most likely to have touched recently before you trust the restore completely.

Option 3: restore from an app that kept a snapshot

If the bulk edit was run through an app, check whether that app kept a checkpoint or snapshot of the affected products before it wrote anything. Some bulk editing apps keep this kind of pre-change record, others don't retain anything beyond the change itself.

Two things worth checking before you trust an app-based rollback:

This is the gap Gridproof is built to close for future jobs: every job it runs keeps an automatic checkpoint snapshot, and rollback skips and flags anything that's been edited since the original job instead of overwriting it. It won't help with an edit that already happened outside it, which is the honest limit of any bulk tool, but it means the next bulk change you run has a real restore point by default.

See how Gridproof's checkpoints work

What's actually gone for good

It's worth being direct about this instead of implying there's always a fix. Without a backup, snapshot, or export taken before the bad edit, the following are generally not recoverable through Shopify:

If you're in this position, your realistic path is reconstruction: pull whatever old numbers exist in accounting exports, supplier catalogs, or a colleague's memory, and treat it as a manual rebuild rather than a technical undo.

How to be ready next time

The single highest-leverage habit here is simple: take a full product export immediately before any bulk change that touches price, status, or a large chunk of your catalog. It costs a couple of minutes and turns "unrecoverable" into "five-minute restore" for almost every failure mode above.

If you want that snapshot to happen automatically, and a rollback that's smart enough to skip anything edited since, that's the specific problem Gridproof's checkpoint and rollback pillar solves: every job snapshots the affected fields first, previews the exact change before anything writes, and keeps a restore point you can use without doing the manual export dance. It's free on the smallest jobs, so there's no reason to run a consequential bulk change without a checkpoint underneath it.

If you're specifically dealing with a bulk operation that claimed success but clearly didn't apply everywhere, that's a distinct and well-documented failure mode worth understanding on its own: see why Shopify bulk operations can say COMPLETED even when nothing changed. And if you're choosing a tool for your next bulk edit, the bulk editor comparison covers what to check for before you trust one with your catalog.