Launch pricing: Lock in Pro at $79/year before prices go up View pricing →
WooCommerce plugin

Expiration & Best Before Dates for WooCommerce

Track product expiration dates, best before dates, and shelf life. Auto-hide expired products, send notifications, and apply discounts automatically.

Limited time: Save up to $50/year with launch pricing
Free plan available
No coding required
14-day money-back guarantee
yourstore.com/wp-admin
Expiration & Best Before Dates for WooCommerce - Plugin Dashboard

Everything you need to manage product expiration

From basic date tracking to advanced batch management and automatic discounts. Start free, upgrade to Pro when you need more.

Expiration date tracking

Set expiration dates on any product or variation — in the product editor, or right from the product list with quick edit and bulk edit.

Automatic actions

Automatically hide expired products from your catalog or mark them out of stock. Set actions to trigger before expiration.

Cart & checkout protection

When an expiry action is enabled, expired items are blocked from being added to the cart and removed at checkout, so customers can never buy a product past its date.

Pro

Batch/lot tracking

Track inventory by batch or lot number with FEFO (First Expired, First Out) automatic stock management.

Dashboard

WordPress dashboard widget and Overview page with stats cards, filterable product list, and expiration calendar. Everything at a glance.

CSV import/export

Bulk manage expiration dates via a dedicated CSV import / export page. Download every product with its date and re-upload the edited file.

Pro

WooCommerce product import/export

Adds an Expiration date column to WooCommerce’s own Products → Export and Import, so dates travel with the rest of your catalog. One file for prices, stock and expiry — no separate CSV to keep in sync.

Frontend display

Show expiration dates on your product pages. Customizable labels like "Best Before", "Use By", or "Expires".

Variable products

Give each variation its own expiration date — ideal when sizes or colors carry different batch dates — or set a parent default that dateless variations inherit. The product is hidden or set out of stock only once every variation has expired.

Pro

Email notifications

Scheduled digest (daily, weekly, or monthly) of expiring products. Configurable threshold and multiple recipients. Send a test email to verify setup.

Pro

Automatic discounts

Apply tiered discounts as products approach expiration — 10% off at 14 days, 25% at 7, 50% at 3, fully customizable — with an optional “Expiring soon” badge on the discounted products to drive urgency.

Pro

Clearance category

Short-dated, discounted products gather themselves into a storefront category you can link from your menu — a deals page that keeps itself up to date and empties as stock sells or expires.

Pro

Waste, recovery & forecast reports

See the money: value written off vs. recovered through discounts, monthly trends, which categories lose the most, and what expires in the next 7, 30 and 60 days. Export to CSV.

Activity log

A dated record of every expiry action: what was hidden, set out of stock, discounted, written off or swapped, and who changed it. Exportable to CSV.

Pro

One-click date changes & write-offs

Select products on the Overview and extend their dates, set a new date, date them from shelf life, or write the remaining stock off — without opening a single product editor.

REST API & WP-CLI

Manage expiration dates from code: a WooCommerce-native REST API to sync with ERP, POS and warehouse systems, and `wp edfw` commands for scheduled jobs and bulk migrations.

Pro

Event webhooks

Get notified the moment a product expires, is written off, or is hidden. POST a JSON payload to any URL — Slack incoming webhooks, Zapier, Make, n8n, or your own endpoint.

Pro

Category rules & shelf life

Give a category a default shelf life and expiry rules, and restocked products get their date set automatically instead of one by one.

Simple setup, powerful automation

Get started in minutes. Set your preferences once and let the plugin manage your product expiration automatically.

1

Set expiration dates

Add expiration dates to your products directly in the WooCommerce product editor. Supports simple products, variations, and batch tracking.

2

Configure actions

Choose what happens when products expire: hide from catalog, mark out of stock, or both. Set actions to trigger days before expiration.

3

Let it run

The plugin handles the rest automatically. Expired products are managed, notifications sent, and discounts applied without any manual work.

Pro feature

Enterprise batch & lot tracking

Perfect for food, pharmaceuticals, cosmetics, and any products that require batch-level inventory management. Track multiple batches per product with different expiration dates.

  • FEFO stock management

    First Expired, First Out - automatically deduct stock from the batch closest to expiration.

  • Order integration

    See which batch was allocated to each order. Full traceability for compliance and recalls.

  • Batch quantity sync

    Automatic stock restoration on order cancellation. Batch quantities stay in sync with orders.

  • Batch history

    Every batch event — created, sold, adjusted, swapped, expired or deleted — is recorded per product in the activity log.

  • Batch swap on orders

    Replace a batch allocation on any order line item. Swap to a different batch without cancelling — stock adjusts automatically.

Get Pro

See it in action

A clean, modern interface that integrates seamlessly with WooCommerce.

Choose your plan

Start free with core tracking, dashboard, and CSV export. Upgrade to Pro for batch tracking, notifications, discounts, and more.

Free

Perfect for getting started

$0 /forever
No credit card required
Coming soon
  • Core expiration tracking
  • Per-variation expiration dates
  • Auto hide / out of stock / both
  • Cart & checkout protection
  • Quick & bulk editing
  • Dashboard, reports & calendar
  • CSV import/export (dedicated page)
  • REST API & WP-CLI
  • Community support
Most popular

Pro

1 site license

$99 $79 /year
Launch price · locked in for life
Buy now
  • Everything in free
  • Batch/lot tracking & FEFO
  • Automatic discounts
  • Per-category rules & shelf life
  • Automatic clearance category
  • Waste, recovery & forecast reports
  • One-click date changes & write-offs
  • Email notifications
  • Event webhooks
  • Expiry dates in WooCommerce import/export
  • Priority email support

Agency

Up to 10 sites

$249 $199 /year
Launch price · locked in for life
Buy now
  • Everything in Pro
  • Up to 10 sites
  • Need more? Get in touch

14-day money-back guarantee · Cancel anytime

Full feature comparison

Feature Free Pro Agency
Expiration date field on products
Per-variation expiration dates
One default date for all variations
Quick edit & bulk edit
Automatically hide, set out of stock, or both
Cart & checkout protection
Frontend date display
Product list expiration column (sortable)
Dashboard widget & Overview page
Expiration calendar
Search & sort the expiring report
Activity log (with CSV export)
CSV import/export (products)
Clear expiration dates in bulk
Move expired products to trash
REST API
WP-CLI commands
Batch/lot tracking & FEFO
Batch/lot shown on orders & emails
Batch history in the activity log
Change the batch on an existing order
Automatic discounts (tiered)
Expiring soon badges (with automatic discounts)
Automatic clearance category of discounted products
Per-category expiry rules
Dates set automatically on restock (from shelf life)
Waste & recovery reporting
Expiry forecast (7/30/60 days)
One-click date changes & write-offs
Email notifications (scheduled digest)
Event webhooks (Slack, Zapier, Make, any URL)
Expiration date column in WooCommerce product import/export
Priority email support
Use on up to 10 sites

Frequently asked questions

Everything you need to know about Expiration & Best Before Dates for WooCommerce.

Does this work with variable products?

Yes! The free version lets you set an independent expiration date on each variation, or a parent default date that dateless variations inherit. The product is hidden or set out of stock only once every variation has expired.

What happens when a product expires?

You choose what happens: hide the product from your catalog, mark it as out of stock, or both. You can also set actions to trigger a certain number of days before expiration. All of these are included free.

Can I display expiration dates on my store?

Absolutely. You can show expiration dates on product pages with customizable labels like "Best Before", "Use By", or "Expires".

What is batch/lot tracking?

Batch tracking (Pro) lets you manage multiple inventory batches per product, each with its own expiration date and quantity. The plugin uses FEFO (First Expired, First Out) to automatically deduct from the batch closest to expiration.

How do automatic discounts work?

You set up discount tiers based on days until expiration (e.g., 10% off at 14 days, 25% at 7 days). The plugin automatically applies the appropriate discount and can show an "Expiring Soon" badge. This is a Pro feature.

Can I import expiration dates from a CSV?

Yes! Product-level CSV import/export is included free via a dedicated import / export page. Pro additionally adds an expiration-date column to WooCommerce's built-in product CSV importer/exporter, so you can manage expiry dates as part of your normal catalog workflow.

Is there a free version?

Yes! The free version includes expiration tracking (including per-variation dates), auto hide / out of stock / both, quick/bulk edit, an Overview with expiring and expired lists, a calendar, activity log, and CSV import/export. Pro adds batch/lot tracking, email notifications, automatic discounts, expiring-soon badges, and an expiration date column in WooCommerce's built-in product import/export.

What if Pro is not right for my store?

Pro is backed by a 14-day money-back guarantee. Buy it, install the Pro add-on alongside the free plugin, and enter your license key under Products → Expirations → Settings → License. If it does not work out for your store, email hello@sellinor.dev within 14 days of purchase and we will refund you in full. You can also cancel the subscription at any time to stop future renewals.

What's the difference between Pro and Agency?

Same features - the only difference is how many sites the license covers. Pro is $79/year for 1 site, Agency is $199/year for up to 10 sites, at launch pricing. Need more than 10? Email hello@sellinor.dev. Both include a 14-day money-back guarantee.

What is launch pricing?

We're offering special launch pricing for early adopters. Pro is $79/year (regular $99) and Agency is $199/year (regular $249). Sign up now and keep your rate for life — prices go up after launch.

Can I get a refund?

Yes. Every Pro and Agency purchase is covered by a 14-day money-back guarantee. If you’re not satisfied, email hello@sellinor.dev within 14 days of purchase for a full refund — no questions asked. Payments are processed by Lemon Squeezy, our merchant of record.

Do I need to renew every year?

Your license renews annually at the same rate you signed up at. Launch pricing customers keep their discounted rate for life. You can cancel anytime from your customer portal — Pro keeps working until the end of the year you paid for.

Do I need the free plugin if I buy Pro?

Yes. Pro is an add-on that runs alongside the free plugin rather than replacing it. Install the free version from WordPress.org first, then add Pro and activate your license key.

What kind of support is available?

Free users can get help through the WordPress.org support forums. Pro and Agency users get priority email support directly from our team.

Still have questions?

Contact us →

Guides & tutorials

Step-by-step setups and industry playbooks for tracking expiration dates, rotating stock by FEFO, and clearing short-dated inventory.

Automatic Discounts on Expiring Products in WooCommerceAutomatically discount WooCommerce products as they near expiry, tiered by days left, with an Expiring soon badge — recover margin on short-dated stock.Bulk import expiration dates in WooCommerce via CSVExport, edit, and re-upload expiration dates for your whole WooCommerce catalog with a free CSV tool. Match by SKU or ID, with no column mapping.Display the expiration date on your WooCommerce product pageShow the expiration or best-before date on the WooCommerce product page — pick the label, set a show-within-N-days threshold, or use a shortcode.Hide Expired Products in WooCommerceAutomatically hide or out-of-stock WooCommerce products when they reach their expiration date — or N days before — and block expired items at the cart.WooCommerce batch & lot trackingTrack batches and lot numbers per product in WooCommerce — record expiry dates and quantities, deduct the first-expiring lot automatically, and trace lots.WooCommerce Expiration Date Custom FieldA WooCommerce expiration date custom field only stores a date. Here's how to turn that field into automated hide, out-of-stock, and cart rules.WooCommerce expiration date per variationSet an independent expiration date on each WooCommerce variation, inherit a parent default, and hide a product only once every variation expired. Free.WooCommerce Expiry Date Email NotificationsGet a scheduled email digest of WooCommerce products nearing their expiration date — daily, weekly, or monthly, to recipients you choose. A Pro feature.Expiry & Best-Before Dates for Food, Grocery and Bakery WooCommerce StoresManage best-before and expiry dates on a WooCommerce food, grocery or bakery store: per-product dates, auto-pull expired stock, and FEFO rotation with Pro.Expiry & Lot Tracking for Supplement Stores on WooCommerceTrack expiration dates and batch/lot numbers on a WooCommerce supplement store. Stop selling expired vitamins automatically, rotate stock FEFO, and trace every lot to its orders.Expiry, PAO & Batch Tracking for WooCommerce Cosmetics StoresManage best-before and PAO dates, stop selling expired cosmetics automatically, and trace every lot for recalls on your WooCommerce skincare store.WooCommerce Pharmacy & Medicine Expiry Date TrackingTrack medicine expiry dates in WooCommerce, stop selling past-date stock automatically, rotate by FEFO and trace lots to the orders that shipped them.

Start managing product expiration today

Stop losing sales to expired products. Start managing expiration dates the smart way.

Free plan available • 14-day money-back guarantee • No credit card required