A note arrives from a supplier or a customer about one specific batch. The first question isn’t “how much of this item do we hold?” It’s “where exactly did this batch go, and who received it?” When the movement log answers that, management can talk about specific facts instead of freezing whole product lines on a guess.
The answer that settles the choice: use a lot when you’re dealing with a group of units of the same product, and use a serial number when you need to identify a single unit 1. The decision starts from one question: what will I have to answer later, a group or a single piece? At ToDoOps, we put that question to the warehouse and purchasing leads before we configure anything.
When do I choose a lot, and when a serial number?
In Odoo you enable Lots & Serial Numbers, set the tracking type on each product, and use the identifiers in the relevant operation types 1. The same logic appears in the open GS1 system architecture, at three levels:
On mobile, swipe the table horizontally if any columns are out of view.
| Level | What it identifies | The question it answers |
|---|---|---|
| Class (GTIN) | The product type | What product is this? |
| Batch/lot | GTIN + batch or lot number | Which group did these units come from? |
| Instance | GTIN + serial number | Exactly which piece? |
Source: 2. The key point is that a GTIN alone does not identify a batch or a serial number 2. In Odoo, your internal identifiers and supplier numbers are configured around your products and receiving process. The standard helps distinguish product identity from batch and individual-unit identity.
One more distinction: we don’t mix the tracking unit with the costing unit. They serve different purposes.
A hypothetical example: a batch of 200 units
This is a hypothetical worked example. One batch of 200 units arrived. Later, quantities went to three customers and some remained in the warehouse:
| Destination | Quantity | Question or document to check |
|---|---|---|
| Customer A | 90 | The delivery order linked to the batch |
| Customer B | 60 | The delivery order linked to the batch |
| Customer C | 30 | The delivery order linked to the batch |
| Warehouse | 20 | The batch balance in the physical location |
The check is simple: 90 + 60 + 30 = 180 delivered, and 180 + 20 in stock = 200, the quantity received. If the totals differ, review the period and scope, returns, transfers, adjustments and identifier entry to explain the difference rather than assuming a single cause.
If we assume an accounting value of SAR 100 per unit, for the example only, the remaining stock is 2,000 and the delivered stock is 18,000. Those amounts describe the quantities using the example’s assumed unit cost. Use the calculators with your own inputs to estimate the wider implementation budget and operating impact, then discuss the appropriate scenario with your team.
What happens the day a note arrives about a batch?
In the example above, the supplier calls and quotes the batch number. The warehouse lead opens the movement log in Odoo, and batch Traceability shows, from the recorded movements, that 20 units are still in the warehouse and 180 were delivered across three customers. They can see who to check with and which delivery order to go back to for each customer, without searching through unrelated products. This works when the record is sound: the batch number captured at receipt, and every transfer and delivery tied to its document. What happens to the remaining 20, and how the three customers are contacted, follows the quarantine and release policy you’ve approved.
Recording Odoo lots and serial numbers from receipt to delivery
Recording happens at receipt, and the data then follows the product through transfers and deliveries 1. The quality of the identifier at the time of the operation is decisive: a mistake at receipt travels with the whole batch. For looking back later, Odoo offers a Lots/Serial Numbers dashboard and movement and traceability reports for locations and operations 1.
What about the stock we already have?
Turning the feature on does not rebuild old history automatically 1. For existing stock, we need a plan for re-assigning identifiers, plus a count and reconciliation before converting to tracking, so we know which physical quantity belongs to which batch. That’s why we start with selected products rather than switching the whole warehouse at once.
Testing Odoo lot traceability before go-live
Before go-live we run this test on sample data:
- receive a lot and a serial-numbered item separately
- a partial shipment
- a transfer between locations
- a return
Then we review quantities, identifiers, and the link to each document, and test who records, who corrects, and who approves. Our role runs from understanding your business and setting the scope, to preparing data and settings, role-based training, acceptance testing, go-live and follow-up. If you want to see the general receipt-and-delivery flow, the demo is a guided simulation of sales and inventory only; it doesn’t show advanced lot and serial tracking. You can see the application scope under Odoo apps, and what fits your sector under industries.
Use one lot-tracked product and one serial-tracked product in the trial, with the original receipt document, quantity, location and recipient. Ask the warehouse lead to start from the supplier’s identifier and find the delivery, then work back from a delivery to its receipt. Finance can separately verify that tracing the quantity and reviewing its accounting value remain distinct checks.
Frequently asked questions
Should I use a lot or a serial number?
Ask what you’ll need to answer later. A group of similar units means a lot; a single piece you must identify means a serial number.
Is the GTIN on the package enough?
No. A GTIN identifies the product type; identifying a batch or a piece needs the lot or serial number with it 2.
Can we switch tracking on for our current stock with one click?
No, because the feature doesn’t create old history. We plan re-assignment and counting first 1.
How do we review a return from an earlier batch?
Test recording the return against its delivery and batch identifier, then review the balance and movement in the report. The responsible person defines return acceptance, storage and inspection before the item is released again.
What should you send so we can agree the scope?
Send the list of products you want to track with a first classification (lot, serial, or no tracking), your real operations (receipt, transfer, delivery, return), and a specific question you want the movement history to answer. Through the contact page we’ll go through it with you and define the starting scope. You can also visit the home page or try the calculators for a range estimate.
References
- [1] Odoo 19 documentation, Lots and Serial numbers under inventory product tracking: enabling the feature, tracking types, using identifiers, and movement and traceability reports.
- [2] GS1, System Architecture, master data table: the distinction between class (GTIN), batch/lot (GTIN + batch or lot number), and instance (GTIN + serial number).
