[Blog](<https://nightlysoftware.com/en/blog>)Inventory 

# Barcode receiving: test labels, lots and duplicate events

Scanning the same product twice can be correct; recording the same receiving event twice is not.

**[Jonathan Perez](<https://nightlysoftware.com/en/company#jonathan-perez>)**Co-founder · Design, product and sales October 8, 2026 · 8 min read 

**Short answer**

Before accepting scanner-based receiving, check what each label identifies: product, packaging, lot, serial or a specific logistics unit. Show recognized fields and quantity before confirmation. Distinguish a new intentional scan of another case from a retry of the same event, and retain unknown or incomplete labels as reviewable exceptions.

## Receiving labels, quantities and event identities

Ten checks cover normal reads, label exceptions and repeated confirmations.

[Download CSV worksheet](<https://nightlysoftware.com/plantillas/codigo-barras-recepcion-en.csv>)

In this guide

-   [What does the system know after a scan?](<https://nightlysoftware.com/en/blog/barcode-goods-receipt#label-meaning>)
-   [Does one read add one piece or one case?](<https://nightlysoftware.com/en/blog/barcode-goods-receipt#scan-quantity>)
-   [Worked example: three cases and four loose pieces](<https://nightlysoftware.com/en/blog/barcode-goods-receipt#scanning-example>)
-   [How do you proceed with a damaged or incomplete label?](<https://nightlysoftware.com/en/blog/barcode-goods-receipt#label-exceptions>)
-   [What should you bring to a scanner test?](<https://nightlysoftware.com/en/blog/barcode-goods-receipt#receiving-worksheet>)

## What does the system know after a scan?

A scanner supplies characters; software must interpret them using the catalog and configured rules. A product code may contain no lot or expiry date. Another code may identify a twelve-piece case, one piece or an individual logistics unit. Ask to see the raw value and interpreted fields before stock increases. A scanner beep proves a read, not that the goods were correctly recognized or received. These are separate steps to observe.

Odoo documents product-level tracking prerequisites and mandatory or optional lot/serial scanning. Optional scanning permits manual entry; the described GS1 lot/serial codes need compatible equipment, including 2D capability in that case. [Lot and barcode reference](<https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/barcode/setup/serial_numbers_lots.html>). Test your actual labels and scanners rather than assuming every device interprets every symbology.

## Does one read add one piece or one case?

That depends on the recognized packaging. Odoo describes scanning configured packaging to add its contained units, with packaging belonging to a specific product. [Packaging reference](<https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/product_management/configure/packaging.html>). Confirm the factor with the supplier first. The [unit conversion guide](<https://nightlysoftware.com/en/blog/inventory-unit-conversions>) covers changed contents; here the question is whether a read selects the right presentation rather than a similar item code.

## Worked example: three cases and four loose pieces

**Synthetic RC40 scenario**

An order requests 40 BAR-A pieces, lot L01. SAMPLE-CJ12 is an illustrative alias for a twelve-piece case, not an assigned GS1 identifier. Physical cases share a product/pack code. Each intentional scan has a distinct event.

| Event |Read or entry |Pieces added |Running total |
| --- | --- | --- | --- |
| E01 |First SAMPLE-CJ12 case |12 |12 |
| E02 |Second case, same code |12 |24 |
| E03 |Third case, same code |12 |36 |
| E04–E07 |Four individual pieces |4 |40 |
| Retry E03 |Same identity and content |0 additional |40 |
| Confirm RC40 |40 accepted pieces |One receipt of 40 |40 received |

Do not discard E02 and E03 because their raw values match: they represent different cases and intentional scans. Resending E03 after losing its response does not represent another case. Require retained event and receipt identities, or equivalent verifiable protection. If a button simply adds each incoming message, a communication failure may add twelve pieces that never arrived. Check the resulting movement history, not just the screen’s running count.

## How do you proceed with a damaged or incomplete label?

Agree a controlled alternative: manual entry, document lookup or authorized relabelling. Retain available original data, who completed a field and how they checked product and lot. A label identifying only BAR-A must not generate L01 by assumption. If a required lot cannot be confirmed, receive as pending under policy without releasing it for sale. Also test similar labels for different products and a label belonging to another order.

-   Normal: three cases and four pieces reconcile to 40, with the selected lot and one confirmed receipt.
-   Exception: a fourth case would bring entry to 52; excess requires the agreed decision rather than silent acceptance as 40.
-   Retry: repeating E03 or RC40 preserves one effect per identity; querying a lost confirmation shows whether the receipt exists.
-   Correction: rectify a read of the wrong pack before confirmation, retaining a reason if it already created a movement.

## What should you bring to a scanner test?

Use the [barcode receiving worksheet](<https://nightlysoftware.com/plantillas/codigo-barras-recepcion-en.csv>) with normal, damaged and different-pack labels. Retain raw reads, recognized fields and the final movement; hide sensitive details without changing the format. See [partial purchase receipts](<https://nightlysoftware.com/en/blog/partial-purchase-receipts>) for outstanding quantities and [lot traceability](<https://nightlysoftware.com/en/blog/lot-traceability-recall-test>) for later movements. An [inventory management system](<https://nightlysoftware.com/en/solutions/inventory-management-system>) should test this flow with the equipment and connectivity receiving staff will actually use.

## Bring labels your receiving team actually uses

In a free consultation we can review what each label identifies and what the operator must confirm.

-   A piece label, a case label and a damaged label.
-   An order and delivery document with product, lot and quantities.
-   Scanner model and a duplicate read or confirmation incident.

[Book a free consultation](<https://nightlysoftware.com/en/book>)[Ask on WhatsApp](<https://wa.me/524622212236?text=I%20want%20to%20test%20barcode%20receiving%3B%20I%20have%20labels%2C%20an%20order%20and%20a%20duplicate-event%20example.>)

Related

-   [Inventory management system](<https://nightlysoftware.com/en/solutions/inventory-management-system>)
-   [Distribution management software](<https://nightlysoftware.com/en/solutions/distribution-management-software>)

## Frequently asked questions

### Does reading a code record a receipt? 

Not necessarily. It may identify a product or add a provisional quantity. Check which action confirms stock entry and what document it creates.

### Should two reads of the same code be blocked? 

Not always: different cases may share it. Recognize repetition of the same event, distinguishing that from a new intentional scan.

### Can I enter a lot manually? 

If your policy and configuration allow it. Verify the source and retain who entered it; do not fill the lot automatically through guesswork.

### Must all scanners be replaced? 

First test symbologies, print quality and existing devices. Compatibility depends on code type, scanner and software; a generic demonstration cannot determine it.

## Sources

1.  [Lot and serial barcodes in Odoo 19](<https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/barcode/setup/serial_numbers_lots.html>)Odoo 
2.  [Packaging and scanning in Odoo 19](<https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/product_management/configure/packaging.html>)Odoo 

Last updated: October 8, 2026

## Keep reading

[InventoryOct 8, 2026

### Inventory in cases, pieces and kilos: test the conversions](<https://nightlysoftware.com/en/blog/inventory-unit-conversions>)[InventoryOct 8, 2026

### Partial purchase receipts: arrived, outstanding and rejected](<https://nightlysoftware.com/en/blog/partial-purchase-receipts>)[InventoryOct 8, 2026

### Warehouse locations: find goods and record every movement](<https://nightlysoftware.com/en/blog/warehouse-bin-locations>)

---

Canonical: https://nightlysoftware.com/en/blog/barcode-goods-receipt

Updated: 2026-10-08

Description: Test what a scan recognizes, how many pieces it adds and how damaged labels, missing lots and repeated receipt events are handled.

