Lot & Serial Tracking in Odoo 19: Setup and Use Cases

Matt Richard
Lot & Serial Tracking in Odoo 19: Setup and Use Cases

Traceability as an Operational Decision

Building on our previous article on how inventory flows work in Odoo 19, where we broke down stock movements, operations, and location structure, the next layer to understand is how inventory is identified and controlled as it moves through the system.

When traceability is enabled, Odoo no longer simply records that ten units of a product moved through the warehouse. It records which ten units, where they came from, where they went, and when each movement occurred. This distinction matters most when something goes wrong: a product recall, a quality issue, a warranty claim, or an operational discrepancy.

As outlined in our breakdown of inventory flows in Odoo 19 article, Odoo supports three tracking methods: by quantity, by lot, and by serial numbers. For most distribution environments, quantity tracking is sufficient. Lot and serial tracking exist for situations where knowing the identity of a product, not just the count, becomes operationally or strategically important.

This article breaks down how lot and serial number tracking work in Odoo 19, how to configure them correctly, and where implementation risks typically emerge.


Lots vs. Serial Numbers: Understanding the Distinction

Before configuring anything, it is worth being clear about what each method actually tracks and when each is appropriate.

Lot tracking assigns a shared identifier to a group of products received or produced together. Multiple units are tied to the same lot number, allowing those units to be managed and moved collectively. This is typically used when traceability is required at the batch level, such as a shipment of 500 units received from a supplier or items produced in a single manufacturing run. If an issue arises, the entire batch can be identified and traced across operations.

Screenshot 2026 04 02 121323

Serial number tracking assigns a unique identifier to every individual unit. Each item is tracked independently, with its own movement history throughout the system. This is required when products need to be managed at the unit level, such as electronics, machinery, medical devices, or any item with a distinct warranty or service lifecycle.

Screenshot 2026 04 02 121304

The distinction is operational as much as it is conceptual. Lot tracking allows multiple units to be handled under a single identifier, meaning quantities can be split, moved, or reserved across operations while maintaining batch-level traceability. Serial tracking enforces a one-to-one relationship between the product and its identifier, requiring each unit to be individually assigned, moved, and validated at every step.

The rule of thumb is straightforward: if a quality or operational issue would affect a group of identical products equally, use lots. If each individual unit needs its own distinct history, use serial numbers.

Choosing the wrong method has real consequences. Serial tracking applied where lot tracking would suffice introduces unnecessary operational overhead, requiring warehouse staff to assign and validate a unique identifier for every unit across receipts, transfers, and deliveries. Lot tracking applied where unit-level traceability is required creates gaps in visibility, making it difficult to isolate issues or trace specific items accurately.

Getting this decision right before configuration begins prevents significant operational friction later.


Enabling Lot and Serial Number Tracking

Lot and serial number tracking is activated in Inventory Configuration Settings, under the Traceability section. Enabling the Lots & Serial Numbers checkbox activates the feature system-wide.

Screenshot 2026 04 02 121616

Once this setting is enabled, additional traceability options become available.

Screenshot 2026 04 02 122056

Display Lots & Serial Numbers on Delivery Slips. When enabled, lot or serial number identifiers are printed on delivery documentation. This is useful when customers require this information for warranty tracking, product recalls, or internal validation.

Expiration Dates. When enabled, date-based tracking fields become available on lots and serial numbers. This allows products to be managed based on expiry, removal, and alert dates, and is covered in more detail later in this article.

Odoo also includes GS1 barcode support for lots and serial numbers. This is typically only relevant for businesses using GS1-standard labeling and scanning workflows.

Enabling the setting at the system level is only the first step. The feature must then be configured at the product level and, separately, at the operation type level.


Configuring a Product for Lot or Serial Tracking

On the product form, open the General Information tab and locate the Track Inventory field. Enable it, then select either By Lots or By Unique Serial Number from the dropdown, and save the product record.

Screenshot 2026 04 02 122503

From this point forward, Odoo will require a lot or serial number to be assigned whenever this product moves through a tracked operation.

One important consideration is how this change affects existing stock. If a product already has on-hand quantities without assigned lot or serial numbers, Odoo will display a warning when tracking is enabled. The existing inventory must then be corrected using an inventory adjustment to assign the missing identifiers.

Screenshot 2026 04 02 122842

This step should be planned carefully. Enabling tracking on an active product without a clear process can introduce inconsistencies in the traceability records that are difficult to correct later.


Configuring Operation Types

Enabling the feature at the system level and configuring it on the product are only part of the setup. Operation types must also be configured to control when lot and serial numbers can be created or used.

Screenshot 2026 04 02 123515

Navigate to Inventory Configuration Operation Types and open the operation type you want to configure — typically Receipts, Delivery Orders, or internal transfers.

Screenshot 2026 04 02 123618

In the Lots and Serial Numbers section of each operation type, two settings control how numbers are handled during that operation.

Create New lets you generate new lot or serial numbers during the operation. This is usually enabled for receipts, where products are entering your inventory for the first time.

Use Existing Ones lets you select lot or serial numbers that are already in the system. This is typically enabled for deliveries and internal transfers, so you’re always working with numbers that already exist in inventory.

By default, Odoo allows new numbers to be created on receipts, but not on deliveries. Existing numbers work the opposite way. This setup follows how inventory should flow. New numbers are introduced when stock comes in, and then those same numbers are used as the products move or get shipped out.

You can change these settings, but it should be done carefully. For example, if you allow new serial numbers to be created on delivery orders, you risk assigning numbers that were never actually received into inventory.


Assigning Lot and Serial Numbers at Receipt

When a purchase order is confirmed and a receipt is created for a product tracked by lot or serial number, Odoo requires those numbers to be assigned before the receipt can be validated. If they are missing, an error will appear prompting you to supply a lot or serial number before continuing.

Screenshot 2026 04 02 125559

To assign them, go to the Operations tab on the receipt and click Details next to the product line. This opens a Detailed Operations window where lot or serial numbers are entered alongside the quantity being received.

Access the Details window from the Operations tab

Access the Details window from the Operations tab

Screenshot 2026 04 02 131425

With lot tracking, you can assign a single lot number to the full quantity or split it across multiple lots if the shipment includes different batches. With serial tracking, each unit requires its own number, so every item must be entered individually.

Lot tracking example

A single lot number can be assigned to the full quantity.

Serial tracking example

Serial tracking requires a unique number for each individual unit.

If a large number of identifiers need to be assigned, they can be generated or imported in bulk using the Generate Serials/Lots or Import Serials/Lots options. This is commonly used when suppliers provide a predefined list of numbers.

Screenshot 2026 04 02 132240

Once all required lot or serial numbers have been assigned, the receipt can be validated.


Assigning Lot and Serial Numbers at Delivery

When a sales order is confirmed and includes products tracked by lot or serial number, Odoo automatically creates a delivery order and, if the product is available, reserves the corresponding lots or serial numbers from inventory based on the configured removal strategy.

To see what has been reserved, open the delivery order, go to the Operations tab, and click Details next to the product line. This opens the Detailed Operations window, where the assigned lot or serial numbers are displayed.

Access the Details window from the Operations tab

Access the Details window from the Operations tab to view reserved lot or serial numbers.

 

Screenshot 2026 04 02 172245

The removal strategy determines which stock is picked by default. These strategies are typically configured at the product category level, which we covered in our article on structuring product categories in Odoo 19. We will explore removal strategies in more detail in a separate article.

If needed, the assigned lot or serial numbers can be adjusted directly in this window. For lot-tracked products, quantities can be split across multiple lots by adding lines and adjusting the quantities. For serial-tracked products, each unit must be assigned its own number.

Lot tracking example

A lot number can be assigned to the full delivery quantity.

Serial tracking example

Serial tracking requires each individual unit being delivered to be assigned a unique number.

Once the correct lot or serial numbers have been assigned, saved, and validated, the assigned lot or serial numbers are recorded on the delivery slip and become part of the product’s traceability history.


The Lots/Serial Numbers Dashboard

All lot and serial numbers in the system are accessible through Inventory Products Lots/Serial Numbers.

Screenshot 2026 04 03 111848

This dashboard provides a centralized view of every identifier in the system, grouped by location. Each record can be expanded to show which lot numbers exist, which products are associated, and their on-hand quantities,

Screenshot 2026 04 03 112053

Clicking into an individual lot or serial number opens its detail record, which shows the product it belongs to, any internal reference tied to that identifier, and its company assignment in multi-company environments. It also surfaces the current inventory tied to that lot or serial number, including the on-hand quantity and the location where it is stored.

Screenshot 2026 04 03 112730

From this record, two smart buttons are available to further operationalize inventory visibility and traceability:

Location
Shows where the inventory associated with this lot or serial number currently exists in the warehouse.

Screenshot 2026 04 03 112934

Traceability
Opens the full traceability report for this identifier. This report captures every stock movement tied to that lot or serial number, including the source document (reference), product, date, and the locations involved. It serves as the primary tool for tracing a product forward or backward through its entire lifecycle, from supplier receipt through internal transfers to final delivery.

Screenshot 2026 04 03 113040

This is one of the core strengths of lot and serial tracking in Odoo. During a recall or quality issue, you have immediate access to the complete movement history of affected inventory, making it possible to trace its origin and distribution with precision.


Expiration Dates and FEFO

For businesses handling perishable or time-sensitive products, Odoo extends lot and serial tracking to include date-based controls through the Expiration Dates feature.

This feature is enabled separately in InventoryConfiguration Settings, in the Traceability section, and is only available once Lots & Serial Numbers has already been activated.

Screenshot 2026 04 03 113414

Once expiration date tracking is enabled at the system level, it must then be configured on each relevant product within the Inventory tab.

Screenshot 2026 04 03 114847

At the product level, four date rules can be defined. These are not entered manually per transaction. Instead, they are used by Odoo to automatically calculate dates for each lot or serial number based on the receipt date.

The four date types are:

Expiration Date
Defines when the product is no longer considered safe or usable. This is the primary date used for compliance and regulatory purposes.

Best Before Date
Indicates when the product may begin to decline in quality, while still remaining safe for use. This is typically used for informational or quality control purposes.

Removal Date
Determines when the product should be removed from available stock. This date directly drives the FEFO (First Expired, First Out) removal strategy in Odoo.

Alert Date
Specifies when the system should flag the product as approaching expiration. Once reached, the lot or serial number appears in expiration alerts and can trigger notifications for the responsible user.

Screenshot 2026 04 03 115015

Once these rules are configured, the corresponding dates are automatically assigned to each lot or serial number at the time of receipt, ensuring that every batch or unit is tracked according to its actual lifecycle. These dates can be viewed directly on the lot or serial number record or surfaced in the Lots/Serial Numbers dashboard by enabling the relevant columns.

FEFO and How It Works in Practice

The First Expired, First Out (FEFO) removal strategy relies on these expiration dates to determine which lots are selected when fulfilling orders.

Rather than selecting stock based on receipt date (as FIFO does), FEFO selects the lots with the nearest removal date first. This ensures that inventory approaching its removal threshold is consumed before stock that has more time remaining.

If a single lot does not have enough stock to fulfill the order, Odoo draws from the next lot in removal date order automatically, without any manual intervention required.


Traceability in Manufacturing

Lot and serial number tracking also extends into manufacturing when the Manufacturing module is installed.

When a manufacturing order is confirmed for a tracked product, a Lot/Serial Number can be assigned or generated, ensuring traceability continues through production. For serial-tracked items, Odoo handles each unit individually to maintain precise tracking.

We’ll cover this in more detail in a separate manufacturing-focused article.


Implementation Risks to Understand

Lot and serial number tracking is one of the more unforgiving areas of Odoo configuration. Several risks are worth understanding before enabling these features.

Enabling tracking on products with existing, unassigned stock. Turning on lot or serial tracking after stock is already in the system creates a mismatch. Odoo knows a quantity exists but has no identifier to associate it with. This requires a structured inventory adjustment process to correct and, if done improperly, can produce inconsistent records that persist in the traceability history.

Choosing serial tracking where lot tracking is sufficient. Serial tracking requires a unique identifier for every single unit moving through every operation. The operational overhead is significant. For products where batch-level traceability meets the business requirement, lot tracking is almost always the better choice.

Not configuring operation types correctly. If Create New is inadvertently left enabled for delivery orders, warehouse staff can assign serial numbers that do not exist in the system, creating phantom inventory records. Operation type settings should be reviewed deliberately as part of any traceability implementation.

Adding traceability as an afterthought. Lot and serial number tracking reshapes how every warehouse operation is performed. Receiving, picking, transfers, and adjustments all change when identifiers are required. Introducing this after a team has already formed its operational habits tends to create resistance and errors. It is significantly easier to build the discipline from the start.


When to Use Each Method: A Summary

The framework is simple, but the consequences of getting it wrong are not.

Lot tracking is best suited for situations where products need to be managed in groups. This is common in industries like food, beverages, pharmaceuticals, and chemicals, where a quality issue can impact an entire batch.

Serial tracking is the right choice when each unit needs to be treated as its own entity. This applies to products like electronics, machinery, and medical devices, where warranty, service, or compliance is handled at the individual level.

For most distribution environments, standard quantity tracking without lot or serial assignment remains the most practical approach. In many cases, the added complexity of traceability does not justify the operational overhead.

The wrong level of tracking can compromise how products are managed across the business, leading to inaccurate inventory, broken workflows, and unreliable reporting.


Final Thoughts

Lot and serial number tracking in Odoo is a high-impact capability that, when implemented correctly, provides full visibility into where inventory originates and how it moves through the business.

The configuration itself is straightforward. Enabling the feature, setting it on products, adjusting operation types, and assigning identifiers at receipt are all simple steps once the underlying logic is understood.

What tends to get overlooked are the decisions that come before configuration. Which products require traceability? At what level should it be applied? How should existing inventory be handled? How will identifier assignment fit into day-to-day warehouse operations?

These choices shape how effective the system will be in practice. When thought through early, traceability becomes a natural part of operations. When rushed or treated as a setup task, it often results in gaps, inconsistencies, and limited visibility when it matters most.


Frequently Asked Questions: Lot and Serial Number Tracking in Odoo 19

What is the difference between lot tracking and serial number tracking?

Lot tracking assigns a shared identifier to a group of products, allowing traceability at the batch level. Serial tracking assigns a unique identifier to each individual unit. Lots are appropriate when a quality event would affect an entire batch; serial numbers are used when each unit needs its own distinct history.

When should I enable lot or serial tracking?

When the business has a regulatory, quality, or operational requirement to trace products beyond overall quantity. Common use cases include food and beverage, pharmaceuticals, chemicals, electronics, and high-value manufactured goods.

What happens if I enable tracking on a product that already has stock?

A warning will appear. The existing inventory will need to be corrected using an inventory adjustment to assign lot or serial numbers retroactively. This process should be planned carefully to avoid creating inconsistent records.

How do I trace where a specific lot or serial number has been?

Navigate to Inventory → Products → Lots/Serial Numbers, select the identifier, and click the Traceability smart button. This opens a complete movement history showing every stock transaction associated with that identifier.

Can I print lot or serial numbers on delivery documentation?

Yes. Enable the Display Lots & Serial Numbers on Delivery Slips setting in Inventory → Configuration → Settings. Once enabled, these identifiers will appear on validated delivery slips.

What is the operational impact of enabling serial tracking? 

Significant. Every individual unit must have a unique identifier assigned at receipt and confirmed at delivery. This adds scanning and verification steps to every warehouse operation involving that product. The operational overhead should be weighed against the traceability benefit before enabling serial tracking.