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.
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.
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.
See it in action
A tour of the urgency dashboard, lot form, audit trail, and correction wizards.
The standard lots/serial numbers list now shows an urgency badge and days-to-expiry, with expired and alert-window rows highlighted.
The Expiry Dashboard list groups every lot by Expired, In Alert, or Upcoming, with filters and multi-select bulk actions.
The same dashboard in kanban view, with colour-coded cards grouped by urgency tier for a fast visual scan.
An expired lot's form shows its urgency badge, days-to-expiry, and a one-click Dispose action right where staff are already working.
A Change Log smart button and an embedded Expiry Audit page put every prior date change right on the lot record.
A standalone, read-only change log lists every expiry date change across all lots for compliance review.
The Expiry Management settings panel controls delivery policy, date-order enforcement, exclude-from-available behaviour, and the default responsible user.
The Bulk Expiry Date wizard corrects many lots at once, with set, shift, and +30d/+90d/+6mo quick-select shortcuts.
The Disposal wizard marks a lot disposed and can create the matching scrap move in the same action.
Frequently asked
Does this replace Odoo's native expiry fields?
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.
Does this require Odoo Enterprise?
No. Every feature in this app runs on Odoo Community, so the full dashboard, bulk-edit, and enforcement workflow is available without an Enterprise upgrade.
Can I choose how strictly expired lots are enforced?
Yes. The company settings panel lets you set delivery enforcement to No Check, Warn Only, or Block Delivery, so you can match your own compliance requirements.
What happens to disposed lots?
The disposal wizard flags the lot as disposed, logs the action in the audit trail, and can optionally create the matching scrap move to remove the stock from your inventory.
Get in Touch
Have questions or need customization? Every purchase includes 30 days of free support — we are here to help.
Visit Our Website
www.cerevantix.comExplore our apps, services, and portfolio.
Empowering growth through technology.
Lots & Serial Expiry Date Management brings an urgency dashboard, bulk date correction, configurable delivery enforcement, and a full audit trail to Odoo's native lot and serial expiry tracking.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 733 |
| Technical Name |
cerevantix_lots_serial_expiry_date_app |
| License | OPL-1 |
| Website | https://cerevantix.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module