Skip to main content
iVentureTeam
Compliance

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.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 5, 202615 min read3 views
Odoo Traceability: Lot and Serial Number Setup, Recalls and Audits cover

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?

Odoo lots vs serial numbers: Which tracking fits each product?

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.

CriterionBy LotsBy Unique Serial Number
What one number coversA batch of many unitsExactly one unit
Typical productsResin, sheet, fasteners, chemicals, castingsMachines, pumps, PCBs, devices, tools
Receipt effortOne number per batch receivedOne number per unit, generated or imported
Manufacturing orderOne lot for the whole MO quantityMO splits into one MO per unit
Recall scopeEvery unit in the batchThe single unit and its parent assembly
After-salesBatch-level warranty claimsRepair 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

StageWhat Odoo asks forWhere it happensCommon mistake
Vendor receiptNew lot or serial per lineDetails link on the receipt, or Barcode appOne lot typed for a mixed pallet
Internal transferExisting lot or serialDetailed Operations on the transferAllowing Create New, which invents numbers
Manufacturing orderComponent lots consumed, finished lot or serialMO form, Register Production stepAccepting any available lot unchecked
Quality checkLot the result applies toQuality app, control point per lotChecking per operation, not per lot
Delivery orderExisting lot or serial pickedPick From column in Detailed OperationsOverriding the suggested lot without reason
Customer returnThe lot or serial that came backReturn transferReceiving 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.

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:

  1. Pick a raw material lot received about 60 days ago.
  2. Open it in Lots/Serial Numbers and click Traceability. Note every MO that consumed it and every finished lot produced.
  3. For each finished lot, click Transfers and export customer, date and quantity.
  4. Compare on-hand quantity per location against what the report says should be in stock.
  5. 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.

ChangeOdoo 19Odoo 20Why it matters
Lot generation on MO closeGenerated if the field is emptyAlways generated, lots and serialsNo blocked Produce button at shift end
Traceability reportSeparate upstream and downstream viewsOne tree, final locations highlightedFaster recall scoping
Transfers button on a lotOpens whole transfersOpens delivery move lines per lotExact customer and quantity per lot
Expiration date in traceabilityNot shownExpiration Date column addedOne report for perishable recalls
Quality bypassChecks done before validatingQuality admins can validate with open checksRestrict the admin group
Vendor reference on receiptsOn the PO onlyShown on the receipt transferEasier 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.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
Automotive and machinery partsCustomer audits want batch and heat numbersLots on raw material, lot properties for heat or gradeMap audit formats to lot properties
Electronics and devicesWarranty and field failure per unitSerials on finished goods and PCBs, repair ordersSerial flow from MO to Repair app
Pharma, cosmetics and chemicalsBatch records and recall readinessLots with expiry, quality checks per lotRecall drill and validation evidence
Food and beverageExpiry, FEFO and one-step recall rulesLots with expiration dates, FEFO removalSee our food manufacturing guide
Plastics, packaging and printJob-level traceability and labelsLots per run, barcode labels, job linkageLabel printers and barcode setup
Medical devicesUnit history and inspection recordsSerials, quality control points, inspector portalDevice 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

Adding lot tracking? Price the project first

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?

Request a traceability review

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.