Odoo Lot & Serial Number Tracking: Complete Traceability Guide 2026
Every manufacturer, distributor, and retailer faces the same challenge: when something goes wrong with a product, you need to know exactly where it came from, where it went, and which customers are affected. Odoo's lot and serial number tracking system gives you that visibility from raw material to end customer.
Why Lot and Serial Tracking Matters
Product traceability is no longer optional. Industries from food and beverage to electronics and pharmaceuticals face strict regulatory requirements. Even unregulated industries need traceability for quality control, warranty management, and customer trust.
The Three Levels of Traceability
Lot tracking groups products manufactured or received together under a single identifier. A lot might represent a production batch of 500 units made on the same day with the same raw materials. Lot tracking is ideal for products where individual unit distinction is unnecessary but batch-level traceability is required.
Serial number tracking assigns a unique identifier to each individual unit. This is essential for high-value items like electronics, vehicles, or medical devices where each unit has its own warranty, maintenance history, and quality record.
Expiration date tracking works alongside lot tracking to manage perishable goods. Products with expiration dates automatically use lots, with the expiration date stored as a lot property.
Enabling Lot and Serial Numbers in Odoo
Lot and serial tracking is configured at the product category and product levels. The setup determines which products require lot numbers, which require serial numbers, and which need neither.
Step 1: Activate the Setting
Navigate to Inventory > Configuration > Settings. Under the Traceability section, check the box for Lots & Serial Numbers. This activates the lot and serial number models across all inventory operations.
Step 2: Configure Products
Each product has a Tracking field on the Inventory tab with three options:
- By Lots — A lot number is required when receiving or manufacturing the product. Multiple units share the same lot.
- By Unique Serial Number — Each unit gets its own serial number. Required for every individual item moving through inventory.
- No Tracking — No lot or serial number is tracked. Standard inventory behavior.
Step 3: Set Up Lot/Serial Number Formats
Odoo supports automatic lot and serial number generation through sequences. Configure these at Inventory > Configuration > Lot/Serial Number Sequences. You can define custom formats using prefixes, suffixes, and padding:
- LOT/YY/MM/0001 — Produces LOT/26/04/0001, LOT/26/04/0002
- SN-{product.default_code}-0001 — Product-specific serial prefixes
- EXP-{expiration_date} — Date-based expiration lot codes
Receiving Products with Lots and Serials
When products with tracking enabled are received, Odoo requires lot or serial number assignment before the transfer can be validated. The process differs slightly depending on the tracking type.
Lot-Based Receiving
For lot-tracked products, enter the lot number on the receipt. If receiving 500 units of a product tracked by lots, you might assign them all to lot BATCH-2026-0415. The lot records the receipt date, source vendor, and can store additional properties like supplier batch numbers.
Serial Number Receiving
For serial-tracked products, each unit must receive a unique serial number. Odoo provides several input methods:
- Manual entry — Type or paste each serial number individually
- Barcode scanning — Scan each serial number as units are received
- CSV import — Upload a spreadsheet of pre-assigned serial numbers
- Auto-generate — Let Odoo create serial numbers from the configured sequence
Managing Lots Through Operations
Once lots and serial numbers exist in the system, they flow through every inventory operation. Understanding this flow is critical for maintaining accurate traceability records.
Internal Transfers
When moving tracked products between warehouse locations, Odoo preserves the lot or serial number assignment. The system knows which lots are in which locations, enabling location-level traceability. This matters for warehouse organization and for quarantine management when specific lots need isolation.
Manufacturing with Lots
In manufacturing, raw material lots are consumed and finished product lots are created. Odoo records which component lots went into which finished product lots, creating a complete genealogy tree. This is essential for root cause analysis: if a finished product has a defect, you can trace it back to the exact batch of raw materials that caused it.
Sales and Delivery
When delivering tracked products, Odoo assigns specific lots or serial numbers to the delivery order. The system records exactly which lot went to which customer. This enables targeted recalls: instead of recalling all units, you contact only customers who received the affected lot.
Expiration Date Management
Products tracked by lots can have expiration dates. Odoo uses these dates to enforce removal strategies and prevent shipping expired products.
Configuring Expiration on Products
On the product form, set Expiration Time (in days). When products are received, Odoo automatically calculates the expiration date based on the receipt date plus the configured duration. For products where expiration varies by lot, enter the date manually during receipt.
Removal Strategies for Expiring Products
Odoo supports several removal strategies that use lot expiration data:
- FEFO (First Expired, First Out) — Ships products closest to expiration first. Required for food, pharmaceuticals, and chemicals.
- FIFO (First In, First Out) — Ships oldest received products first. Works as a proxy for expiration when lots are received in chronological order.
Expiration Alerts
Configure alert rules to notify warehouse managers when lots approach expiration. Set thresholds at 30, 14, and 7 days before expiration. This gives teams time to discount, return, or dispose of products before they expire.
Product Recalls with Lot Tracking
When a product recall is necessary, lot and serial tracking turns a potential disaster into a manageable process.
Step-by-Step Recall Process
- Identify the affected lot(s) — Search by lot number, receipt date, or component batch to find all impacted lots
- Trace forward — Use the lot traceability report to see every operation where the lot was used, including customer deliveries
- Contact affected customers — The traceability report shows exactly which customers received products from the affected lot
- Block remaining stock — Quarantine any remaining units of the affected lot in inventory
- Document the recall — Odoo maintains a complete audit trail of the lot's entire history for regulatory reporting
Lot Traceability Reports
Odoo's lot traceability report provides a complete genealogy view. From any lot, you can see:
- Where the lot came from (vendor receipt, manufacturing order, or return)
- Every internal transfer the lot participated in
- Which manufacturing orders consumed or produced the lot
- Which customer deliveries shipped the lot
- Any returns or scrap operations involving the lot
Access the report from Inventory > Reporting > Lot/Serial Traceability or directly from the lot form.
Common Configuration Mistakes
Implementing lot and serial tracking is straightforward, but several mistakes can compromise data integrity:
- Tracking too many products — Only enable tracking where it adds value. Tracking every product by serial number creates unnecessary data entry overhead.
- Inconsistent lot naming — Without a sequence format, lot numbers become inconsistent and hard to search. Always configure lot sequences before receiving tracked products.
- Missing component lots in manufacturing — If raw materials are tracked by lots, ensure every manufacturing operation records which component lots were consumed. Missing this breaks the traceability chain.
- Not using removal strategies — If you have expiration dates configured but no FEFO removal strategy, Odoo won't automatically prioritize expiring lots.
Summary
Key Takeaways
- Use lot tracking for batch-level traceability and serial tracking for per-unit traceability
- Configure lot/serial sequences before receiving any tracked products
- Use FEFO removal strategy for products with expiration dates
- The lot traceability report provides complete forward and backward genealogy
- Only enable tracking on products that require it to avoid unnecessary overhead
Frequently Asked Questions
What is the difference between lots and serial numbers in Odoo?
Lots group multiple units under a single identifier, ideal for batch tracking. Serial numbers are unique to each individual unit, required for per-item traceability. A product can use lots OR serial numbers, but not both simultaneously.
Can I add lot tracking to an existing product?
Yes, you can change the tracking type on an existing product. However, the change only affects future transactions. Existing stock without lots will need to be assigned lot numbers through an inventory adjustment before it can be moved or sold.
How does Odoo handle lot expiration?
Products tracked by lots can have expiration dates set on the product form. Odoo calculates expiration dates automatically on receipt and uses FEFO (First Expired, First Out) removal strategy to ship products closest to expiration. Alert rules can notify teams before products expire.
Can I scan lot numbers with a barcode reader?
Yes. Odoo's barcode interface supports scanning lot and serial numbers during receipt, internal transfers, and delivery operations. Each scan assigns the scanned lot to the operation line being processed.
How do I trace a product recall in Odoo?
Open the lot traceability report from the affected lot's form view. This shows the complete genealogy — where the lot came from, every operation it participated in, and which customers received it. Use this data to identify affected shipments and contact the right customers.
Need Help Setting Up Traceability?
Get expert guidance on configuring lot and serial tracking for your specific industry requirements.