Eight cartons and five loose pieces: should the count be 13 or 101? If each carton holds 12 pieces, the correct count is 101. This hypothetical example shows why reliable counting starts with units and locations, before the scanner. Odoo can organize counts by storage location and show differences for review before an adjustment is applied. ToDoOps helps configure and test that process. See our implementation approach.
How does a cycle count work by storage location?
According to the Odoo 19.0 documentation (Odoo reference), cycle counts run at the storage-location level. The Inventory Frequency field sets, in days, when a location is recounted after a count is applied, and a value of 0 means recounts are not scheduled automatically. How many days suit each location is your company’s risk policy: locations holding expensive or fast-moving items may be counted more often than others. Choose the frequency using item value, movement and previous discrepancies, then review it against results. For the wider inventory picture, read the Odoo inventory guide, and for other modules see Odoo apps.
How does counting by barcode work?
Per the barcode adjustments documentation (Odoo reference), you assign the user, the location, and the products. The worker then scans the location if multi-location is enabled, and then scans the product. Before you start you need correct barcodes on products and locations, the Barcode app, and a compatible device. In version 19 the expected quantity is hidden by default, so the employee counts what is in front of them without being influenced by the recorded figure; it can be shown when needed. The Count Entire Locations function requires Storage Locations to be enabled.
A hypothetical scene: the warehouse keeper scans the shelf barcode, then scans the items and enters quantities. When finance opens the result later, they see the location, the item, and the difference, so they ask about a specific cause rather than a general figure. This is an illustration, not a client case.
What does a barcode actually mean?
GS1 (GS1 reference) explains that a GTIN identifies a product type, and that the same code repeats across the units of that product. So not every scan refers to a unique unit. In Odoo the barcode identifies the product or packaging according to your setup. If the packaging unit is not configured correctly, scanning does not correct wrong units automatically.
Example: 101 pieces counted against 104 recorded
A hypothetical example: 8 cartons of 12 pieces each were found, plus 5 loose pieces. The recorded balance is 104 pieces.
| Item | Count (pieces) |
|---|---|
| Actual: 8 × 12 + 5 | 101 |
| Recorded | 104 |
| Difference | 3 short |
At a hypothetical cost of SAR 40 per piece, the difference equals SAR 120 before the adjustment is reviewed and approved. That figure is approximate for the example, since the accounting entry follows your valuation method and may not always equal 120. The amount is not a saving, nor a judgment on the cause of the shortage or on any employee.
The first things to review before approval: is there a transfer between two locations that was never recorded? Is the carton packaging set to 12 pieces? A unit mismatch or an unrecorded movement may explain the difference; establish the cause before changing the balance. To estimate an inventory and barcode application budget at a first pass, you can use the ToDoOps calculators. They are a general estimate of impact and budget, not the formula behind the example.
What is the difference between recording a count and applying the adjustment?
Recording a count is different from applying the stock adjustment. Receipts and deliveries may happen between the two, so review them before approval to avoid adjusting a quantity that changed after the count. Define the counting window and how movements within the location are controlled. Configure counting, review and approval permissions, then test them with team accounts. The owner gets an explainable difference, finance gets a basis for treatment, and the warehouse gets clear instructions.
What do we test before approving counts?
- Location and product barcodes read correctly on the chosen device.
- A location counted with cartons and loose pieces, confirming the packaging unit.
- A deliberate difference, then a review of receipts and deliveries before applying.
- Naming who counts and who approves.
The ToDoOps simulation lets you see how sales and inventory connect using hypothetical data, though it is not a complete simulation of counting.
What does ToDoOps handle?
We review your product, location, and barcode data and your warehouse scope. Then we configure the setup, test counting on real cases from your operation, and train the counting, review, and approval roles. The steps depend on your project.
Common questions
What does an Inventory Frequency of 0 mean?
Recounts are not scheduled automatically for that location, and you can still run a count manually.
Why is the expected quantity not shown while counting?
In version 19 it is hidden by default so the employee counts independently, and it can be shown.
Does every barcode scan mean a unique unit?
No. A GTIN identifies the product type and repeats across its units.
Is recording the count enough to update the balance?
No. The adjustment is applied after the difference and the movements in between are reviewed.
Start with one location
Pick one location, confirm its product barcodes and packaging setup, then contact ToDoOps and we will review the scope with you and arrange setup, testing, and training. For a first estimate try the calculators, and to see what we offer visit the homepage.
References
- Odoo — 19.0 documentation, Cycle counts and Barcode adjustments: counting by location, Inventory Frequency, barcode counting, expected quantity, and Count Entire Locations.
- GS1 GO — How do GS1 GTINs and barcodes work? Updated 30 August 2024: original page.
