Skip to content
Guides

2026-05-24

How to bulk update Shopify prices and undo them later

Price changes are one of the highest-frequency Shopify edits, and one of the easiest to get wrong under time pressure. The friction is rarely the math. It is the targeting (the wrong vendor, the wrong tag, a date that includes products that should have been excluded) and the cleanup when something goes wrong. This guide explains how to structure a safer bulk-pricing workflow with rollback as a primary control, not a backup feature.

Plan the target set before touching prices

Most price-update errors come from targeting mistakes, not math. Before changing a price, decide exactly which slice of the catalog the change should hit. The right scope depends on the campaign shape: collection-wide markdowns, vendor-specific increases, market-level adjustments, or a tag group set up for the sale.

Write the scope down before opening the editor. A merchant who knows the scope can usually catch a targeting mistake when the proposed write lists the wrong number of variants. A merchant who is figuring out the scope while looking at the preview is more likely to approve a wrong list because the number "looks roughly right".

Pick the change shape that matches the campaign

There are four common shapes for a price campaign, and each one calls for a different write.

  • Percent change: drop or raise prices by a fixed percentage across the scope
  • Fixed delta: change every price by an exact dollar amount up or down
  • Compare-at update: set or clear the compare-at price to show a sale display on the storefront
  • Cost-plus-margin: recalculate the price from a cost column with a target margin

Make rollback part of the plan, not a recovery step

If a campaign is temporary, rollback is not optional. It should be scheduled at the same time as the original change so the campaign undoes itself when the end date arrives. The merchant does not need to remember to run a reverse import on Friday at midnight.

For permanent changes, rollback still matters because mistakes happen. Even a margin-driven price increase that is meant to stay can need a partial revert if the supplier cost was wrong. A workflow where rollback is a first-class control reduces the cost of correcting that error from hours to minutes.

Use review before apply, every time

The best protection against a wrong price write is not speed. It is being able to confirm the proposed write before prices change on the storefront. The review screen should list the exact variants in scope, the current price, the new price, and the per-line delta. If any of these do not match the intent, the operator declines and refines the instruction.

A serious review screen makes the cost of declining cheap. A merchant who has to redo a whole task setup to refine the scope will be tempted to approve a slightly wrong write. A merchant who can refine the instruction in chat and see a new proposed write in seconds will catch more mistakes before they happen.

What tools to use for which shape

For a flash sale on a small known product set, the native Shopify admin bulk editor is fast enough; the install cost of any external tool is higher than the saving. For a recurring scheduled markdown on a known calendar (every Friday at 18:00), Ablestar or QuickEdit are the better fit because they were built around tasks and schedules.

For a campaign that starts as a request ("drop prices 15% for vendor Acme until Friday"), ApiMate is the better fit because the instruction itself is the spec. The proposed write lists the exact variants and the new prices, the approval gate is explicit, and the revert lives in the same chat thread.

For a full cost-plus-margin recalculation from a supplier feed, Matrixify is the right tool. The change starts as a file, the column shape is stable, and the run can be scheduled. ApiMate is not built for that pattern.

A worked example

A merchant runs a spring sale that drops prices 15% for vendor Acme between Friday 18:00 and Sunday 23:59. The job touches 42 products and 96 variants. The wrong way is to set up a one-off CSV import on Friday afternoon, forget to schedule the revert, and spend Monday morning re-importing the original prices because the sale ended and the storefront still shows discounted prices.

The right way is to write the instruction once, schedule the revert at the same time, approve the proposed write, and forget about it until Monday morning. The campaign starts and ends without anyone touching the catalog in the middle. If a stock-keeping mistake is caught during the campaign, the revert is one action from chat history.

FAQ

Frequently asked questions

Can I schedule a price revert to run automatically?+

Yes, in ApiMate. The revert instruction can be scheduled at the same time as the original change. Ablestar and QuickEdit support scheduled tasks too; their model is task-based rather than instruction-based but reaches a similar outcome.

What happens if the proposed write targets the wrong vendor?+

The proposed write screen shows the vendor and the exact variants in scope. If the vendor is wrong, the merchant declines and refines the instruction. Nothing applies until approval.

How is undo different from a Shopify export-then-reimport?+

Export-then-reimport works but adds friction. The merchant has to find the right export, prepare it, and run a new import. A first-class undo flow stores the prior values at write time and writes them back in a single action.

Does undo work for compare-at price?+

Yes. Compare-at price is a regular field on the variant; the prior value is captured at write time and restored on revert.

Explore More

Related pages

Try ApiMate on a real Shopify catalog

Install from the Shopify App Store. Every write is reviewed before it runs, and any change can be rolled back from the command history.