Key Features
FEFO Lot Suggestion
Suggested lots/serials are re-ordered by expiration date, ascending, so the batch closest to expiring is offered first.
Standard POS Popup
Works inside the existing Point of Sale lot/serial popup — no new screens, buttons, or steps for the cashier.
Serial & Lot Support
Handles both lot-tracked and serial-tracked products — a serial with the earliest expiry is offered first for single-unit items.
Dated Lots Only
Lots without an expiration date are pushed to the bottom of the list, never hidden; non-dated products behave exactly as standard POS.
No Configuration Required
Activates automatically per product once Tracking and Use Expiration Date are set — nothing to enable on the module itself.
Lightweight
A single method override on pos.order.line — no new models, views, menus, security groups, or cron jobs.
Description
Dependencies
Automatic FEFO Ordering
Standard Point of Sale lists available lots in whatever order the database returns them. This module re-sorts that list by expiration date the moment the lot popup opens, so the batch closest to expiring is always at the top.
- Sorting happens server-side on every lot/serial lookup, ascending by expiration date
- Lots without a set expiration date fall to the bottom instead of interrupting the FEFO order
- Reduces shrinkage from expired stock without adding a manual stock-rotation step


Zero-Click Cashier Experience
There is nothing new to learn at the till. The FEFO ordering happens inside the exact same lot/serial popup cashiers already use — they just tap the topmost entry, same as before.
- No new buttons, screens, or training required
- Standard "no existing serial/lot number" behaviour is untouched when no dated stock is available
- Non-tracked products behave exactly as stock Point of Sale
Screenshots
POS Product Screen

Tap a Tracked Product to Open the Lot Popup

Lot Popup — FEFO Order Close-up

Lot Selected and Added to Cart

Cart Line Close-up

Payment Screen

Receipt with Lot Number

Specifications
| Versions | 18.0 |