You want a sale to start at a set time, end at a set time, and not need you awake or logged in for either. Shopify can do part of that on its own. The rest depends on what you mean by "sale", so this guide separates the options and says plainly what each one does and does not do.

First: is your sale a discount, or a price change?

On Shopify a "sale" is one of two different things, and they behave differently when the end time arrives.

  • A discount. The product's price stays as it is. The reduction is applied when a customer checks out. When the discount's end time passes, it simply stops applying. There is nothing to put back.
  • A price change. You (or an app) change the product's Price and usually its Compare-at price, so the storefront shows a strikethrough. Someone has to change them back afterwards, and Shopify does not do that for you.

Option 1: a scheduled automatic discount (built in, free)

Shopify's own discounts let you choose a start date and an end date. In your Shopify admin:

  1. Open Discounts and create a new discount (for example Amount off products).
  2. Under Method, choose Automatic.
  3. Under Active dates, set the start date, then click Set end date and set when it ends.

Shopify's help centre says that if you set a start and end time, the time follows the time zone selected in your Shopify admin, and that a discount with no end date does not expire. So always set the end date. Source: Shopify Help Center: Automatic discounts.

Trade-off: this is a discount, not a price change. The product price in your admin and your product feeds does not change, and how a discounted price shows on collection pages and product pages depends on your theme. A Shopify Community post on scheduling BFCM price changes makes the same point: a scheduled native discount "doesn't alter product prices themselves", so there is nothing to put back when it ends, but strikethrough display depends on the theme (Shopify Community, 20 September 2026).

Option 2: change the prices, then put them back

If you want the sale price to be the actual price, with the original in the compare-at field, the price has to be changed and later restored. As far as we can find, Shopify has no built-in way to schedule a base-price change and undo it automatically. The routes merchants use:

  • Bulk edit or CSV export and re-import. Free, but you run both the start and the end by hand, at the right minute.
  • Shopify Flow. A scheduled workflow can update prices, but per the same Community post you need a second workflow to revert and somewhere to store the original prices, because Flow does not remember them.
  • Shopify Launchpad. Schedules product visibility, themes, discounts and more, but its App Store listing says it is only available to Shopify Plus customers.
  • Mechanic or a sale-scheduler app. These record the original prices and restore them at the end. See the comparison of sale-scheduler options.

Option 3: schedule it in SalePilot

SalePilot is the app this site is about. It changes prices at the start time and puts them back at the end time, on its own servers, whether or not you are logged in. The steps:

  1. Create a sale event. Give it a name, a start date and time, an end date and time, and a time zone (it defaults to your store's). The defaults are a 7-day sale from 09:00 to 23:59. See Create your first sale event.
  2. Add a discount rule. Percentage off a collection, specific products or specific variants. See Add discounts to a sale.
  3. Preview. "See the price changes first" lists each variant with its was and now price, without changing anything.
  4. Click "Schedule this sale". Saving alone does not start anything; the sale starts only once it is scheduled. See Go live: apply now or schedule.

What happens next, in the app's own words and behaviour: the sale applies itself at the start time (usually within about a minute), sets the sale price and moves your original price into the compare-at field so themes show a strikethrough, and at the end time restores the original price and your original compare-at price. If you edited a price by hand mid-sale, the revert leaves your edit alone and reports it. See What happens when a sale ends and Panic revert if you need to stop a sale early.

Which one should you use?

You wantUse
A checkout discount that stops by itself, no appAutomatic discount with an end date
Sale prices and a strikethrough that go back on their ownA scheduler app, Mechanic, or SalePilot
A one-off sale on a few products, and you will be there at the endBulk edit by hand

Before you schedule anything

  • Check the time zone on the discount or sale event. It should be the clock you mean.
  • Test on one product first and look at it on the storefront, with your theme, before running it on a whole collection.
  • Export your products as a backup before a bulk price change, whichever tool you use.

Common questions

Can Shopify schedule a sale natively?

Shopify can schedule a discount natively: an automatic discount takes a start date and an end date and stops applying when the end date passes. It does not schedule a change to a product's base price with an automatic revert, as far as we can find.

Does a scheduled Shopify discount change my product prices?

No. A discount applies at checkout and leaves the product's Price field alone, so there is nothing to put back when it ends. How the discounted price displays on the storefront depends on your theme.

What does SalePilot cost?

SalePilot has a Free plan that allows 1 applied sale event per calendar month, and SalePilot Pro at $9.99 a month with unlimited applied sale events and a 7-day free trial. Every discount type, the revert report and Panic revert work on both plans. See Free vs Pro.

What if I forget to end a SalePilot sale?

You do not need to remember. Every sale event has an end time, and the revert runs on the server at that time whether or not you are logged in. To end one sooner, use Panic revert on the sale event.

Get SalePilot on the Shopify App Store