Auto-Draft Shopify Products That Are Past Their Sell-By Date
Most stores have active products that have quietly outlived their intended run — limited edition items, event-specific merchandise, seasonal goods, promotional bundles. They stay live because nobody explicitly went back and removed them. Here's how to build that cleanup into the product record from the start.
The catalogue hygiene problem
A bloated active catalogue harms the store in several ways: customers find irrelevant products in search results, collections get cluttered, and you end up with out-of-stock "ghost" products that still show up in navigation. The fix is to give every time-limited product an end date when you create it, and let DateCue enforce it.
Step 1: Create the sell-by metafield
Go to Settings → Custom data → Products and create:
- Namespace and key:
custom.sell_by_date - Type: Date
Make it a habit to set this on every time-limited product at creation time. Products without the metafield are ignored by the workflow entirely.
Step 2: The DateCue workflow
Timing: On the date
Action: Set status → Draft
When the sell-by date arrives, DateCue moves the product to Draft. It disappears from collections, search, and the storefront. Your catalogue stays current without anyone manually reviewing it.
Draft vs archive — which to use
Use Draft for products you might reactivate. Draft keeps the product accessible in admin but removes it from the storefront. Good for limited-run items you'll restock, promotional bundles you'll run again, or seasonal products you'll reactivate next year.
Use Archived for products that won't come back. Archived products are retained for reporting and order history but are fully retired from the catalogue. Use this for one-time event merchandise, expired promotions, or discontinued lines. See Archive Shopify Products Automatically on Their End Date for the archiving workflow.
Getting alerted before the draft happens
Add a pre-draft alert by creating a second workflow with an offset — for example, 3 days before the sell-by date — that sends an email to your team. You get a warning before products disappear, giving you time to extend the date or restock if needed.
Timing: 3 days before the date
Action: Send email → team@yourstore.com
💡 Retroactive cleanup: Have a catalogue full of products that should have been removed already? Set custom.sell_by_date to yesterday (or any past date) on those products and DateCue will draft them on its next check cycle — within a minute. Use Shopify's bulk editor to set the metafield on multiple products at once rather than doing them one by one.
Frequently asked questions
What if the product is still selling well when the sell-by date arrives?
Update the custom.sell_by_date to a later date. DateCue will honour the new date and not draft the product until then. The workflow triggers on whatever value is currently in the metafield — changing it adjusts when it fires.
Can I set sell-by dates on products in bulk?
Yes — use Shopify's bulk editor. Filter your products by collection, vendor, or tag, select the ones you want to set, open the bulk editor, and update custom.sell_by_date across all of them at once. For example, tag all limited-run items with "limited" and bulk-update just those.
Will drafting a product cancel existing orders?
No — drafting changes future visibility only. All existing orders for the product remain intact and will be fulfilled normally. Drafting simply prevents new orders from being placed.
How is this different from the auto-hide expiry workflow?
The auto-hide expiry workflow is designed for products with a hard expiry (like perishable goods or time-bound licences) where you want to remove the product because it's no longer valid. This workflow is about catalogue hygiene — removing products that have run their course commercially, regardless of whether the product itself has expired. The mechanics are identical; the use case and intent differ.
Ready to build a self-cleaning catalogue?
Set a sell-by date when you create a product. DateCue handles the rest.
Start your free trial14-day free trial. No credit card required.