/blog/how-to-schedule-a-sale-in-shopify-and-restore-prices-afterwards
Sales

How to schedule a sale in Shopify and restore prices afterwards

Learn how to schedule a Shopify sale, update product prices safely and restore original prices when the promotion ends — native options and apps.

Aperitive Apps·7 min · 4 November 2026
Editorial hero for: How to schedule a sale in Shopify and restore prices afterwards

TL;DR: You can schedule many Shopify promotions with native automatic discounts (start and end times). That is different from changing the product price itself. If you need product prices to drop and then restore automatically, use a bulk price editor with scheduling and rollback such as Bulk Discounts Price Editor, and always test on a small set first.

Figure (DISCOUNTS-001-A1): Bulk Discounts Price Editor schedule showing start time, end time and price rollback settings

Figure (DISCOUNTS-001-A2): Table of product prices before a sale, during a 20 percent discount and after restore

Steps at a glance

  1. Decide: automatic discount vs product price change.
  2. Snapshot current prices (export or app history).
  3. Target the right products (collection, vendor, tags or variants).
  4. Set the discount or price rule (percentage, fixed, compare-at if needed).
  5. Set start and end times, or an explicit restore/rollback.
  6. Apply rounding rules (for example .99 endings) if you use them.
  7. Test on a small collection before the full catalogue.
  8. Run the sale and spot-check the storefront.
  9. After the end time, confirm prices restored and that discount codes are not double-stacking unintentionally.

Quick answer

Native Shopify discounts are excellent for codes and many automatic offers with schedules. They do not replace every “change the catalogue price for a weekend, then put it back” workflow. Bulk Discounts Price Editor is built for bulk price updates, scheduled sales and rollback history according to its App Store listing. Re-check plan limits (scheduling and history often sit on higher plans) on publish day. Do not trust outdated website prices.

Sale prices vs Shopify automatic discounts

Mechanism What changes Ends how? Typical use
Automatic discount / discount code Checkout or cart price rules Discount schedule or code validity Campaigns without rewriting catalogue prices
Product price / compare-at edit The product’s price fields Manual undo or app rollback/schedule Storewide look of “was/now”, feeds, some themes

Mixing both without a plan causes double discounts. If catalogue prices are already reduced, a 20% code may cut further than you intended.

Related reading when live: Shopify automatic discounts vs sale prices (DISCOUNTS-006). Existing walkthrough: How to bulk edit prices in Shopify.

What you need before starting

  • A written rule: which products, what %, start/end timezone
  • A small test collection with 5–20 representative variants (cheap SKUs, sale-badge themes, multi-variant products)
  • Policy for compare-at prices (legal display rules vary by market; check your counsel/region)
  • Confirmation whether discount codes will remain active during the sale
  • Access to Bulk Discounts Price Editor if using the app route, with scheduling available on your plan Scheduling and price history/rollback sit on paid Pro plans in the App Store snapshot of 3 Nov 2026 — confirm on your Shopify plan before you rely on them
  • Someone on call at start and end windows who can spot-check admin prices and a live product page

Option 1: Using Shopify’s native features

  1. In admin, open Discounts.
  2. Create an automatic discount or discount code.
  3. Set value, product/collection eligibility and combination rules.
  4. Set start and end dates/times in the store timezone shown in admin.
  5. Save and test at checkout with a sample order (or draft order where appropriate).

Strengths: First-party, no catalogue rewrite, clear end date for the offer. Limits: Does not always produce the same “sale price on the product card” behaviour as editing price/compare-at. Theme and channel behaviour differ. Restoring product prices is not the same as ending a discount.

If you only need a temporary cart/checkout reduction and your theme’s sale presentation is driven by discounts rather than compare-at, stay on this route. If product cards, Google shopping feeds or wholesale B2B channels read the product Price field, plan a catalogue edit instead (or in addition, with stacking rules written down).

Official Shopify documentation on discounts should be linked at publish time after confirming the current help article URL See Shopify Help: Discounts (https://help.shopify.com/en/manual/discounts).

Option 2: Scheduling a price update with Bulk Discounts Price Editor

Bulk Discounts Price Editor (canonical name; formerly referred to on some pages as “Bulk Discounts Sale Prices APP” / “Price Edits”) supports bulk price changes, scheduling and rollback per its App Store description.

Setup pattern (confirm control names in your install):

  1. Install or open Bulk Discounts Price Editor.
  2. Create a new price update / sale task.
  3. Filter by collection, vendor, tag or selected products.
  4. Choose percentage or fixed change; configure compare-at if required.
  5. Set rounding if you need .99 endings.
  6. Set schedule start and end with automatic restore/rollback.
  7. Preview or run on the test collection first.
  8. Run for the full target set.
  9. After the window, confirm history/rollback state.

Image (required): shopify-scheduled-sale-automatic-price-rollback.webp (real app screenshot, not a mock).

Pricing on aperitive.io has drifted from the App Store in the past. For any price mention in this article, use a dated App Store snapshot only.

Worked example: weekend 20% sale

Currency example in GBP for three variants:

SKU Original price Sale (−20%, round to .99) After restore
CHAIR-BLU £100.00 £79.99 £100.00
LAMP-WHT £45.00 £35.99 £45.00
RUG-GRY £220.00 £175.99 £220.00

Test Friday 09:00 → Monday 09:00 in your store timezone. Before go-live, place test orders or use draft orders if appropriate, and confirm theme badges still make sense with your compare-at settings.

If compare-at should show the pre-sale figure while Price is reduced, set that explicitly in the task and include compare-at in your post-restore checklist. Leaving compare-at at the sale price after restore is a common merchandising mistake and can look like a permanent markdown to shoppers and auditors.

Which method should you choose?

Goal Prefer
Coupon or automatic offer without rewriting prices Native discounts
Catalogue “was/now” prices for a timed window Bulk price editor with schedule + restore
One-off permanent repricing Bulk percentage update (see DISCOUNTS-003)
Complex stacking with Markets Test both routes; document Markets behaviour

Common mistakes and troubleshooting

Symptom Likely cause What to do
Sale still showing after end time Discount not expired, or product prices never restored Check Discounts end time and app task history/timezone
Deeper cut than planned Sale price plus active code Pause overlapping codes; retest checkout math
Only some variants changed Filter missed size/colour variants Re-run filter on the parent product set; verify variant count
Compare-at wrong after restore Compare-at not included in rollback Restore compare-at from snapshot/history
Feed still shows old price Channel sync lag Force a catalogue sync after price changes in that sales channel’s sync settings

Other pitfalls:

  • Forgot timezone. BFCM mistakes often start here. Write times as “store timezone” in the campaign brief.
  • No test batch. Always run a tiny collection first.
  • Assuming native discounts rewrite product prices. They usually do not.

Frequently asked questions

Can Shopify automatically restore product prices after a sale?

Ending a native discount ends the discount. Restoring product price fields needs a manual revert, a new import, or an app with rollback/scheduling. Do not assume discounts and price fields are the same system.

Should I use automatic discounts or change product prices?

Use discounts when the offer lives at cart/checkout. Change product prices when you need catalogue prices and compare-at presentation to move for a period. Many stores use both in different campaigns, and rarely both on the same items at once without testing.

How do I avoid stacking a sale price with a discount code?

Map combination rules in Discounts, pause overlapping codes for the sale window, and test checkout math on sample SKUs before the sale starts. Document which staff can re-enable codes after restore.

Can I schedule compare-at prices as well?

Bulk Discounts Price Editor’s listing includes compare-at updates. Confirm the exact controls in your install before documenting clicks.

What if scheduled prices did not revert?

Check task history, timezone, filters (did the product leave the collection?), and plan features. Then restore from history/backup. Escalate with the task ID to app support if needed.

Do Markets or B2B catalogues need a separate schedule?

Often yes. If you sell in multiple markets or catalogues, confirm whether the price task applies storewide or per market/catalogue before you rely on a single schedule. A pilot SKU in each market is safer than assuming one restore covers all.

Next steps

Product overview: Bulk Discounts Price Editor landing (name/price on that page may still need syncing with the App Store). App Store: apps.shopify.com/easy-sale-price. Related live guide: bulk edit prices complete guide. Docs: knowledge base.

THE APP FOR THIS
Bulk Discounts Price Editor
Bulk price edits and scheduled sales, with one-click rollback

Shopify origin: https://www.aperitive.io/blogs/articles/how-to-schedule-a-sale-in-shopify-and-restore-prices-afterwards

Questions about this?