Never Ship Expired Stock Again
A centralized urgency dashboard, bulk date correction, configurable FEFO enforcement, and a full audit trail for every lot and serial number in your Odoo Inventory.
The problem
Lots and serial numbers carry expiry, best-before, alert, and removal dates that get tracked in spreadsheets or left to memory. Nobody has one place to see what is about to expire, correcting a batch of wrong dates means editing records one by one, and when an auditor asks who changed a date and why, there is no record to show them.
The solution
A dashboard groups every lot by Expired, In Alert, or Upcoming with one-click actions. A bulk wizard corrects dates across many lots at once. Delivery enforcement can warn or block on expired stock, and every date change is logged with the user, timestamp, old and new value, and reason.
Everything expiry tracking needs
Every capability below is implemented in the module.
Automatic Expiry Calculation
Expiration, best-before, alert, and removal dates are calculated on receipt from each product’s configured shelf-life duration, so dates are set correctly without manual entry.
Expiry Urgency Dashboard
A dedicated list and kanban view group every lot by Expired, In Alert, or Upcoming, showing days-to-expiry with filters and one-click actions from the view itself.
Bulk Expiry Date Wizard
Correct many lots at once: set an exact date, shift by any number of days, or apply a quick shortcut such as +30 days, +90 days, +6 months, or same-as-received.
Full Audit Trail
Every expiry date change is logged with the user, timestamp, old and new value, and reason — visible on the lot and in a standalone change-log list for compliance review.
Configurable Delivery Enforcement
Choose per company whether shipping an expired lot is allowed, produces a warning, or hard-blocks delivery validation until the expired lot is removed.
Date-Sequence Validation
Impossible date orderings, such as a removal or alert date falling after the expiration date, are rejected at save with a clear error — toggleable per company.
Mark-as-Disposed Workflow
Remove expired stock from sellable inventory in a single action: the disposal wizard flags the lot, logs the change, and can create the scrap move for you.
FEFO Removal Strategy
Removal dates drive first-expired-first-out lot selection at picking, so older stock is shipped before newer stock without any manual sorting.
Company Policy Settings
A dedicated settings panel controls the delivery enforcement level, date-order validation, exclude-from-available behaviour, and the default responsible user for alerts.
How it works
Receive stock
Validate a receipt as usual; expiration, best-before, alert, and removal dates are calculated automatically from the product’s shelf life.
Monitor the dashboard
Open the Expiry Dashboard to see every lot grouped by Expired, In Alert, or Upcoming, with days-to-expiry at a glance.
Correct or dispose
Use the bulk wizard to fix dates across many lots at once, or the disposal wizard to remove expired stock and log the reason.
Ship with confidence
Delivery validation checks the configured policy, warning on or blocking expired lots before they reach a customer.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. It builds on Odoo's standard Expiration Dates (product_expiry) module, keeping the automatic date calculation you already rely on, and adds the dashboard, bulk editing, audit trail, enforcement, and disposal workflow on top.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Lots & Serial Expiry Date Management
An expiry urgency dashboard, bulk date correction, FEFO removal, configurable delivery enforcement and a full audit trail on top of Odoo's native lot and serial expiry tracking.
Buy on Odoo App Store