Skip to content
Scheduling, restoring and repeating sales

How to schedule a sale on Shopify

Shopify applies a product price the moment you save it, so a scheduled sale needs a tool with dates: discount active dates, a Markets rollout, Launchpad on Shopify Plus, a Shopify Flow workflow, or a sale scheduling app that changes prices at the start and restores them at the end.

Key takeaways

  • A price you save in Shopify's product editor or bulk editor takes effect right away; the price field itself has no start or end date.
  • Discount codes and automatic discounts have built-in active dates, which makes them the simplest native way to time a promotion, but shoppers see them in the cart and at checkout.
  • Markets rollouts (Basic plan or higher) can activate a catalog or discounts for a set period and then roll them back; Launchpad can change product pricing at the start and end of an event, but only on Shopify Plus.
  • Shopify Flow can run at a scheduled time, but it has no dedicated price action, so you build the price change, the revert and the record of old prices yourself.
  • Sale Scheduler by SalePilot schedules a sale price's start and end and restores the saved previous prices automatically, within about one minute of the times you set.

Can you schedule a sale on Shopify without an app?

Partly. Shopify lets you schedule discounts, and it gives some plans tools to schedule catalogs and events, but the price on a product has no date attached. When you edit prices in the product editor or the bulk editor, the change is final when you click Save. If you want a lower price to appear on Friday at 6 p.m. and disappear on Sunday night, something has to make both changes at those times.

That something can be Shopify itself, if your sale fits one of its scheduling tools. It can be a person with an alarm, or it can be an app. The right choice comes down to one question: should shoppers see the reduced price on the product page with the old price crossed out, or is it enough for the discount to apply in the cart and at checkout?

Which ways to schedule a sale does Shopify offer?

Here is how the native options compare with doing it by hand and with an app. "Ends on its own" means nobody has to undo the change manually when the sale is over.

MethodWhat it changesWhere shoppers see itEnds on its ownAvailability
Discount with active datesApplies a code or automatic discount between a start and an end dateCart and checkoutYes, at the end dateDiscounts page in the Shopify admin
Markets rollout (Event)Sets a market catalog to Active or Draft, or activates discounts, for a set periodCatalog prices show in the markets the catalog is assigned toYes, the Event rolls back when it endsBasic plan or higher
Launchpad eventProduct pricing at the start and end of an event, plus publishing, inventory and theme changesWherever your theme shows pricesYes, pricing changes at the start and endShopify Plus only
Shopify Flow workflowWhatever Admin API mutation you configureDepends on what the workflow changesOnly if you build a second workflow to revertBasic, Grow, Advanced and Plus plans
Manual editProduct price and compare-at priceWherever your theme shows pricesNo, someone changes it backAny store
Sale scheduling app, such as Sale Scheduler by SalePilotProduct price and compare-at priceWherever your theme shows pricesYes, saved previous prices are restoredShopify App Store

How do you schedule a discount with start and end dates?

If a discount at checkout is enough, Shopify's own discounts are the quickest route. Every amount off discount has an Active dates section with a start date and an optional end date, and the start and end follow the time zone set in your Shopify admin (amount off discounts).

The trade-off is visibility. Shopify applies automatic discounts in the cart and at checkout, and shoppers type codes at checkout, so product pages keep showing the regular price unless your theme or an app adds a message. If you want the crossed-out price on the product page, you need a sale price instead. We compare the two in sale prices vs discount codes.

  1. From your Shopify admin, go to Discounts and click Create discount.
  2. Choose Amount off products, then choose whether it is a discount code or an automatic discount.
  3. Enter the value as a percentage or a fixed amount, and under Applies to pick the collections or products in the sale.
  4. Set Combinations on purpose, so the sale doesn't stack with codes you didn't plan for.
  5. In Active dates, set the start date and time, click Set end date, and set when it ends.
  6. Save, then test the discount in a cart once it becomes active.

How do rollouts, Launchpad and Flow schedule price changes?

Rollouts. In Markets, a rollout schedules changes to your theme, checkout, discounts or catalogs. An Event rollout publishes its changes for a set period and rolls them back when it ends. For prices, a rollout changes a catalog's status only: setting a catalog to Active publishes its prices, while edits to the catalog's prices are saved right away, so you prepare the catalog in Draft first. A catalog's prices apply to the markets it is assigned to, and your store's default prices stay as they are. Shopify lists rollouts as available on the Basic plan or higher (rollout requirements).

Launchpad. Shopify's Launchpad app can change product pricing at the start and end of an event, make products available on sales channels, raise inventory and schedule theme changes. It is available only to stores on the Shopify Plus plan (Launchpad).

Shopify Flow. Flow's Scheduled time trigger starts a workflow at a set date and time, once or on a repeating schedule (Scheduled time trigger). Flow has no dedicated action for changing a variant's price, so the change has to go through the Send Admin API request action. That means you write the price logic, a second workflow to put prices back, and a way to remember what the old prices were.

How do you schedule a sale price that restores itself?

If you want the reduced price and the crossed-out compare-at price on product pages, without Shopify Plus or a custom workflow, a sale scheduling app handles both ends of the job. Here is the process in Sale Scheduler by SalePilot, which changes product prices and compare-at prices (it does not create discount codes):

  1. Create a sale and choose how prices change, for example Decrease price by 20%, with the compare-at action Set compare-at to original price so the old price shows crossed out.
  2. Pick the products: all products, collections, products, specific variants, or one advanced condition such as a product tag, plus one type of exclusion if you need it.
  3. Check the preview. Every variant shows its price before and after, with a status of Ready, Warning or Skipped. No Shopify prices change at this step.
  4. Choose Schedule start and end. Set the start date and time, then set the end either as a date and time or as a duration.
  5. Confirm. At the start time the new prices go live, and at the end time the app restores the previous prices it saved, both within about one minute of the times you set.

A scheduled sale can't be edited before it starts. To change the prices, products or dates, delete it (that changes no prices) and create a new one. New prices are calculated when you review the sale, so do the same if you change regular prices on those products before the start.

What should you check before a scheduled sale goes live?

Most scheduled sales that go wrong fail on details, not on the scheduling tool. Run through this list a day before the start:

  • Time zone. Shopify discounts and rollouts use the time zone from your Shopify admin settings. Sale Scheduler's one-time sales are entered in your browser's local time, and its recurring sales follow the shop's time zone. If your team works across time zones, write the deadline in the store's time zone everywhere.
  • Compare-at price. Shopify only shows a sale when the compare-at price is higher than the price. Check a few variants, including ones that had no compare-at price before.
  • Stacking. If discount codes can apply to sale items, a 20% sale plus a 10% code is 28% off, not 30%. Decide whether that's acceptable before the email goes out. The discount calculator does the math.
  • Other price edits. Agree that nobody edits prices on sale products while the sale runs, and know what your tool does at the end if someone does.
  • Ads and emails. Make sure every message uses the same end date and time as the schedule.
  • Plan limits. Sale Scheduler checks your monthly allowance at the start time. If the sale would go over it, the sale is marked as failed and no prices change.
  • A test run. Schedule a short sale on one product first and watch it start and end.

Schedule the start a few minutes before your email or ad goes out. Scheduled tools work on a cycle: Sale Scheduler checks every minute, and large sales take longer because variants are updated one after another. A small buffer means nobody clicks through to full prices.

What happens when a scheduled sale ends?

It depends on the method, and this is where the options differ most. A discount simply stops applying after its end date. An Event rollout rolls back, and the places it affected return to the catalogs' current prices. A Flow workflow does only what you built it to do. A manual sale ends when someone remembers to end it.

Sale Scheduler saves each variant's previous price and compare-at price before the sale changes anything, and at the end it restores them automatically. Before it writes a variant back, it reads the live price. If someone changed that price elsewhere during the sale, the variant is skipped and labeled "Skipped because price changed", so the newer price is not overwritten. You can also click Restore prices at any time to end a sale early. Restoring is never blocked by your plan or usage, and it doesn't count toward usage. Our guide to undoing bulk price changes explains why that check matters.

Worked example: a weekend sale set up on Wednesday

Say you sell outerwear and want 25% off the Jackets collection from Friday at 6 p.m. to Sunday at 11:59 p.m. An $80 jacket becomes $60, because sale price = original price × (1 − discount %) = $80 × 0.75. For the saving to show on the product page, its compare-at price should be $80. Here's how each approach handles it:

  • Saving at checkout is enough: create an automatic Amount off products discount of 25% on the Jackets collection, with active dates from Friday 6 p.m. to Sunday 11:59 p.m. It's fully native and ends on its own.
  • Crossed-out price on the product page: schedule a sale price instead. Decrease prices by 25%, set compare-at to the original price, choose Schedule start and end, and let the end restore the previous prices.
  • The same sale every weekend: use a repeating schedule rather than rebuilding it each week. See our guide to recurring sales.
  • Either way: put the same end time in your banner, emails and ads, and check one jacket on the storefront at 6:05 p.m. on Friday.

Frequently asked questions

Can Shopify schedule a price change without an app?

Not on a product's own price: edits in the product editor and bulk editor apply when you save. You can schedule discounts with active dates, use a Markets rollout to activate a catalog for a set period (Basic plan or higher), use Launchpad on Shopify Plus, or build a Shopify Flow workflow.

Will my sale start at exactly the time I set?

Close to it, not to the second. Sale Scheduler by SalePilot processes scheduled sales every minute, so a sale starts and ends within about one minute of the set time, and large sales take longer because variants are updated in sequence.

Which time zone does a scheduled sale use?

Shopify discounts and rollouts use the time zone set in your Shopify admin. In Sale Scheduler, one-time sales use your browser's local time when you enter them, and recurring sales use the shop's time zone.

Can I change a scheduled sale before it starts?

In Sale Scheduler, a scheduled sale can't be edited or started early, but you can delete it before it starts without changing any prices, then create a new one. Shopify discounts can be edited from the Discounts page.

Can I end a scheduled sale early?

Yes. In Sale Scheduler, click Restore prices on the sale to put the previous prices back right away; the scheduled restore then doesn't run again. In Shopify, you can deactivate a discount or manually end an active rollout.

Run your next sale without the spreadsheet

Install Sale Scheduler from the Shopify App Store, build a sale, and review every price before it goes live. The free allowance lets you try it on a few variants first.

Chat with us on WhatsAppQuestions before or after you install