In this article
- Challenge company stock is not branch stock
- Case illustration Sable Traders
- Approach configure the transfer path before automating replenishment
- Case illustration an unresolved transit balance
- Results measure the control, not only the stock total
- Make transfer status meaningful
- Frequently Asked Questions
- What should finance review when goods enter transit
- Can a receiving branch validate a receipt before the truck arrives
- Which Odoo report should operations review each day
- Should we use an inventory adjustment when a transfer arrives short
Reliable branch stock transfers help your team promise delivery with confidence, trace goods in motion and resolve shortages before they disrupt customers. When dispatch, transit and receipt are clearly recorded, managers can distinguish stock the company owns from stock a branch can actually supply.
Poorly controlled multi-branch stock transfers can create phantom stock. The company may still own the goods, but the receiving branch treats forecasted stock as on-hand stock. For Zimbabwean enterprises operating more than one warehouse, the control issue is not total inventory. It is whether each branch can prove where a unit is, who last handled it, and whether the physical movement agrees with the Odoo ERP record.
A well-designed Odoo transfer workflow separates the supplying warehouse, transit and receiving warehouse. SERPA helps teams align that workflow with physical handovers so that operations and finance can follow stock movements with greater confidence.
Challenge company stock is not branch stock
For a same-company warehouse transfer, configure linked dispatch and receipt operations with an appropriate transit stage. Confirm the available workflow and status behaviour in the business’s installed Odoo version before rollout.
The receiving branch needs to distinguish expected stock from stock physically received and available. The transfer process should preserve location and custody information throughout the journey. Phantom stock arises when expected quantities are treated as confirmed branch availability or when dispatched goods remain unresolved in transit.
The mistake we see most often is a team checking total company stock rather than filtering by warehouse and transit location. Total stock can look correct while one branch is short, another is overcommitting sales, and a transfer has been sitting in transit without investigation.
This is especially relevant where a Zimbabwean business holds stock in Harare and Bulawayo. The physical distance between the two branches is operationally meaningful, even though both locations sit under one legal entity in Odoo. A stock figure that does not distinguish between Harare warehouse, transit and Bulawayo warehouse cannot support reliable fulfilment decisions.
Case illustration Sable Traders
Consider an illustrative hardware distributor with warehouses in Harare and Bulawayo. Harare records a dispatch to the receiving branch, but branch staff treat the incoming shipment as stock available to promise before it arrives.
The truck arrives short. If the receiving user accepts the expected quantity without a physical count and any applicable lot or serial verification, the shortage remains hidden until a later stock count. A separate receipt is useful only when it records what actually arrived.
Retain the transfer reference, counted quantity and discrepancy reason. This gives managers evidence to investigate the shortage and helps finance understand any approved correction.
Approach configure the transfer path before automating replenishment
The right Odoo inventory management design starts with a clear operating decision: branches must not sell or allocate transit quantities as on-hand stock. If a business cannot enforce that distinction in daily work, adding reordering rules will only generate more unresolved movements.
For warehouse replenishment, design and test a sequence suited to the business’s Odoo configuration.
Confirm the location and route configuration needed to track dispatch, transit and receipt in the installed system.
Define the supplying warehouse and replenishment route for each receiving branch.
Apply the appropriate routes to affected products and test replenishment rules before automating routine orders.
Confirm dispatch when the goods physically leave and record their movement into the appropriate transit location.
Count and verify the receiving shipment before validating the receipt. Check quantity, product and any applicable lot or serial number against the linked dispatch.
Investigate any difference against the transfer reference. A physical inventory adjustment may be necessary, but it must preserve the reason and the movement trail.
The step teams skip is the receiving count. A user sees the expected quantity on the transfer and assumes that it is the delivered quantity. That assumption defeats the point of a separate receipt operation.
For an Odoo ERP implementation, we also define user ownership. The dispatch user owns confirmation that stock left the supplying warehouse. The receiving user owns the physical count. An operations manager owns aged transit exceptions. Finance reviews the adjustment trail because unexplained stock corrections can conceal a process failure.
Case illustration an unresolved transit balance
Consider an illustrative retailer with a dispatched shipment still awaiting physical receipt at another branch. The receiving team should see the shipment as expected supply and avoid representing it as stock already available for collection.
If the shipment remains unresolved beyond its expected arrival, match the dispatch, transit record, receiving document, responsible users and movement dates. Record the actual delivery outcome and investigate any difference before approving a correction.
For a small operation with one warehouse, we would not add this multi-step transfer workflow. There is no inter-warehouse movement to control. For a multi-branch operator, however, bypassing transit removes the evidence needed to distinguish a delay from a stock loss.
Results measure the control, not only the stock total
Review linked transfers regularly using the movement and location reports available in the installed system. Compare planned demand, actual movements, status and stock held in transit so that exceptions are visible while the team can still act.
The daily review should match:
Supplying delivery and receiving receipt. Confirms that the two operations belong to the same transfer.
Product, lot or serial number. Prevents a correct quantity from masking the wrong item or traceable unit.
Transit quantity and receiving quantity. Identifies shortages, overages and receipts posted without count verification.
Responsible user. Creates accountability at dispatch and receipt.
Scheduled and actual dates. Separates normal transport time from an aged exception.
For management reporting, we use measurable indicators derived from Odoo movement, location, count and valuation fields. These indicators should be configured and validated for the organisation’s operating model.
Transit units and value. How much company-owned stock is physically between branches?
Count and value of Waiting or To Do transfers. Which expected receipts require action?
Median and maximum transit age. Are exceptions isolated or becoming normal practice?
Dispatch-to-receipt cycle time. Is transport performance matching the planned lead time?
Receipt quantity variance. Where are physical deliveries differing from dispatch records?
Completion within target lead time. Are branches receiving replenishment when planned?
Inventory-adjustment value linked to transfer discrepancies. Are adjustments concealing recurring transfer failures?
Location-based cycle counts provide the physical check behind those measures. Odoo records counted quantity, on-hand quantity and the difference, while adjustment history provides traceability. We use cycle counts to test transit and branch locations separately, because a company-wide count can conceal a branch-level shortage.
Make transfer status meaningful
A transfer status supports control only when staff understand the physical event it represents.
Expected supply should remain distinguishable from stock counted and accepted at the branch. Train sales, warehouse and finance teams to use the appropriate availability information.
Frequently Asked Questions
What should finance review when goods enter transit
Review the location, custody and valuation treatment for the configured same-company transfer. Keep internal transfers distinct from inter-company transactions, and ensure the records explain where the goods are held.
Can a receiving branch validate a receipt before the truck arrives
It can be technically possible for a user with the relevant access, but it should not be an approved process. Validate the receipt after a physical count and product, lot or serial verification, because premature validation turns expected stock into overstated branch availability.
Which Odoo report should operations review each day
Review movement status, expected and actual quantities, and the stock held in transit using the reports available in your Odoo setup. These records help identify exceptions but do not replace a physical receiving count.
Should we use an inventory adjustment when a transfer arrives short
Use a Physical Inventory adjustment only after the transfer discrepancy has been recorded against its reference and investigated. An adjustment without the linked dispatch, receipt and reason removes the audit trail needed to find repeat failures.
SERPA helps businesses configure Odoo inventory workflows, clarify branch responsibilities and retain a traceable record from dispatch to receipt. Contact our team to discuss your multi-branch stock controls and enquire for a tailored quote.