In this article
- When a receipt becomes a false stock balance
- Trace each warehouse movement in Odoo ERP
- Separate receipt from put-away
- Make picking a controlled movement
- Record damage and obsolescence through Scrap orders
- Apply lots and serial numbers where the risk justifies it
- The indicators that show where control is failing
- Frequently Asked Questions
- What is inventory record accuracy
- Why does Odoo show stock that the picker cannot find
- Should damaged stock be handled with an inventory adjustment
- When should we use lots or serial numbers
Reliable stock information helps your team make delivery promises it can keep. When receiving, storage, picking and write-offs are recorded consistently, managers can identify stock problems earlier and plan replenishment with greater confidence. SERPA helps businesses align Odoo Inventory workflows with what actually happens on the warehouse floor.
Inventory record accuracy depends on whether the ERP records where stock is, who moved it and why. For Zimbabwean distributors using Odoo ERP, the practical question is not whether a receipt was processed. It is whether the goods reached the sellable location, were picked through an authorised route and were removed from stock with an auditable reason.
When a receipt becomes a false stock balance
The mistake we see most often is treating receipt validation as proof that stock is available for sale. In a staged receipt process, that is not what validation means. Odoo records the goods in a receiving location such as WH/Input when the receipt is validated. They become available in the storage location only when the internal transfer to WH/Stock is validated.
That distinction matters in a busy Zimbabwe warehouse. The receiving clerk may unload a supplier delivery, complete the receipt and move to the next truck. The physical put-away can happen later, or not at all. Meanwhile, the inventory report can give managers the impression that stock has arrived and can be dispatched.
Consider a distributor that completes a receipt while some goods remain in the receiving bay. Other goods are picked without confirmation, and damaged items are discarded without being recorded. The system balance and saleable stock can then diverge. A clear movement trail helps the team distinguish unfinished put-away, picking errors and unrecorded damage.
The receiving bay, storage area and dispatch zone should be reflected appropriately in the warehouse design. Staff need a clear view of where goods are and whether the required checks and transfers have been completed before committing them to a customer order.
Trace each warehouse movement in Odoo ERP
We recommend configuring warehouse activity as separate, validated operations. The design makes exceptions visible while they can still be investigated by the receiving manager, warehouse supervisor or finance team.
Separate receipt from put-away
Set up a staged incoming route when goods need inspection, counting or controlled put-away. The receipt puts goods into WH/Input. The internal transfer moves them into WH/Stock.
Why this matters: stock in a receiving bay may be physically present but not yet checked, shelved or available for picking. Treating it as sellable inflates available inventory and pushes the problem to dispatch.
Review unvalidated internal transfers every day. They are not administrative clutter. They are evidence that stock has stopped between the dock and its assigned storage location.
Make picking a controlled movement
Use staged outbound routes where the warehouse needs them: pick, then deliver, or pick, pack, then deliver. Require location barcodes for internal transfers and picking operations so staff scan the source and destination rather than relying on memory.
This is especially important where one warehouse serves several product families, customer channels or branches. Barcode validation creates an auditable movement trail. It also identifies whether a short pick came from a poor stock balance, an uncompleted transfer or a picker taking stock from the wrong location.
Where barcode controls form part of the warehouse design, require staff to record the relevant operation and location when stock moves. Consistent use helps reduce the investigation work created by unexplained relocations.
Record damage and obsolescence through Scrap orders
Damaged, expired, obsolete and unsaleable goods should move through Scrap orders, not informal disposal or a broad inventory adjustment. Odoo can create a Scrap order from stock, receipts, deliveries or internal transfers. It moves the goods to a virtual scrap location and allows the Moves History report to be filtered for scrapped quantities.
A documented Scrap order distinguishes disposal from a count correction and links it to a stock movement. Set suitable reasons, permissions and review procedures so that the record explains what happened.
If breakage or expiry happens routinely, do not conceal it in periodic count adjustments. Record it at the point of discovery, then investigate the pattern by warehouse, product and user.
Apply lots and serial numbers where the risk justifies it
Enable Lots and Serial Numbers for products that need traceability. The Odoo traceability report can show where an item came from, when it arrived, where it was stored and to whom it was sent.
For high-risk, regulated or high-value stock, product-level totals are insufficient. A lot or serial trail allows the warehouse team to investigate a discrepancy movement by movement. For low-value bulk consumables, the additional scanning discipline may not justify the overhead. The judgement should follow loss exposure and operational risk, not a blanket system preference.
The indicators that show where control is failing
A total stock variance is too late and too broad to manage the warehouse well. We set operational targets from the client baseline, then investigate exceptions by warehouse, product and user. The following indicators separate the problem into actions managers can correct.
| Indicator | What it shows | Why it matters |
|---|---|---|
| Inventory record accuracy | Comparison of system records with physical counts | Shows whether the system balance reflects physical stock. |
| Receipt-to-put-away delay | Time between receipt validation and completed internal transfer | Identifies goods waiting in WH/Input rather than reaching storage. |
| Unvalidated internal transfers | Transfers still open after receipt or relocation | Exposes stock that is between locations in the ERP and often on the floor. |
| Pick short-rate | Picks that cannot be completed at the expected quantity | Separates apparent availability from dispatchable stock. |
| Write-off quantity and value as a percentage of issues | Recorded scrap against stock issued | Makes damage, expiry and disposal visible rather than absorbed into adjustments. |
| Count-adjustment value as a percentage of inventory value | Value corrected through stock counts | Highlights whether counting is being used to repair process failures. |
In the distributor example, the value of the review is that it separates the causes of the discrepancy. Management can assign unfinished transfers to receiving, picking exceptions to dispatch and damaged-stock recording to warehouse control, rather than relying on a broad adjustment.
Another illustrative case is a multi-entity distributor whose branches move stock between a central warehouse and regional outlets. The team counted stock only at month-end and posted differences as adjustments. After separating internal transfers from deliveries and requiring barcode scans at both source and destination, management could see which branch movements remained unvalidated. The change did not eliminate physical errors by itself, but it made responsibility visible before the month-end close.
A validated receipt should be interpreted in the context of the configured warehouse route. Confirm that the goods have reached the intended location and completed the required checks before promising availability.
That is the operational control principle we apply during Odoo ERP implementation. It is also the question a COO should ask whenever the inventory report and the dispatch team tell different stories.
Frequently Asked Questions
What is inventory record accuracy
Inventory record accuracy reflects how closely the system records agree with physical stock. Use a clearly defined measure consistently and investigate the movements behind each discrepancy.
Why does Odoo show stock that the picker cannot find
The goods may be validated on a receipt but still awaiting an internal transfer from WH/Input to WH/Stock. They may also have been picked, relocated or scrapped without the relevant Odoo operation being completed.
Should damaged stock be handled with an inventory adjustment
Use a Scrap order when goods are damaged, obsolete or unsaleable. It records a traceable reason and movement to a virtual scrap location. Reserve inventory adjustments for genuine count corrections, then investigate why the correction was needed.
When should we use lots or serial numbers
Use them where traceability is needed to establish where an item came from, where it was stored and to whom it went. For low-value bulk stock, assess whether the control benefit outweighs the additional process discipline.
Contact SERPA to discuss your inventory routes, barcode workflows, damaged-stock process and branch stock visibility, and enquire for a tailored quote.