Shopify sale with no end date: what actually happens
Leaving the Ends field empty on a Shopify sale: how an open-ended price rewrite differs from an open-ended automatic discount, and how to close it later.
By Beacon Wave Studio · · 6 min read
The sale editor has two date fields, Starts and Ends, and both are optional. Leaving Starts empty is well understood: the sale starts as soon as you confirm. Leaving Ends empty is less understood, and it behaves differently depending on which mechanism the sale uses. This post is the long version of the small orange warning that appears under the Ends field.
Short version: SafeSale lets you create a sale with no end in both of its modes, but an open-ended automatic discount is harmless and an open-ended price rewrite is a commitment. The rest explains why, what the app does and does not schedule, and how to close one down cleanly later.
What the editor does when Ends is empty
Validation checks the obvious things: a name, at least one target, a discount rule that makes sense, and an end that comes after the start when both are given. An empty end passes all of that. What changes is the text around it.
- In automatic discount mode, nothing. The field stays empty and the confirmation sentence simply omits the part about ending.
- In price-rewrite mode, a warning appears under the field: Price-rewrite sales without an end date stay live until you end them manually. The confirmation sentence reads "Confirming locks these N variants to this sale and starts it now." with no "ends automatically on" clause.
Once confirmed, the sale page shows the Ends line as Manual. That one word is the whole contract: the app will not end this sale on its own.
Why the two mechanisms are treated differently
An automatic discount is a Shopify object that lives alongside your prices. Your product prices are untouched; Shopify applies the reduction in the cart and at checkout for as long as the discount exists. Shopify itself allows automatic discounts without an end date, and plenty of stores run a permanent "buy two, save 10%" this way. If you forget about it, the cost is a discount you meant to retire. Nothing has to be restored.
A price rewrite is different in kind. SafeSale writes the sale price into each variant and moves the original into compare-at, after snapshotting the originals. The storefront shows a struck-through price, which is why merchants pick this mode, but the catalog now physically contains sale prices. The way back is the snapshot, and the snapshot is only applied when the sale ends. No end date means the catalog stays rewritten until somebody decides otherwise. That is not a bug, and some stores want exactly this for a clearance rail that runs until stock is gone, but it deserves a warning.
What gets scheduled, and what does not
When you confirm a sale with a start time, the app queues a start job for that time. When the sale also has an end time, it queues an end job for that time in the same step. With no end time, only the start job exists. There is no placeholder end job waiting for a date; the scheduler, which looks for due work every 30 seconds, will simply never find anything to end for this sale.
One consequence is reassuring: an open-ended sale cannot end by accident. Clock changes, a daylight saving shift or a server restart cannot make it close early, because there is nothing to run. Another consequence is the one to remember: pressing End is the only exit, and it is a human action.
The hidden cost: a plan slot
Plans limit how many sales can be live or scheduled at once, three on Starter and unlimited on Pro. The count includes every sale that is scheduled, applying, active or ending, and an open-ended sale is active from the moment it starts until the moment you end it. Create a clearance sale with no end in March and by November it is still one of your three, and the editor will refuse a fourth with the message The Starter plan allows 3 live or scheduled sales at a time. End one or upgrade to Pro. The post on that limit goes into which statuses count; the point here is that "no end date" also means "no end to the slot being used".
Variant locks work the same way. A variant in an active sale cannot be added to another one, so a forgotten open-ended sale on your best sellers quietly blocks every future promotion on them until it is ended.
Ending one later
Open the sale and press End sale now & restore prices. The app sets the end to the current moment, moves the sale to Ending, and queues an end job to run immediately. For a price rewrite that job restores every variant from the snapshot; for an automatic discount it removes the discount. A line is written to the change log that reads "Restore original prices requested", so the audit trail records who closed the sale and when. The guide to the Cancel, End and Retry buttons covers the edge cases, including what happens if the restore hits an error half way.
What you cannot do is add an end date to a running sale. Only drafts are editable; once a sale is confirmed, its targets, rule and times are fixed. If an open-ended sale should now finish on a date, end it, then create a new sale with the same targets and an Ends value. Because the first sale restored the originals before the second one snapshots them, the second snapshot is clean, and the sale price is still computed from original prices rather than from already discounted ones.
When no end date is the right choice
- Clearance until sold out. A price rewrite with no end on end-of-line stock. You want the struck-through price, and the sale finishes when the last unit does. Put a reminder in your calendar anyway so the slot is freed.
- A standing offer. An automatic discount with no end, such as a permanent multi-buy. Harmless to forget, cheap to end, and it costs you nothing in catalog hygiene.
- Not sure when it ends yet. Prefer a generous fixed end over none at all. A sale that ends a week late is a small problem; a sale that is still running at the next stocktake, with compare-at prices showing on products that were never meant to be on sale that long, is a bigger one. You can always end early.
If you ever find rewritten prices with no sale to end them, for example after reinstalling, the post on stuck sale prices explains the restore-all path. For everything else, the rule is the one in the warning: a price-rewrite sale with no end date stays live until you end it. SafeSale will keep the originals safe for as long as that takes.
Frequently asked questions
Can I leave the end date empty on a SafeSale sale?
Yes, in both mechanisms. An automatic discount with no end date is accepted without comment because nothing in your catalog is rewritten. A price-rewrite sale with no end date is accepted too, but the editor shows a warning that it stays live until you end it manually, and the sale page lists its end as Manual.
Does an open-ended sale count against my plan limit?
Yes. The limit counts sales that are scheduled, applying, active or ending, and an open-ended sale is active until you end it. On Starter that is one of three slots occupied indefinitely, which is the most common reason a merchant comes back to end one.
I confirmed an open-ended sale. Can I add an end date now?
No. Only drafts can be edited, and a confirmed sale is no longer a draft. End the sale, which restores the original prices or removes the discount, then duplicate it as a new sale with an end date. The snapshot and the change log of the first sale stay in place.
What ends an open-ended price-rewrite sale if I forget about it?
Nothing automatic. SafeSale queues an end job only when a sale has an end time, so an open-ended sale has none. It keeps the snapshot of original prices, so pressing End at any point restores them exactly, but the pressing is yours to do.