Lorixen.

Does Your Stock App Need Lot Tracking, or Is a Product Code Enough?

Use a product code to identify what an item is. Add lot tracking when the team must distinguish groups of that same product and follow their movements. A barcode scanner does not make that decision for you: scanning a product code may identify the product without identifying its batch.

For a commissioned stock app, begin with the question you need to answer later. Can you identify which incoming batch supplied a particular delivery, or where the remaining quantity from that batch is stored? If that matters, specify batch identity and movement records together. This is operational planning, not a claim of regulatory compliance, a recall procedure or a sector-specific safety system.

A batch is not an individual asset

Odoo's official lot-number documentation describes lots as typically representing a batch received, stored, shipped or manufactured in-house. It describes manufacturers assigning lot numbers to groups sharing properties, supporting traceability through their lifecycle.

That is different from identifying each reusable item individually. Several units can belong to one lot. If the question is who holds one particular tool, individual asset tracking may be more suitable. If the question is which deliveries contained material from a particular production group, the lot is the relevant grouping. Some projects may need both, but neither should be added simply because the scanner supports it.

Decide which products require the extra tracking. Making every low-value consumable a batch-controlled item can create recording work that the team has no reason to use. Conversely, a requirement for traceability is not satisfied by a text field staff may leave blank whenever the warehouse is busy.

Keep supplier markings and your own identity distinct

Ask what staff will see on incoming goods. Is there a supplier lot reference? Is it legible? Can different suppliers use the same text? Define the combination that uniquely identifies a batch in your application, rather than assuming every printed number is globally unique.

You may need an internal identifier as well as the original marking. Preserve their relationship so staff can search from either. Odoo's documentation provides an example of this distinction: it describes an internal reference that can record a warehouse lot or serial number different from the supplier manufacturer's number.

Creating a lot record must also be distinguished from assigning stock to it. The Odoo guide explicitly says that creating a lot number reserves it for a product but does not assign it. In your specification, make the quantity-bearing event clear: receipt, production completion or another agreed movement. A newly typed identifier is not evidence that any goods arrived.

Capture quantities through splits and movements

In a hypothetical materials business, one delivery draws from two batches. Recording only the product and total dispatched quantity loses the batch split. Ask the app to retain the quantities taken from each lot for that movement.

Likewise, moving part of a batch to another storage location should not force staff to invent a new batch unless your actual process creates one. Separate the identity of the group from its current location and remaining quantity. If a process combines or transforms materials, agree whether the app must record input-to-output relationships. Simple receipt-and-dispatch tracking should not be presented as manufacturing genealogy.

Decide what happens when the marking is missing or unreadable. An explicit unresolved-traceability state may be more honest than choosing a convenient existing batch. Staff need a route to resolve the problem, and the software must apply whatever movement restrictions your approved process requires.

Plan the first day and corrections

If stock already exists, decide how its batch information will be established before relying on the new feature. Odoo's guide warns that existing stock requires an inventory adjustment to assign lot numbers when tracking is enabled. That is a supplier-specific setup instruction, but it highlights a general commissioning question: where will the opening data come from?

Do not fabricate historical batch assignments just to make an import complete. Keep unknowns visible and agree a reviewed opening position. A migration can preserve only information you actually have.

After launch, distinguish correcting a mistyped label from changing which physical goods a completed movement concerned. Keep enough correction history to explain the change. Do not let a casual edit silently rewrite the meaning of earlier deliveries.

Prove traceability with a small test

For your stock-workflow app, write a short scenario into the acceptance criteria:

  • Receive the same product in two separately identified batches.
  • Search using the supplier marking and the internal reference where both are needed.
  • Move part of one batch between locations without losing its identity.
  • Dispatch a quantity split across the two batches and inspect the recorded split.
  • Start from one batch and find its recorded incoming and outgoing movements.
  • Show how an unknown opening batch and an unreadable incoming marking are handled.
  • Correct an entry without silently altering the historical meaning of completed movements.

If expiry management, quarantine, recalls or manufacturing traceability are required, specify and review those as additional workflows. A lot field and a movement report do not by themselves prove that those wider obligations or safety processes have been met.

Source boundary

The Odoo 19 guide supports the batch concept, alternative internal reference, distinction between creation and assignment, and its existing-stock setup warning. The proposed identity rules, unknown-data handling, split-movement acceptance tests and correction controls are requirements for your implementation, not verified automatic features of every inventory system.

WhatsAppLet’s talk