Shopify can schedule a discount. It cannot schedule a price. That one distinction is the whole problem, and it is why so many stores end up with someone setting an alarm for midnight.
Discount codes and automatic discounts both take start and end dates, and they genuinely switch themselves off. But in most themes they apply in the cart and at checkout, not on the product page. The product still shows its full price, with no strikethrough and no sale badge, because nothing about the product has changed.
A visible sale price means changing the product price itself and setting compare-at price to the old one. And Shopify has no way to schedule that.
Right when a checkout discount is enough — a site-wide percentage off, a spend threshold, a bundle.
Set compare-at price to the current price, lower the price, then reverse both when the sale ends.
This works for a handful of products. It does not work for a catalogue.
Flow can run work on a schedule, so in principle a timed price change is the kind of thing it is for. Two caveats before you plan around it: there is no native “price changed” trigger, so a price sale built on Flow means fetching products on a timer and setting values; and which triggers and actions you actually have depends on your plan. Worth opening Flow in your own admin and checking what is available to you before committing to it.
Flow also does not solve the part that matters most. It can set a price. It does not record what the price was first, and it does not read the value back afterwards to confirm it landed.
This is what the category exists for. An app can record every original price, apply the sale at the start time, and restore each price at the end time with nobody watching.
They are not all the same, and two questions separate the ones that can be undone cleanly from the ones that cannot:
Shopify can schedule a discount, not a price. Discount codes and automatic discounts take start and end dates and switch themselves off, but in most themes they apply only in the cart and at checkout, so the product page still shows the full price. A visible sale price means changing the product price itself, which Shopify cannot schedule.
Because nothing about the product has changed. The discount is applied to the cart, not to the product record, so there is no lower price and no strikethrough for a browsing shopper to see. It converts people who were already buying rather than catching people who needed a reason.
Flow can run work on a schedule, but there is no native price-changed trigger, so a price sale built on Flow means fetching products on a timer and setting values, and which triggers and actions you have depends on your plan. It also does not record what the price was beforehand or read the value back afterwards to confirm it landed.
Export the affected products to CSV first, because Shopify keeps no price history and that export is your only guaranteed way back. Set compare-at price as well as the lower price, or shoppers cannot see it is a sale. Then check a real storefront product page after the sale starts, and again after it ends.
Two things. Whether it saves the original values before it changes anything, rather than inferring them from compare-at price, which comes back wrong on any product that already had one. And whether it reads each price back after writing it, because Shopify's API can accept a write without applying it, and an app that counts the write as done reports a sale that did not fully happen.
The end. Starting a sale is deliberate and gets checked; ending it is unattended. A sale price left running past its end date is an unbudgeted discount, and without a record of the original prices there is no reliable way to put them back.
Instilus apps · Built by Instilus, a trading name of A Star Supply.