361 Techno Consulting logo

Odoo for FMCG: Batch, Expiry and FEFO Explained

How FMCG manufacturers and distributors use Odoo Inventory to track batches and expiry dates, pick first-expiry-first-out (FEFO) and cut expired stock.

Monika M Tekwani
Monika M Tekwani

1 October 2026, 6 min read

In FMCG, stock that expires on the shelf is pure loss. With short shelf lives, multiple depots and distributors who return near-expiry goods, a business needs to know exactly which batch is where and which should go out first. Odoo Inventory handles this well when it is set up correctly.

FIFO vs FEFO

FIFO (first in, first out) ships the stock that arrived first. FEFO (first expiry, first out) ships the stock that expires first. In FMCG these are not always the same: a batch received later can have an earlier expiry date. FEFO protects you from shipping fresh stock while older-dated stock expires in the warehouse.

How Odoo supports batch and expiry tracking

  • Lots and serial numbers: each product can be tracked by lot (batch), so every receipt, transfer and delivery records which batch moved.
  • Expiration dates: when enabled, each lot can carry an expiration date, along with best-before, removal and alert dates.
  • Removal strategy: Odoo can use FEFO as the removal strategy, so pickings suggest the lots that expire first.
  • Traceability: you can trace a lot forward to the customers who received it and backward to the supplier or production order it came from.

A typical setup for an FMCG business

  1. 1Enable lots and expiration dates in Inventory settings.
  2. 2Set products to be tracked by lot, with a default shelf life so expiry dates are calculated on receipt or production.
  3. 3Set FEFO as the removal strategy on the relevant product categories or warehouse locations.
  4. 4Create separate locations for quarantine, damaged and expired stock.
  5. 5Use alert dates and reports to see near-expiry stock early, while it can still be sold or redistributed.

Multi-depot distribution

Most FMCG companies hold stock at a factory, central warehouse and several depots or C&F agents. In Odoo each is a warehouse with its own stock and replenishment rules, and inter-warehouse transfers keep the lot and expiry information with the goods. Management sees stock by depot and by batch in one place.

Returns and expired stock

Distributor returns are where many systems lose track. In Odoo, returns are recorded against the original delivery, so the batch is known. Damaged or expired goods can be moved to dedicated locations and written off with a clear audit trail, while credit notes link back to the original invoice.

Barcode scanning makes it reliable

Batch tracking only works if every movement is recorded correctly. Odoo Barcode lets warehouse staff scan products and lots during receiving, picking and stock counts, which removes most of the manual errors that make system stock drift away from the shelf.

We have hands-on experience implementing Odoo Inventory for FMCG and multi-warehouse businesses. Book a free inventory review to see how your warehouse would run in Odoo. Book a free consultation

Find out what Odoo would look like in your business

A free 30-minute consultation with an Odoo consultant. You leave with a clear list of apps, a realistic timeline and next steps.