September 19, 2026 · 5 min · Traceability and inventory

Lire en français

Odoo lots and expiry dates: reliable traceability and FEFO

Finding a lot shipped to a customer should not require matching several spreadsheets. For a business using Odoo in Belgium or France, traceability becomes useful when receipts, movements and deliveries share reliable data. This guide prepares an Odoo Enterprise project using Odoo 19 documentation; it does not describe a feature announced today.

Define the scope of lot tracking

A lot identifies a group of products. Odoo provides a traceability report of its stock movements. The official lot documentation also explains that existing stock needs lot assignments through an inventory adjustment when tracking is enabled.

Our advice is to start with a product family whose suppliers provide usable lot references. Decide who records the reference, who corrects mistakes and what evidence accompanies a receipt. For a migration, reconcile physical quantities and lots before importing opening stock; assigning a single invented lot to everything would undermine the precision you need.

Separate expiry, removal and alert dates

Odoo distinguishes expiration, best-before, removal and alert dates. These apply to products tracked by lots or serial numbers. Dates can be calculated from product settings and adjusted manually, as described in the expiration date documentation.

At receipt, compare the proposed dates with the supplier’s information. A theoretical interval is insufficient when two lots of the same product have different remaining shelf lives. Assign responsibility for discrepancies and record a decision: accept, isolate or request clarification. Explain the meaning of the fields to both French-speaking and English-speaking teams.

Understand what FEFO prioritises

FEFO prioritises the earliest removal date. The strategy can be configured on a location or product category; a forced category strategy takes precedence when the two conflict. These rules are documented in the official FEFO guide.

Underside’s suggested acceptance scenario: prepare two available lots of the same product, A and B. A has a removal date of October 10; B has October 5. For a small order that either lot could fulfil, check that the reservation prioritises B. Then reverse the arrival order to confirm that the team understands the difference between removal priority and time spent in stock.

Test exceptions before rollout

A removal strategy alone does not define your quality procedure. Explicitly test what happens when a lot has expired, lacks information or is returned by a customer. Do not assume that an alert blocks every delivery workflow.

For an organisation operating in Belgium and France, have each warehouse run these scenarios. Differences in data entry, access rights and receiving practices should be visible before you expand the configuration.

Underside’s analysis: measure how quickly you can find evidence

We recommend a limited pilot with a logistics owner and a quality lead. Measure the time needed to retrieve a lot’s movements, the proportion of receipts requiring corrections and the number of missing dates. Fewer corrections provide more useful evidence than simply counting the lots created.

Start by validating standard configuration in your version. If a requirement remains unmet, such as a customer-specific minimum remaining shelf life at delivery, document the expected outcome and affected workflows before assessing an extension. This approach complements work on Odoo Barcode, quality management and replenishment.

Bring sample supplier labels, a return example and your removal policies to scope your Odoo project with Underside.

Back to blog