Skip to content

Just launched — ask us anything — usually answered within a working day

For online shops

Inventory scanners: receive stock without double counts

Test a small-business inventory scanner at receiving: carton quantities, existing receipts, unknown codes and final approval before stock becomes available.

· 11 min read

Contents

In short

  • Choose an inventory system with a scanner by testing 4 receiving decisions: which receipt is open, what unit the code represents, whether the scan duplicates earlier work and who approves the posted quantity. In the exercise, 2 cartons of 6 units should produce 12 units, not 2 or 24.
  • A product code, a packaging code and a receipt reference can cause different actions. A successful beep does not establish a correct stock posting.
  • Odoo 19 documents a receipt command that creates a new receipt even when matching contents already exist. Open the intended document deliberately.
  • Keep unknown codes outside normal stock until someone checks the product definition and quantity conversion.
  • AirPost is a peer-to-peer fulfilment network: online shops have their orders packed and dropped at a parcel point by verified people near their customers, who earn a fee per parcel from home. No warehouse, no minimum order volume.

A scanner can find a receipt, add one item, add a carton or create a product. Check which action each code produces. This receiving guide uses Odoo documentation for specific examples and provides an acceptance test for your chosen inventory application.

What should you decide before choosing a scanner?

List the goods and codes your receiving person will actually handle. Include a single unit, an unopened supplier carton and two similar variants. Record which code identifies the item and how many base units it represents. If you buy cartons and sell individual units, the receiving operation must convert correctly. Do not assume every barcode is an instruction to add one. Photograph or copy the relevant labels into your own receiving instructions so the operator can distinguish the carton label from the product label.

Next decide where the information comes from. An expected receipt tells you what should arrive. Physical checking tells you what did arrive. The application needs an explicit step for differences, damaged goods and unrecognised items. Ask for a demonstration using your own labels and unit definitions. A prepared vendor demonstration with unrelated goods does not test the carton conversion or exception that matters to your shop. Keep software version and configuration with the demonstration notes.

Check that scans enter the correct application field and the result is readable. A keyboard-style scanner can enter a valid code in the wrong box. For retail checkout, use the Shopify POS scanner comparison; this test concerns receiving quantities and documents.

How can one carton scan mean six stock units?

In your item definitions, separate the base selling unit from each accepted incoming packaging. Give the packaging a known contained quantity and the correct barcode mapping. A supplier carton holding six individual units is different from a customer-facing product sold as a six-pack. Decide whether the six-pack is its own sellable item or simply a receiving conversion. The receiving person should see the resulting base-unit quantity before approving it. That display is more useful than a beep alone.

The Odoo 19 product configuration documentation distinguishes packages from product packaging. It says scanning a packaging barcode records its included units; its example is one pack representing twelve units. Its packaging configuration page requires a quantity and reference unit and provides packaging barcodes. Use those definitions to test your configured conversion rather than treating a supplier’s carton as an ordinary single-item code.

Receiving action in the exerciseExpected posted quantityResult to investigate
Scan 2 unopened cartons mapped to 6 each12 individual units2 means the carton conversion was not applied
Open both cartons and scan all 12 unit codes instead12 individual unitsUse this route without also posting carton scans
Post both carton scans and all contained unit scansDo not accept this workflow24 duplicates the same physical goods
Receive 1 carton and 3 loose units6 + 3 = 9 unitsCheck that both code types resolve to the same base item
Chosen quantities for a receiving test, not a customer case. The expected result assumes the described carton mapping and individually counted goods.

Specify the accepted method. Use a carton code only after the appropriate quantity check; for an incomplete carton, process the actual contents. Never post both methods for the same goods. If carton contents change, check the conversion and open documents before the next receipt.

Are you opening the expected receipt or creating another one?

Ask the operator to identify the receiving document before touching the product codes. Use its reference, supplier and expected items together. The document should clearly distinguish this delivery from an earlier partial receipt. If you deliberately allow receipts without a purchase order, write down who approves that exception. Otherwise an unexpected delivery can enter stock through a convenient button without anyone deciding whether it belongs to your shop or how its quantities should be interpreted.

A documented Odoo behaviour makes this distinction concrete: in Operation types and commands, scanning Receipts WHIN creates a brand-new receipt, even if its contents match an existing receipt. The same page describes printing an operation reference barcode that can later open the specific operation. A create command and a document reference therefore serve different purposes. Test both in a safe environment and label the intended route clearly at your receiving station.

After receiving the exercise cartons, return to the screen as an interrupted operator might. Check whether the application reopens completed work, creates new work or warns about status. Duplicate prevention needs a document or event control that distinguishes a repeated attempt from a genuine additional delivery.

Ship locally without your own warehouse

No minimums, no fixed fees. Free to sign up.

Sign up free

What happens when the application does not recognise a code?

Define an exception shelf or tray and a review owner. Keep the physical goods and their supplier label together while the identity is checked. Compare the purchase details, variant, base unit and contained quantity. Do not attach an unknown barcode to whichever existing item has the closest-looking name. A product lookup can help populate data, but the shop still needs to decide that this is the exact item it purchases and sells.

With the relevant lookup feature enabled, Odoo’s product and location barcode documentation describes a Create New Product option for an unrecognised scanned product. It searches the lookup database, creates a product definition and adds the item to the receipt. It also says the created product remains in the product list if the transfer is later cancelled, unless deleted. Cancelling a receiving operation therefore does not necessarily undo the product-data change.

Choose who may create a product and who may assign a new code to an existing definition. In a small shop, one person may do both jobs, but the check should still be explicit. Test an unfamiliar code with the permissions of the actual receiving user. Record the visible options and the effect of cancelling the test. This reveals whether your exception process is supported by the configured application or merely written in a document that users can bypass.

At what point should a scan become accepted stock?

A scan identifies or enters information. Decide separately when the receipt is accepted and whether the goods are available for sale. Someone should compare expected and actual quantities, review exceptions and confirm the correct destination. For goods awaiting inspection, use a location or state whose availability behaviour you have verified. A label saying quarantine does not stop sales if the application still includes that quantity in the storefront’s available figure.

The Odoo commands page defines VALIDATE as confirming that an operation is correct and ready to complete. Place that confirmation at the point where your receiving checks are finished. Test a partial delivery too: receive fewer units than expected, inspect the displayed balance and check how the unreceived quantity remains represented. Never change a received quantity to the expected amount simply to make the screen look complete. The supplier’s expectation and your physical count are different evidence.

If you use advance shipment information, retain it alongside the receiving result. It can prepare the expected lines but cannot prove their arrival. The existing guide to advance shipping notices and stock arrivals explains the handover information. Your scanner process should close the gap between those expected lines and the actual units that arrived, including any unresolved difference.

What test should the system pass with your own labels?

  1. Create a safe test receipt with two cartons of six units and record the expected base-unit total of twelve.
  2. Open that particular receipt and scan one carton; inspect the item, unit and displayed quantity.
  3. Finish through the agreed carton method and confirm the receipt only after the physical check.
  4. Repeat the document-opening attempt and check how duplicated work is prevented or detected.
  5. Test a loose unit, a similar variant, an unknown code and a partial delivery separately.
  6. Ask another person to run the instruction after an interruption and compare the posted result with the counted goods.

Keep failed cases as specific requirements. The phrase scanner did not work is too broad. The phrase a second receipt command created another twelve units for the same delivery tells you what to control. Test the configured version after a change to packaging, barcode mapping or receiving permissions. Focus on the affected case rather than repeating unrelated demonstrations. The result should be an instruction that lets someone identify a problem before incorrect stock becomes a new sales promise.

Why does a stock-count error affect your fulfilment budget?

Suppose a count error produces two extra corrective small-parcel shipments in a chosen costing exercise. AirPost’s platform component is €0.85 and its recommended small-parcel sender fee is €2.25. The two components total €3.10 per parcel, or €6.20 for two. Constants and the pricing structure were checked on 14 October 2026. These are euro amounts; the agreed sender fee can differ, and labels, materials and returns are excluded.

Track your own correction costs and causes. With an AirPost sender, agree how physical receipts and exceptions are confirmed. AirPost’s local fulfilment arrangement covers storing, packing and parcel handover; these Odoo examples do not establish an Odoo integration or an AirPost scanner system.

Frequently asked questions

How do I set up an inventory system for a small business with a scanner?

Define item and packaging codes, choose the receiving document route, specify the approval step and test your own labels. Start with a controlled delivery before using scans to update live stock.

Can a barcode scanner count a whole box of products?

The application can treat a mapped packaging code as its contained quantity. Verify the configured number of base units. Scanning the box and then posting every unit can count the same goods twice.

Does scanning a barcode automatically update inventory?

That depends on the application, screen and operation. A scan might find a product, enter a quantity or open a document. Inspect the resulting posting and the final confirmation step.

What should I do with an unknown inventory barcode?

Keep the goods separate while the responsible person checks the product, variant and unit. Review whether lookup or product creation changes your product list, including what remains after cancellation.

Can I use a phone instead of a dedicated inventory scanner?

Check the application’s supported input methods and test them with your real labels. Compare the resulting workflow, readable confirmation and exception handling rather than assuming either device type gives correct stock automatically.

Sources

Want someone else to receive stock and pack customer orders? Create an AirPost shop account and agree a counted handover with clear item codes, units and an exception contact.

Agree your first receiving handover

Share this article

Read next

Ship locally without your own warehouseNo minimums, no fixed fees. Free to sign up.Sign up free