Lot and serial tracking that keeps up with checkout.

Manual search-first selection, automatic FEFO/FIFO picking with a visible reason and one-tap override, hard expiry blocking, serial capture, and mandatory enforcement — unified in a single Point of Sale module for Odoo 19.

The problem

Selling lot and serial tracked goods through Odoo POS is where traceability breaks down. Cashiers face slow scrollable pop-ups, auto-selection apps pick a lot with no visible reason, expiry is only a passive warning, and serial entry is a clumsy one-at-a-time modal. Skip a step under queue pressure and the business loses recall traceability, risks selling expired stock, and ends up with POS quantities that no longer match the warehouse.

The solution

POS Lot & Serial Number Manager unifies manual search-first selection, FEFO/FIFO auto-selection with a visible rationale and one-tap override, hard expiry blocking with color-coded near-expiry flags, inline serial capture with duplicate detection and batch paste, mis-scan recovery, offline lot lookup, and mandatory enforcement before payment — configurable per product or per category, with a built-in audit report.

Capabilities

Everything a tracked-goods checkout needs

Every capability below is implemented in the module.

01

Search-first manual selection

Cashiers search or filter lots and serials instead of scrolling long lists, with expiry date, available quantity, and location shown before commit.

02

FEFO/FIFO auto-selection with rationale

Automatically picks the earliest-expiry or oldest-received lot, shows why it was chosen, and lets the cashier change it in one tap before the sale.

03

Hard expiry blocking and near-expiry flags

Expired lots are excluded from selection outright, while lots inside a configurable warning window are flagged with a color-coded badge.

04

Inline serial capture with duplicate detection

Serial numbers validate inline as they are typed, support batch/paste entry for bulk lines, and block the same serial from being entered twice.

05

Mandatory enforcement before payment

Optionally require every tracked product to carry a lot or serial before the order can be paid, so traceability is never silently skipped.

06

Barcode mis-scan recovery

An unreadable or unknown lot/serial barcode shows a clear message with an instant fallback to manual keyboard entry, instead of failing silently.

07

Offline lot lookup

Lot and serial lookup keeps working from the POS session's local data if the connection drops, so a dropped signal never stalls the checkout line.

08

Per-product and per-category strategy

Choose manual, FEFO, or FIFO globally, then override the selection strategy on any individual product or product category.

09

Lot/serial sales and expiry report

A built-in report lists every lot and serial sold through POS with expiry status, giving managers an audit trail for recalls and rotation review.

Workflow

How it works

1

Configure the strategy

Set FEFO, FIFO, or manual selection, expiry blocking, the near-expiry warning window, and enforcement in POS settings, with optional per-product overrides.

2

Add the product at POS

The cashier taps or scans a tracked product on the POS product screen as usual.

3

Confirm the lot or serial

The app auto-selects with a visible rationale, or the cashier searches and picks manually, or scans a barcode — expired lots never appear.

4

Pay and audit later

Enforcement blocks payment on missing lots/serials; every sold lot appears in the audit and expiry report afterwards.

Questions

Frequently asked

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

Yes. Products configured with lot tracking or serial number tracking in Odoo's Inventory app both work at the POS, with the appropriate selection and capture interface for each.

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 & Serial Number Manager

Search-first lot selection, FEFO/FIFO auto-picks with a stated rationale, hard expiry blocking, inline serial capture with duplicate detection and offline lookup — all enforced before payment.

Buy on Odoo App Store