Every minute the discount stays up past its end time costs margin on real orders. Work through this in order. The steps are arranged so that nothing you do early makes a later step harder.
1. Stop new orders at the wrong price first
If the discount is deep and volume is high, the fastest containment is often to raise the price on the highest-traffic products by hand while you sort out the rest. Containment first, tidiness second.
2. Do not uninstall the app
If a sale app made the changes, leave it installed. Uninstalling revokes its Shopify API access, and after that no app can put the prices back for you. Recover first; decide about the app afterwards.
3. Work out what actually changed
- Which collections or tags were in scope.
- Whether compare-at prices were also modified.
- Whether the job finished, or stopped partway through a batch.
- Whether anyone edited prices manually after the sale started.
4. Find an authoritative copy of the original prices
In order of reliability: a snapshot taken before the sale, the app's own backup, an older Shopify product export, a supplier price sheet. Do not reverse-calculate the original from the sale price — if discounts varied by collection or variant, a flat reversal produces wrong numbers.
5. Restore in batches and verify as you go
Fix a small representative set first, check the product page, collection page and cart, then continue in batches. Keep every import file. If you have to explain this later, those files are the record.
Why it did not end on its own
| Cause | What it looks like | Prevention |
|---|---|---|
| Prices were edited directly | Nothing was ever scheduled to undo them | Use a tool that stores and restores originals |
| End time in the wrong timezone | Sale ends hours late or not that day | Always set start and end in the store timezone |
| Scheduled job did not run | Start applied, end never did | Check the tool reports a completed restore run |
| App removed mid-sale | Access revoked before the end time | Never uninstall while a sale is live |
SaleGuard restores from a snapshot taken before the first change, at an end time set in your store timezone, and keeps a rollback available while the sale is still running.
Keep the evidence
Before you repair anything, export the current state. It is the only record of what the catalog looked like when you found it.