End a Shopify Sale and Clean Up Tags Automatically
The sale is over, but the products are still tagged "on-sale." Customers see stale sale pricing. Your sale collection is full of things that aren't on sale. This is how you stop that from happening.
The cleanup problem nobody talks about
Starting a sale manually is annoying but manageable. Ending it cleanly is where most merchants fall down. The products stay tagged, the sale collection keeps showing, and someone eventually notices a week later and goes through the bulk editor. DateCue handles the end of the sale just as cleanly as the start.
If you haven't set up the sale start workflow yet, read Start a Shopify Sale Automatically With a Tag first — this guide covers the ending side of the same system.
Step 1: Create the sale end metafield
Go to Settings → Custom data → Products and create:
- Namespace and key:
custom.sale_end - Type: Date and time or Date
Set this on every product included in the promotion. It can be the same end date across all products or different per product if you're running staggered promotions.
Step 2: The DateCue workflow
Timing: On the date
Action: Remove tag → on-sale
When the end date arrives, DateCue removes the "on-sale" tag from every product with that date. The smart collection drops them automatically. The sale is over — cleanly, on time, without you touching anything.
The complete sale system: two metafields, two workflows
Run both workflows together and your entire promotion lifecycle is automated:
custom.sale_start→ Add tag "on-sale" on start datecustom.sale_end→ Remove tag "on-sale" on end date
Set both metafields on your products before the promotion begins and DateCue handles both ends. You don't need to be in Shopify when the sale starts or when it ends.
Using a single offset instead of two metafields
If your sale always runs for a fixed duration (say, 7 days), you can run everything off the custom.sale_start metafield alone:
- Workflow 1: On the date → Add tag "on-sale"
- Workflow 2: 7 days after the date → Remove tag "on-sale"
This is simpler to manage if your sale length is consistent. If it varies per promotion, the two-metafield approach gives you more control.
💡 What about compare-at pricing? DateCue manages tags and product status — it doesn't change prices. Your compare-at price (the "was" price) needs to be set and cleared manually in Shopify, or through a Shopify Script or discount. DateCue's tag removal takes care of the collection and any theme sale badges driven by tags.
Frequently asked questions
What if I want to end the sale early?
Change the custom.sale_end date on the relevant products to today's date (or a past date). DateCue will remove the tag on its next check. Alternatively, remove the metafield value entirely — DateCue will stop watching those products and the tag stays until you remove it manually or set a new end date.
Can I extend the sale without changing every product?
Yes — use Shopify's bulk editor to update custom.sale_end on all sale products at once. Filter by tag "on-sale" to find them, then bulk update the metafield to the new end date. DateCue will honour the new date.
Will this work if I use a different tag name?
Yes — use whatever tag name your store or theme expects. Just make sure the tag name in the DateCue remove workflow matches the tag name in the add workflow exactly, and matches the rule in your smart collection.
How precise is the timing?
DateCue checks every minute. If your sale end metafield is a Date (not Date and time), the workflow fires within the first minute after midnight on the end date in your Shopify store's timezone.
Ready to run cleaner promotions?
Set dates, configure once, let DateCue handle the rest.
Start your free trial14-day free trial. No credit card required.