Stop expired lots at the register — not after the sale

Real-time lot-expiry blocking and warnings inside Odoo POS, FEFO auto-assignment at checkout, and a color-coded expiry dashboard with bulk corrective actions — the closed loop no other Odoo app on the market covers end to end.

The problem

Cashiers cannot manually check the expiry status of every lot they scan. Odoo's native POS never surfaces expiry data at the register, so expired perishables and date-controlled goods slip through the till — triggering refunds, health-and-safety violations, and compliance exposure that is only discovered after the customer has already walked out.

The solution

A hard, configurable block (or warning) fires the instant an expired lot is scanned or typed at the POS, FEFO auto-assignment keeps the oldest-expiring valid lot moving first, and a color-coded management dashboard shows expiry risk building up long before it ever reaches the register — with one-click bulk actions to discount, quarantine, or flag stock for write-off.

Capabilities

Everything expiry control needs, in one module

Every capability below is implemented in the module.

01

Block or warn at checkout

Expired lots trigger a hard block or a warning — your choice, per POS terminal — the moment a lot is selected or scanned, before it ever reaches the cart.

02

Manager override, fully logged

Allow a manager-authorized override on a blocked sale when your policy needs one — every override is written to a compliance log with cashier, lot, and days overdue.

03

FEFO auto-assignment

The oldest-expiring valid lot is presented and auto-selected first at the register, so first-expiry-first-out rotation happens with zero extra taps from the cashier.

04

Color-coded expiry dashboard

Every lot is scored Expired, Critical, Expiring Soon, Safe, or No Expiry Date, and shown in kanban, list, graph, and pivot views so risk is readable at a glance.

05

Bulk corrective actions

Select any number of at-risk lots and mark them for discount, quarantine, or flag them for write-off in one click, straight from the dashboard list.

06

Configurable near-expiry window

Set the "expiring soon" window in days, globally or per product's own alert threshold, so a critical inner band and a wider warning band both surface before it is too late.

07

No-expiry-date alerts

Lots on expiry-tracked products with no expiration date set are flagged instead of silently passing as safe, closing a data gap that is easy to miss.

08

Daily digest and manager escalation

A scheduled digest email lists at-risk lots for your chosen recipients, and expired lots automatically get a follow-up activity assigned so nothing ages in silence.

09

Per-terminal settings

Turn expiry checks on or off, set the block policy, override permission, and near-expiry window independently for every POS terminal from Settings.

Workflow

How it works

1

Configure your policy

Set block-or-warn, override permission, and the near-expiry window per POS terminal, or apply a food, pharmacy, or retail preset in one click.

2

Cashiers scan as normal

Lot-tracked products are added to the cart exactly as before — FEFO auto-assignment quietly presents the first-expiring valid lot.

3

Expiry is checked instantly

An expired lot is blocked or warned per policy, a near-expiry lot shows a warning, and a manager can override a block when permitted — logged for compliance.

4

Managers act from the dashboard

Review at-risk lots by kanban, list, graph, or pivot, then discount, quarantine, or flag stock for write-off in bulk before it becomes a loss.

Questions

Frequently asked

No sales fog. If your question isn't here, email us and we'll answer it the same way.

Yes. Both the manual lot-selection popup and a scanned lot barcode at the register are checked against the same expiry rules, so there is no gap in coverage between typing and scanning.

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.

POS Lot Expiry Warning

Block or warn on expired lots at the register with FEFO auto-assignment and logged manager overrides — plus a color-coded expiry dashboard, bulk corrective actions and daily digests.

Buy on Odoo App Store