Skip to Content

How to Control Inter-Warehouse Stock Transfers with Odoo

Covering internal transfers, out/in validation, source and destination locations, and tracking the status of stock movements.

Moving stock from one warehouse to another looks simple — until the questions start: has the goods left the source warehouse? Has it been received at the destination? If it goes missing in transit, who is responsible? Odoo answers with internal transfers that are recorded, validated, and traceable.


1. Why Inter-Warehouse Transfers Need Control

  • Stock "lost" in transit — goods leave the source warehouse but are not recorded as received at the destination.
  • Double counting — stock is counted in two warehouses because the transfer has not been validated.
  • Wrong shipment/receipt — goods sent to the wrong location or with the wrong quantity.
  • No accountability — without a trail, it is hard to know who moved what and when.
  • Planning disrupted — in-transit stock is invisible, so replenishment is miscalculated.

A tidy internal transfer gives every movement a document, status, and audit trail.


2. The Anatomy of an Internal Transfer in Odoo

In Odoo, inter-location moves are created through the Internal Transfers operation type (Inventory → Operations → Transfers). The essence:

Source Location  →  [ Validate ]  →  Destination Location
  • Source Location — where the goods are taken from (e.g. WH-A/Stock).
  • Destination Location — where the goods are sent (e.g. WH-B/Stock).
  • Product, qty, lot/serial — what is being moved.
  • Document status — Draft → Waiting → Ready → Done.

Stock only actually moves when the document is validated (Done).


3. Setting Up Source and Destination Locations

For accurate transfers, the location structure must be tidy:

  • Enable Storage Locations and Multi-Step Routes.
  • Create a clear warehouse hierarchy, e.g. WH-A/Stock, WH-B/Stock.
  • Set up a Transit Location for transfers that take time (e.g. between cities).
  • For routine inter-warehouse shipments, use resupply (warehouse A supplies warehouse B) so transfers can be generated automatically from orderpoints.

4. The Out/In Validation Flow

  1. Create the internal transfer — manually, from resupply, or from the destination warehouse's reordering rule.
  2. Reserve/Check Availability — Odoo reserves stock at the source so it is not used by other transactions.
  3. Picking — take the goods at the source warehouse, verify product & qty (optionally with barcodes).
  4. Validate — stock leaves the Source and enters the Destination in one transaction.
  5. For long distances: use two steps with a transit location (Source → Transit → Destination) so "on the road" stock stays traceable.
  6. Backorder — if the quantity is short, the remainder is created as a clear backorder.

Important: never record a transfer only outside the system (e.g. via chat). If it is not created in Odoo, physical and system stock will diverge.


Person at a loading dock with boxes

5. Tracking Transfer Status

Every transfer has a status you can monitor:

StatusMeaning
DraftDocument created, not yet confirmed
WaitingWaiting for availability/goods arrival
ReadyStock is reserved, ready to pick
DoneStock has moved to the destination
CancelledCancelled (stock stays at the source)

For traceability: use the transfer's chatter/history, Stock Moves (per-product movement history), and inventory reports to see stock per location. That way, "where is this item?" can be answered.


6. Control & Best Practices

  • Barcodes — scan the source location, product, and destination location to avoid wrong placements.
  • Transit location — for transfers that take time; in-transit stock remains visible.
  • Real-time validation — do it when the goods move, not later.
  • No negative stock — prevent transfers beyond recorded stock.
  • Resupply & reordering — automate routine inter-warehouse transfers.
  • Audit trail — use chatter and stock moves for accountability.
  • Cycle counting — reconcile stock per location regularly.

7. Stock Transfer KPIs

  • Transfer cycle time — time from creation to receipt at the destination.
  • In-transit stock — the amount of stock currently on the road.
  • Pending transfers — transfers not yet validated (target near zero).
  • Variance — quantity difference between source and destination.
  • On-time transfer — matching the inter-warehouse replenishment schedule.

Closing

A controlled inter-warehouse transfer is not just "moving goods"; it ensures every unit is recorded out, received, and traceable. With tidy internal transfers in Odoo — clear source/destination locations, disciplined validation, transit locations, and status tracking — stock variance can be reduced and accountability becomes clear.

Want to tidy up your inter-warehouse transfer process with Odoo? Talk to the Sinergi Data Totalindo (SDT) Team.


Note: appearance and features may adapt to the Odoo version and implementation needs. Written by Sinergi Data Totalindo, PT.

Sinergi Data Totalindo October 21, 2026
Share this post
Archive
Why Does System Stock Differ from Physical Stock?
The causes of stock variance, unvalidated transactions, and how to improve inventory accuracy with Odoo.
Chat WhatsApp