Skip to content

Odoo Lot / Serial Numbers: Physical Asset Identity

Purpose: Explain how Odoo's Lot/Serial constructs represent specific physical items and serve as the anchor for asset-service binding.

Audience: Developers, operations teams, ABS integration engineers.


1. What Problem Lot / Serial Numbers Solve

In Odoo, products are generic definitions, not physical things.

  • A Product answers: What is this?
  • A Lot / Serial Number answers: Which exact one is this?

Lot/Serial constructs are Odoo's only intrinsic, first-class mechanism to represent individual physical instances of a product without inventing new models.


2. Core Concepts

Image

Image

Image

2.1 Product (Generic Definition)

Defines type, specifications, pricing, BoM, category

Example: * "Electric Motorcycle E3H" * "Home Energy System 1.2kWh"

A product does not represent an owned asset.

2.2 Lot / Serial Number (Physical Identity)

A Lot / Serial Number represents a specific physical instance of a product.

Key properties: * Belongs to exactly one product * Created when: * Manufactured * Received * Or manually assigned * Moves through inventory with stock operations

Mapping to OVES terminology: * VIN → Serial Number * ProductItemID → Serial Number * Battery Pack ID → Serial Number

Principle: If something can be pointed at in the real world, it should be a Serial Number in Odoo.

2.3 Lot vs Serial

Concept Meaning Typical Use
Serial Number One unique ID per physical unit Vehicles, batteries, electronics
Lot Number One ID shared by many identical units Bulk items, batches

For asset-based services, always use Serial Numbers, even if Odoo's UI calls the model stock.lot.


3. Data Model Position

Image

Image

Image

Conceptual structure:

Product
   |
   | 1:N
   v
Lot / Serial Number
   |
   | flows through
   v
Stock Moves / Pickings

Key points: * The Lot/Serial is not owned by Sales * It is owned by Inventory * Sales only reference it indirectly through delivery

This separation aligns well with asset-service architecture.


4. Lifecycle of a Physical Asset

Canonical lifecycle for a specific physical item:

Step 1: Product is defined

  • Category: Goods
  • Tracking: By Serial Number
  • No asset exists yet

Step 2: Serial is created

Happens when: * Manufacturing order completes * Vendor receipt is validated * Asset is imported into stock

At this point: * The serial exists * It is unowned, sitting in a location

Step 3: Sales Order is confirmed

  • Still generic
  • No serial binding required yet

Step 4: Delivery (Stock Picking)

Critical moment:

  • A specific serial is selected
  • The serial moves from:
  • Warehouse → Customer location
  • Ownership is implicitly transferred

This is the first moment Odoo can say:

"This exact physical thing now belongs to this customer."

Step 5: Traceability Becomes Immutable History

After delivery, Odoo knows: * Customer * Product * Serial * Date * Sales Order * Invoice

This record is auditable and stable, making it ideal as the trigger point for ABS service binding.


5. Why Lot / Serial Is the Right Anchor for ABS Integration

ABS system requirements: * Which exact asset * Owned by which customer * At what time * Under what service plan

Odoo Lot/Serial provides, without customization:

ABS Requirement Native Odoo Source
Asset identity stock.lot (Serial)
Customer res.partner via delivery
Sale context sale.order
Commercial intent sale.order.line
Ownership event stock.picking (done)

The serial number is the perfect join key between Odoo and ABS.


6. What Lot / Serial Is Not

Lot/Serial does not: * Represent service entitlement * Represent warranty duration * Represent privilege or subscription * Enforce behavior

That is by design.

Those meanings belong to: * Service products (commercial) * ABS ServicePlan objects (execution)

Overloading Lot/Serial with service semantics would interfere with existing operations.


7. Availability

Odoo Versions

Lot/Serial tracking is a core inventory feature, stable across modern versions.

Deployment Types

Deployment Availability
Odoo Cloud Yes
Odoo.sh Yes
On-Prem Yes

Editions

  • Available in Community and Enterprise
  • No dependency on optional apps

This makes it one of the safest architectural anchors available.


8. Design Implications

Serial Number = Canonical representation of a specific physical asset in Odoo.

Design layers: * Sales Order expresses intent * Delivery + Serial expresses fact * Integration event expresses meaning * ABS ServicePlan enforces reality