A delivery of yoghurt arrives today and expires before the batch already on the shelf. A warehouse that picks by arrival date may leave the shorter-dated batch behind. Odoo’s FEFO strategy prioritises the earliest recorded removal date. Your sales team still needs to answer a different question: will that batch have enough shelf life left when the customer receives it?
Set the picking order and the customer acceptance rule together. At ToDoOps, we tie the inventory test to an actual type of order your warehouse ships. That gives the sales rep a batch they can check and the warehouse supervisor a reason for the allocation before the truck arrives.
How does Odoo FEFO choose which food lot to pick?
Odoo 19 compares the removal dates of lots eligible for reservation. When FEFO is configured for the product category or stock location, the system gives priority to the lot with the earliest removal date. A forced removal strategy on the category takes priority if the location uses a different one 1. Check both settings when a reservation looks unexpected.
The expiration date describes the lot. The removal date is the operational date you use to take it out of normal picking, which can include a buffer ahead of expiry. A customer’s minimum remaining shelf life at delivery is a separate decision. Record that rule for customers who require it and decide when the warehouse will check it during order preparation.
FIFO prioritises stock that arrived first. For a useful comparison, receive a later delivery whose lot has an earlier removal date. The two strategies then have a real decision to make. If all your test batches arrive in expiry order, the first test may show the same outcome with either strategy.
How do Saudi food warehouses record expiry at receipt?
The Saudi Food and Drug Authority points food businesses to shelf-life references including SFDA.FD 150-1 for mandatory periods and SFDA.FD/GSO 150-2 for optional periods 2. Use the applicable product reference when defining your own receiving and release procedures. Enable lot and expiration tracking in Odoo and have the receiver check the lot and dates against the label, especially when a shipment includes more than one batch.
Agree on what happens when a date is illegible, a return arrives, or one case carries a different date from the rest of the delivery. Those are useful tests for hold locations, release responsibility and what your sales team can promise. The Odoo inventory guide covers the broader decisions about locations and availability.
Worked example: reserving 25 cases in Odoo
Assume both lots are released and held in a location eligible for reservation. The customer receives the order on day 6. These figures are hypothetical.
| Lot | Quantity | Removal day | Expiry day |
|---|---|---|---|
| A | 18 cases | 8 | 12 |
| B | 32 cases | 14 | 20 |
For an order of 25 cases, FEFO prioritises 18 from A and takes the remaining 7 from B. Once delivery is validated, 25 cases are left in B. Until then, keep the reserved quantity separate from the physical balance on the shelf.
Now suppose this customer requires 10 days of shelf life at delivery. Lot A has 6 days left (12 − 6), and B has 14 (20 − 6). The warehouse decision is to prepare all 25 from B, assuming they are available for that order. Test how the picker checks the condition and changes the reservation before dispatch. Keep the reason visible to whoever reviews the order. For any short-dated stock still on hand, decide on the next action under your quality procedure while there is time to act.
Use the ToDoOps calculators to estimate current manual effort or a project budget with your own warehouse figures. Start with the number of orders that require rework and the minutes you actually spend on each. Use the same measurement period when comparing results.
How do you test FEFO before rolling it out across warehouses?
Choose one fast-moving product and one product where receipt and expiry often arrive out of sequence. Run a standard order, an order with a minimum shelf-life requirement, a return that needs review and an order involving a held lot. Ask the warehouse supervisor to follow the cases from receipt to dispatch, and ask sales to identify what it can commit to from the order.
For each case, record what Odoo reserved, why it did so, and where someone needed to make a decision. Finance can see what physically left and when before reviewing write-offs. Management can distinguish stock that needs prompt action from a repeat supplier issue. The sales and inventory walkthrough shows how an order connects to stock movements. Use your own lots and customer rules to test expiry handling itself.
Where should you start with Odoo expiry management?
Bring a sample of your lot labels and one customer’s minimum shelf-life rule. Use the contact page to discuss what to configure in Odoo and which handoffs your team needs to define. You can review ToDoOps Odoo solutions, explore the relevant applications and industries, and use the calculators to estimate project budget and current effort.
Sources
[1] Odoo, official documentation 19.0. The FEFO guide describes reservation by removal date, tracking and date configuration, and strategy precedence between categories and locations.
[2] Saudi Food and Drug Authority. The food shelf-life FAQ identifies the mandatory and optional references used to locate the provisions applicable to a product category.
