Odoo Traceability: Lot and Serial Number Setup, Recalls and Audits
Odoo traceability guide for manufacturers: set up lots and serial numbers, capture them at receipt, MO and delivery, run a recall drill, pull audit evidence.
Most guides to Odoo traceability stop at the settings checkbox. Manufacturers need more: what Odoo records at each step, how component lots link to finished goods, and what an auditor can pull in minutes. Our Odoo ERP for manufacturing work starts with those questions.
This guide is for plant managers, quality leads and operations heads in discrete and process manufacturing on Odoo 19 or Odoo 20. Food and beverage makers should read it with our Odoo for food manufacturing guide, which covers expiry, FEFO and recalls in depth.
What does Odoo traceability actually record?
Odoo traceability records a lot or serial number on every stock move line, so each receipt, consumption, production, transfer and delivery is tied to a specific number. The lot record itself is a master record; stock only exists on it after a validated operation.
Three objects do the work: the product's Tracking setting, the lot or serial record under Inventory > Products > Lots/Serial Numbers, and the stock move lines that carry the number. Odoo's docs are explicit that creating a lot reserves a number but does not assign stock.
Lots vs serial numbers in Odoo: which should each product use?

Use lots when units of a batch are interchangeable, and serial numbers when each unit needs its own history, warranty or service record. Odoo sets this per product, so a plant can mix both.
| Criterion | By Lots | By Unique Serial Number |
|---|---|---|
| What one number covers | A batch of many units | Exactly one unit |
| Typical products | Resin, sheet, fasteners, chemicals, castings | Machines, pumps, PCBs, devices, tools |
| Receipt effort | One number per batch received | One number per unit, generated or imported |
| Manufacturing order | One lot for the whole MO quantity | MO splits into one MO per unit |
| Recall scope | Every unit in the batch | The single unit and its parent assembly |
| After-sales | Batch-level warranty claims | Repair and service history per unit |
Odoo frames lots as the tool for tracing a product back to a group, and serials as the tool for after-sales service on individual items. A practical rule: lots for raw and semi-finished material, serials for anything you would repair or replace one at a time.
How do you set up lot and serial number tracking in Odoo?
Setup takes four decisions: switch on the feature, set Tracking per product, decide which operation types may create or reuse numbers, and bring existing stock onto lots. Skipping the last two is where most Odoo lot tracking projects go wrong.
- Enable the feature. Inventory > Configuration > Settings, Traceability section, tick Lots & Serial Numbers. Also tick Display Lots & Serial Numbers on Delivery Slips if customers need the numbers on paperwork.
- Set Tracking on each product. The field offers None, By Quantity, By Lots or By Unique Serial Number. None means Odoo keeps no stock at all, so counted components must be at least By Quantity.
- Control operation types. Each type has Create New and Use Existing ones under Lots/Serial Numbers. A safe default: Create New on Receipts and Manufacturing, Use Existing only on deliveries and transfers.
- Fix existing stock. If a product already has stock when you switch it to lots, Odoo warns you. The reassign guide zeroes the counted quantity and re-enters it with lot numbers through two adjustments.
- Agree a numbering policy. Supplier lot number, your own sequence, or both with the supplier number in the Internal Reference field.
Step 4 is a real pain point. A forum user who had already sold product with tracking off asked how to add lot information to products already in stock. History before the switch stays untracked; only stock from the adjustment forward carries a lot.
Where are lots and serial numbers captured: receipt, production and delivery?
Odoo asks for the number at three points: when goods arrive, when a manufacturing order consumes components and produces output, and when goods leave. Each point has its own screen and its own common mistake.
| Stage | What Odoo asks for | Where it happens | Common mistake |
|---|---|---|---|
| Vendor receipt | New lot or serial per line | Details link on the receipt, or Barcode app | One lot typed for a mixed pallet |
| Internal transfer | Existing lot or serial | Detailed Operations on the transfer | Allowing Create New, which invents numbers |
| Manufacturing order | Component lots consumed, finished lot or serial | MO form, Register Production step | Accepting any available lot unchecked |
| Quality check | Lot the result applies to | Quality app, control point per lot | Checking per operation, not per lot |
| Delivery order | Existing lot or serial picked | Pick From column in Detailed Operations | Overriding the suggested lot without reason |
| Customer return | The lot or serial that came back | Return transfer | Receiving it as a fresh lot |
On receipts, Odoo blocks validation until a lot is assigned; Generate Serials/Lots and Import Serials/Lots handle many numbers at once. On deliveries, Odoo proposes a lot from the location's removal strategy, FIFO by default and FEFO where expiry matters.
For the receipt, putaway and picking flows behind these screens, see our Odoo warehouse management system guide.
How does Odoo link component lots to finished goods in a manufacturing order?
On a manufacturing order, the component lots consumed and the finished lot or serial produced sit on the same MO, which is the link a recall follows in both directions. This only works if components and finished product are both tracked.
For a lot-tracked finished product, the Lot/Serial Number field appears once the MO is confirmed. You can generate the next number, pick an existing lot or type a new one. In Odoo 19 and 20, clicking Produce without a number generates a lot automatically instead of raising an error.
For a serial-tracked product with a quantity above one, Odoo splits the MO into one order per unit, numbered WH/MO/00109-001, 00109-002 and so on. The Batch Production window generates the serials.
Two forum threads show the edges. One user asked how to keep tracking a serialized component after it is consumed into a parent: the traceability report keeps the link, but the component serial will not print on the customer delivery slip without customization.
Another wanted to sell a kit under one serial while the parts kept theirs. The advice was to use a Manufacture BOM rather than a Kit BOM, because a Kit explodes at delivery and has no serial of its own. Our Odoo BOM and production planning guide explains the BOM types.
How does the Odoo traceability report work in a recall?
In a recall you open the suspect lot, read the Traceability report downstream to find every finished lot and customer, and upstream to find the supplier batch. In Odoo 20 both directions appear in one tree.
Our Odoo 20 Inventory release notes describe the change: upstream and downstream lots in one view, with the location where stock now sits highlighted and intermediate locations dimmed.
A second change helps the customer call list. The Transfers smart button on a lot now opens the delivery move lines for that lot, so quality teams see which customer got which lot and how many. Our Odoo 20 Manufacturing release notes list it as a recall improvement.
Run a recall drill once a quarter:
- Pick a raw material lot received about 60 days ago.
- Open it in Lots/Serial Numbers and click Traceability. Note every MO that consumed it and every finished lot produced.
- For each finished lot, click Transfers and export customer, date and quantity.
- Compare on-hand quantity per location against what the report says should be in stock.
- Time it. If it takes more than an hour, find where numbers were not captured and fix the operation type or the training.
What audit evidence can Odoo produce for ISO 9001 or customer audits?
Odoo can hand an auditor the full life of a lot without custom reports, provided the operations were validated with the right numbers. The evidence sits in six places.
- Traceability report per lot or serial, printable as PDF, with every move, date, reference, source and destination.
- Moves History under Inventory > Reporting, filterable by lot, product and date range, exportable to a spreadsheet.
- Lot properties: custom fields on the lot form such as certificate number, material grade or furnace number, added without code.
- Quality checks per lot: a control point set to Control per Lot requests a check on a percentage of items in the operation; failures can raise quality alerts.
- Delivery slips that print the lot or serial next to each product once the setting is on.
- Chatter on the lot, MO and transfer records, logging who changed what and when.
Two cautions. Odoo stores what was validated, so a skipped scan is a gap in the evidence. And in Odoo 20 the Quality Administrator group can validate a transfer with checks still open, so keep that group small. Our guide to Odoo internal controls and audit trail covers the access rights.
How do barcodes and GS1 labels speed up Odoo lot tracking?
Scanning a GS1 barcode in the Odoo Barcode app fills product, quantity and lot or serial in one read, which removes the typing errors that break traceability. Setup is a product GTIN plus the GS1 nomenclature.
Odoo's GS1 nomenclature maps Application Identifier 01 to the product GTIN, 30 to quantity, 10 to the lot number and 21 to the serial number, with 17 for the expiry date. One 2D code on a supplier label carries all of them, and a scan on a receipt creates the lot with the right quantity.
For your own labels, Odoo prints lot and serial labels from receipts and MOs, and Odoo 20 adds ZPL location labels for Zebra printers. A Print Label quality check stops an operator closing a work order before the output is labeled.
What changed for lots and serial numbers in Odoo 19 and Odoo 20?
Odoo 19 and Odoo 20 did not change the data model for lots, but they removed friction on the MO and made the recall report far more useful. The table lists what a manufacturer will notice.
| Change | Odoo 19 | Odoo 20 | Why it matters |
|---|---|---|---|
| Lot generation on MO close | Generated if the field is empty | Always generated, lots and serials | No blocked Produce button at shift end |
| Traceability report | Separate upstream and downstream views | One tree, final locations highlighted | Faster recall scoping |
| Transfers button on a lot | Opens whole transfers | Opens delivery move lines per lot | Exact customer and quantity per lot |
| Expiration date in traceability | Not shown | Expiration Date column added | One report for perishable recalls |
| Quality bypass | Checks done before validating | Quality admins can validate with open checks | Restrict the admin group |
| Vendor reference on receipts | On the PO only | Shown on the receipt transfer | Easier matching of supplier lot papers |
Source: our Odoo 20 release notes, checked against the 20.0 documentation.
What are the limits and common mistakes in Odoo lot tracking?
Odoo's traceability is only as complete as the operations your team validates, and a few design choices are expensive to undo. These are the issues we meet most often in audits of running plants.
- One finished lot per MO. A forum user asked to assign multiple lots to one manufacturing order for the final product; standard Odoo expects one, so split the MO.
- No retroactive history. Switching a product to lots does not rebuild past receipts. Plan the switch at a stock count.
- Component serials stay inside. A serialized part consumed into a parent shows in the traceability report, not on the customer delivery slip.
- Kits have no serial. A Kit BOM explodes at delivery; use a Manufacture BOM when the assembly needs its own number.
- Create New on the wrong operation type. Allowing new numbers on deliveries lets a picker invent a lot that never existed.
Each is a process decision first and a configuration second. Our post on why Odoo implementations fail in manufacturing shows how BOM and routing mistakes compound tracking mistakes.
Which industries need Odoo traceability most?
Any manufacturer that can be asked "which batch and which customers" by a regulator, a customer or a lawyer needs lot or serial tracking in Odoo. The driver differs by sector.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Automotive and machinery parts | Customer audits want batch and heat numbers | Lots on raw material, lot properties for heat or grade | Map audit formats to lot properties |
| Electronics and devices | Warranty and field failure per unit | Serials on finished goods and PCBs, repair orders | Serial flow from MO to Repair app |
| Pharma, cosmetics and chemicals | Batch records and recall readiness | Lots with expiry, quality checks per lot | Recall drill and validation evidence |
| Food and beverage | Expiry, FEFO and one-step recall rules | Lots with expiration dates, FEFO removal | See our food manufacturing guide |
| Plastics, packaging and print | Job-level traceability and labels | Lots per run, barcode labels, job linkage | Label printers and barcode setup |
| Medical devices | Unit history and inspection records | Serials, quality control points, inspector portal | Device records and retention workflows |
How much does Odoo traceability setup cost and how long does it take?
Lot and serial tracking is configuration, not custom code, so it usually adds days rather than months to an Odoo manufacturing project. The real cost is data preparation, labels and training.
Inventory, Manufacturing, Quality and Barcode are all included in Odoo's per-user plans, so traceability carries no extra license. As an industry estimate, adding tracking to a running plant with 200 to 500 tracked products takes two to four weeks of part-time effort.
Within a new implementation, traceability is part of the inventory and manufacturing scope. Our published Odoo implementation ranges run from about $3k to $9k for small projects to $9k to $27k for mid-size plants. Use the Odoo implementation cost calculator for a first number.
How iVentureTeam helps with Odoo traceability

iVentureTeam sets up lot and serial tracking so that a recall or audit is a report, not a project. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Tracking design: lots vs serials per product family, numbering policy, operation type rules and BOM types that keep the chain intact.
- Stock migration onto lots: counted stock re-entered with lot numbers and supplier references, as part of our Odoo implementation services.
- Barcode and labels: GS1 nomenclature, scanner setup and label printing from receipts and MOs.
- Recall drill and audit pack: a timed recall exercise, saved traceability and moves history filters, and quality control points per lot.
- Customization when standard stops: component serials on customer documents or industry formats, through our Odoo customization services, kept upgrade-safe.
Odoo traceability case study: Chetan Plastics
A plastics and print manufacturer in Ahmedabad moved from a shared Excel file to a customized Odoo plant where every job is traceable from CRM inquiry to delivery challan. Chetan Plastics went live in a 16-week phased rollout.
Before the project, sales, purchase, delivery and receipt records lived in Excel, and there was no traceability from source documents to purchase orders and approvals across departments. Barcode stickers were produced by hand.
iVentureTeam connected six core modules from Sales to Repair. Jobs were linked down to individual sales order lines, with auto-updating calculation notes for traceability, and two-step validation on sales and purchase confirmations.
On the floor, a TSC barcode printer prints 100 by 75 mm labels that pull product data automatically, and QR-coded stickers track inventory. Read the Chetan Plastics Odoo manufacturing case study for the detail.
The bottom line on Odoo traceability
Odoo gives manufacturers lot and serial traceability out of the box, but it only pays off when tracking is set per product, operation types are locked down and the shop floor captures numbers at every step. Odoo 20 makes the recall report and customer list far quicker.
Decide lots or serials per product family, fix existing stock at a count, print what you can scan, and run a recall drill before anyone forces you to. Done that way, traceability becomes a routine report rather than a scramble.
Ready to make every lot and serial traceable in Odoo?

Get a tracking design and recall drill plan for your plant. Request an Odoo traceability review, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
What is traceability in Odoo?
+
Traceability in Odoo is the record of a lot or serial number on every stock move, from vendor receipt through manufacturing to customer delivery. The Traceability smart button on a lot shows where it came from, what it became and where it went.
What is the difference between lots and serial numbers in Odoo?
+
A lot is one number shared by a batch of units, such as a production run or a supplier delivery. A serial number identifies exactly one unit. Lots suit materials and batch products; serials suit machines, devices and anything repaired individually.
How do I enable lot tracking in Odoo?
+
Go to Inventory > Configuration > Settings, tick Lots & Serial Numbers under Traceability and save. Then set each product's Tracking field to By Lots or By Unique Serial Number, and set Create New or Use Existing on each operation type.
Can Odoo track serial numbers in manufacturing orders?
+
Yes. For a serial-tracked finished product, Odoo splits a multi-unit MO into one order per unit and generates the serials. Component serials and lots consumed are recorded on the same MO, so the traceability report links parts to the finished unit.
How does Odoo handle a product recall?
+
Open the suspect lot under Inventory > Products > Lots/Serial Numbers and click Traceability to see upstream sources and downstream finished lots. In Odoo 20, the Transfers button lists the delivery lines per lot, so you know which customer received which quantity.
Can I add lots to products already in stock in Odoo?
+
Yes, through inventory adjustments. Set the counted quantity to zero, then add it back with the lot or serial numbers. History before the change stays untracked, so time the switch with a physical stock count.
Does Odoo support GS1 barcodes for lots and serial numbers?
+
Yes. Odoo's GS1 nomenclature reads Application Identifiers 01 for GTIN, 30 for quantity, 10 for lot, 21 for serial and 17 for expiry. One scan in the Barcode app can fill product, quantity and lot on a receipt.
What changed for lot tracking in Odoo 20?
+
Odoo 20 always generates lots or serials when an MO is closed, shows upstream and downstream lots in one traceability tree, adds an Expiration Date column, and makes the Transfers button on a lot open delivery lines per customer.
Is Odoo traceability enough for ISO 9001 or regulated manufacturing?
+
Odoo provides the records most audits ask for: traceability report, moves history, quality checks per lot and lot properties. Compliance still depends on your procedures, validation of the setup and disciplined capture on the shop floor.
Does lot and serial tracking cost extra in Odoo?
+
No. Inventory, Manufacturing, Quality and Barcode are included in Odoo's per-user plans. The real costs are data preparation, scanners and label printers, and training, which usually add days or a few weeks to a project.
Free manufacturing walkthrough
Running manufacturing on Odoo?
Our manufacturing consultants map your BoMs, routings and planning in Odoo and show what to configure first.
Free, with no obligation. A senior consultant replies within 12 business hours.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo Raw Material Shortage: Reorder Rules, Safety Stock, MRP Alerts
Prevent raw material shortages in Odoo 19 and 20 with reordering rules, safety stock, real supplier lead times, the MPS and MRP shortage alerts, step by step.
Odoo for Food Manufacturing: Lot Tracing, Expiry, FEFO and Recalls
Odoo for food manufacturing: set up lot traceability, expiry dates, FEFO picking, quality checks and recalls in Odoo 20, plus apps, FSMA 204 and cost.
Odoo COGS Explained: How Cost of Goods Sold Is Calculated and Posted
Odoo COGS explained for Odoo 19 and 20: Anglo-Saxon vs Continental timing, FIFO, AVCO and standard cost, journal entries, closing entries and reports.
