Expiry dates, enforced at the dock.
Cerevantix Expiry on Incoming Shipments turns Odoo’s buried expiry fields into an inline, enforced part of every incoming receipt, so expiration, best-before, removal and alert dates are captured before validation completes — not chased down afterward.
The problem
Warehouse staff receive stock, validate the transfer, then must return in a separate manual pass to open each lot and enter its expiration, best-before, removal and alert dates. Odoo’s native fields are buried behind an optional-columns menu with nothing forcing them to be filled, so dates get missed — breaking FEFO picking, letting expired stock ship, and turning recalls and audits into guesswork.
The solution
Expiry on Incoming Shipments puts all four expiry date fields inline on the receipt’s Detailed Operations list, flags missing or implausible dates in red and orange as you work, and blocks validation until required dates are filled — with a reviewer-only override, a bulk-apply wizard for fast entry, and an immutable audit log of every change.
Built for compliant, high-volume receiving
Every capability below is implemented in the module.
Inline Date Capture
Expiration, best-before, removal and alert dates all appear directly in the receipt’s Detailed Operations list — no extra clicks, no optional-columns menu to discover.
Enforced Validation
Receipts cannot be validated while a required expiry date is missing. A dedicated gate stops the process and lists exactly which lines and dates need attention.
Reviewer Override
When an exception is genuinely needed, only users in the Warehouse / Quality Reviewer group can confirm the receipt anyway — receiving clerks cannot bypass the gate.
Instant Visual Feedback
Lines missing a required date are highlighted in red; lines with an implausible date are flagged in orange — so problems are obvious before you even try to validate.
Plausibility Warnings
Expiration dates already in the past, or shelf lives far longer than a product’s configured expiration time, are flagged automatically so typos and mis-scans get caught early.
Bulk-Apply Wizard
Set one or several expiry dates across every eligible line of a receipt in a single action, with the option to fill only blank dates or overwrite existing ones.
Immutable Audit Log
Every date change is recorded with the product, lot, old and new value, who made the change and when — a tamper-resistant trail that only administrators can edit.
Role-Based Access
Receiving Clerks capture dates day-to-day; a separate Warehouse / Quality Reviewer group holds override rights, settings access and the audit log.
Company-Level Configuration
Choose which date types are shown and which are required, toggle plausibility warnings, and tune the shelf-life sensitivity factor — all from Inventory Settings.
How it works
Receive the Shipment
Confirm the incoming transfer as usual; an onboarding banner appears whenever a receipt has lot-tracked, expiry-enabled products.
Enter or Bulk-Apply Dates
Fill expiration, best-before, removal and alert dates inline per lot, or use the Set Expiry Dates wizard to apply dates across the whole receipt at once.
Validate With Confidence
Try to validate: missing required dates trigger the enforcement wizard automatically, showing exactly what’s incomplete before anything is confirmed.
Review the Audit Trail
Quality and warehouse managers review every date change, override and receipt from the Expiry Date Log under Inventory Reporting.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
It requires the standard Inventory (stock) and Expiration Dates (product_expiry) apps, both included in Odoo Community. No other paid apps are needed.
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.
Expiry on Incoming Shipments
Expiration, best-before, removal and alert dates captured inline on the receipt and enforced at validation, with plausibility warnings, a bulk-apply wizard, a role-gated reviewer override and an immutable log of both.
Buy on Odoo App StoreMore Odoo inventory apps
Export Pricelist
A guided pricelist export with a completeness preview, warehouse columns that actually sum, price tier columns, a vendor comparison matrix and scheduled recurring delivery.
Force Availability Management
A one-click override for stuck transfers with quantity-preview confirmation, bulk and batch forcing, per-type and per-warehouse configuration and one-click undo — gated by role-based permissions and a full audit trail.
Governed Operation-Type Access Control
Restricts each user to see-only or operate access on their assigned operation types, scoped by warehouse, with role templates and a coverage dashboard — instead of every inventory user seeing every operation by default.
Humanitarian Logistics & In-Kind Donations
Need-first requisitions, in-kind donations tracked against grant budgets with auditable overrides, and leg-by-leg shipment tracking — through to beneficiary receipts and donor impact.
Hybrid MTS+MTO Replenishment
Split each sales order line between on-hand stock and exact-shortage procurement across purchase, manufacture and dropship routes — with a split preview and a full decision trail.
Import Internal Transfer
Turn a CSV or Excel file into fully-built internal transfers, receipts and deliveries — with product lookup, location routing, lot/serial import, dry-run preview and one-click rollback.