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.

Capabilities

Everything expiry tracking needs

Every capability below is implemented in the module.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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.

Workflow

How it works

1

Receive stock

Validate a receipt as usual; expiration, best-before, alert, and removal dates are calculated automatically from the product’s shelf life.

2

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.

3

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.

4

Ship with confidence

Delivery validation checks the configured policy, warning on or blocking expired lots before they reach a customer.

Questions

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.

Get the app

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