If two cartons of the same product expire on different dates, a single on-hand quantity is not enough to manage them. A lot tracking POS workflow needs to preserve which batch arrived, where it went, and which stock remains available. Otherwise, a dashboard can show healthy inventory while employees sell newer stock first and overlook older units.

This 2026 guide helps retailers compare lot and expiry tracking when buying or replacing a POS system. It covers receiving, checkout, transfers, returns, and the distinction between a warning and a blocked sale. POSadvice.com helps you compare POS systems; explain your batch-tracking requirements in our free POS quote request so proposals address more than basic stock counts.

Research basis: Official Odoo 19.0 and Lightspeed Retail X-Series documentation reviewed October 7, 2026. This is a documentation-based buying guide, not a hands-on product test or a promise of regulatory compliance. The suitability of any configuration depends on your products and demonstrated workflows.

Compare three approaches to batch-sensitive inventory

Lot and expiry tracking approaches for retail buyers
ApproachPotential fitMain limitation to investigateRequired demonstration
Connected POS and inventory suiteBusinesses needing batch records through receiving and checkout; Odoo documents both lot tracking and expiration features.A documented tracking feature does not necessarily force correct entry or block expired products.Receive two lots, sell from each, and show the resulting traceability records.
Retail POS plus a specialist inventory connectorStores retaining their checkout while adding dedicated batch management.The connection may synchronize only SKU totals rather than lot identity or expiry dates.Trace a specific lot across the connector, a return, and an interrupted synchronization.
Quantity-only POS with a separate batch registerLimited, simple workflows where staff can maintain reliable separate controls.Manual reconciliation can separate the checkout record from the actual batch sold.Reconcile shelf stock, batch records, and POS quantities after a complete trading day.

These are architectural choices, not three equivalent feature packages. A separate spreadsheet is not automatically adequate for a business with traceability obligations. Conversely, a complex suite may be unnecessary for stock that does not require batch-level control. Define the operating requirement first.

1. Separate SKUs, lots, serial numbers, and dates

A SKU identifies a sellable product or variation. A lot identifies a group of units associated with a batch. A serial number identifies an individual unit. Expiration information adds another attribute; it does not replace the lot identifier. Ten units of the same SKU can belong to multiple lots with different dates.

For an illustrative example, imagine 24 jars received in lot A and 36 jars in lot B. Both use the same retail barcode, but lot A reaches its relevant removal date earlier. The POS can correctly report 60 jars while still being unable to identify the 24 units employees should handle first.

Decide which dates your business actually manages: supplier expiration, best-before, internal removal, or an earlier inspection date. These terms are not interchangeable, and their legal or safety meaning can vary by product. Preserve supplier-provided information where required instead of replacing it with an arbitrary receipt-date calculation.

If your real requirement is tracking one unique device through a sale and return, read our serial-number POS buying guide. Batch management is a different problem because multiple interchangeable units can share the same lot identity.

2. Know what the official documentation establishes

Odoo 19.0 POS product documentation describes inventory tracking by quantity, lot, or serial number. It explains assigning or importing tracking numbers in the cart and displaying whether tracking is valid. Crucially, it says missing or invalid tracking numbers do not block a sale: a warning must be acknowledged before payment.

That distinction matters for buyers who need mandatory capture. Do not accept “supports lots” as proof that cashiers cannot bypass the step. Ask the implementer to demonstrate the exact behavior, identify any additional configuration or customization needed, and include maintenance responsibilities for that work in the proposal.

Odoo’s expiration documentation describes expiration information for products tracked by lot or serial number, date configuration, alerts, and first-expired-first-out inventory workflows. Those inventory capabilities do not by themselves prove that a particular POS checkout will automatically reject an expired item or always deduct the physically selected batch.

By contrast, the Lightspeed Retail X-Series expiry-date help page states that an expiry date cannot be added to a product or inventory in Retail POS. Treat this as an X-Series-specific limitation, not a conclusion about every Lightspeed edition or possible external integration. A proposed workaround needs its own evidence.

3. Start the demonstration at receiving

Prepare one test SKU with two lots and different dates. Receive them on the same purchase order, then receive another shipment containing an existing lot. Ask how the system handles duplicate identifiers, multiple suppliers, partial deliveries, and correcting a mistyped date after stock is received.

Check whether staff enter lot information once per delivery line, once per package, or for every unit. The answer affects labor and error rates. If suppliers provide machine-readable lot data, demonstrate the actual label format and scanner rather than assuming an ordinary product barcode contains the batch and expiry information.

Opening inventory needs particular care. A migration that imports 500 units of a product but loses their five distinct batches has preserved the total while discarding the purpose of the project. Count and identify existing lots, reconcile quantities by location, and document any genuinely unknown stock rather than assigning invented supplier lot numbers.

4. Match the recorded lot to the physical item sold

At checkout, ask how the system selects the lot: staff choice, a scanned batch label, a configured allocation rule, or a default. Each method can work only if it reflects what employees actually remove from the shelf. Automatic allocation creates false confidence if shoppers can choose a different batch freely.

Use the two-lot example to sell three units from the newer lot while older units remain. Inspect which lot decreases. Next, sell more units than are available in one lot and observe whether the transaction can span batches. Review the receipt and inventory history to see which identifiers remain connected to the sale.

Test an expired or quarantined example separately from a missing-number example. A warning about invalid tracking, an expiration alert in the inventory backend, and a checkout block are three different controls. If a hard stop is essential, make a successful block under an ordinary cashier login a written acceptance requirement.

Also distinguish FIFO from FEFO. First-in-first-out uses receipt sequence; first-expired-first-out prioritizes relevant expiry timing. A later delivery can expire sooner than an earlier one. Ask which date drives allocation and what happens when dates are absent, tied, or corrected.

5. Follow exceptions beyond the original sale

Return one unit from a known lot. The system should support your decision about whether that unit may re-enter sellable inventory or must be held separately. A customer return should not automatically become available stock merely because the product barcode matches an item in the catalog.

Move another batch between locations and inspect both the sending and receiving records. Confirm that lot identity and dates travel with the stock, and that discrepancies can be reconciled without replacing the transfer with an unexplained adjustment. Our POS stock transfer guide explains the related available, reserved, and in-transit quantities.

For a mock recall, choose one test lot and find its remaining locations, received quantity, transfers, adjustments, and linked sales. Anonymous retail sales may not identify each buyer, even when the sold batch is known. Ask what the records can actually establish; do not assume lot tracking creates customer contact information.

6. Pros and cons of each implementation

A connected POS and inventory suite

  • Pros: A shared product and stock model can reduce the number of separate records staff reconcile.
  • Cons: Configuration, migration, training, and possible checkout enforcement work can make implementation more involved than a basic retail register.

A specialist inventory connection

  • Pros: A dedicated inventory tool may add batch workflows while preserving a familiar checkout.
  • Cons: Integration coverage, synchronization delays, failed jobs, and split support ownership must be tested explicitly.

A separate manual batch register

  • Pros: A small operation can inspect and understand a simple record without a major software project.
  • Cons: Staff must maintain the link between physical lots and sales, and reconciliation effort grows with product variety, transfers, and exceptions.

The lowest subscription price is not necessarily the lowest operating cost. Count the work needed to receive, label, select, count, and investigate batches, including the work performed when the connection or normal procedure fails.

7. Price traceability as a complete workflow

Request itemized costs for POS software, inventory modules, connectors, scanners, label printing, data migration, staff training, and support. Identify who fixes an integration problem and who pays for compatibility work after an upgrade. Ask for a sample export before signing so you know what happens if you leave.

Use a simple, explicitly hypothetical comparison: if batch reconciliation currently takes three hours per week, an implementation that reduces it by one hour saves 52 hours over a year. Apply your own loaded labor rate, then subtract new labeling and maintenance work. Do not count hypothetical waste reduction as guaranteed savings.

Finally, run a pilot covering a full cycle: receiving, sale, return, transfer, adjustment, date alert, and traceability report. Reconcile the physical quantities to the software. Choose the system that preserves accurate batch identity through that cycle, not the one that merely displays an expiration field in a presentation.

Frequently asked questions

Is lot tracking the same as tracking inventory quantities?

No. Quantity tracking counts units of a product. Lot tracking distinguishes batches within that product, allowing records to retain batch identity and, when supported and configured, associated dates.

Does Odoo POS automatically block sales without a lot number?

Odoo 19.0 POS documentation says missing or invalid tracking numbers do not block a sale; a warning must be acknowledged before payment. Buyers needing mandatory capture should require a demonstration of the proposed enforcement.

Can Lightspeed Retail X-Series store inventory expiry dates?

The reviewed X-Series support page states that expiry dates cannot be added to a product or inventory in Retail POS. Any proposed external integration or workaround needs separate verification.

What is the difference between FIFO and FEFO?

FIFO means first-in-first-out and follows receipt sequence. FEFO means first-expired-first-out and prioritizes relevant expiry timing. A later delivery can expire earlier, so the two methods can select different stock.

Ready to find your perfect POS system?

Answer 3 quick questions and get free quotes from top providers.

Get Free Quotes →

Leave a Reply

Your email address will not be published. Required fields are marked *