OdooWiki OCA HUB

Stock Inter-Warehouse Transfer

stock_interwarehouse_transfer folder_open OCA/stock-logistics-workflow open_in_new
Inventory License: AGPL-3

This module adds an Inter-Warehouse Transfer document that lets users explicitly push stock from one warehouse to another within the same company.

Confirming a transfer creates exactly two pickings (OUT at the source warehouse, IN at the destination warehouse) connected through the company's internal transit location. The document state is automatically derived from the underlying picking states and supports backorders.

To keep this the only path for moving stock across warehouses, the module also blocks any internal stock move whose source and destination locations belong to different warehouses, forcing users through the Inter-Warehouse Transfer document.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Create an Inter-Warehouse Transfer document to move stock from one warehouse to another in the same company. Confirming it generates an outgoing and an incoming transfer through the company's transit location, and internal moves between different warehouses are blocked.

This module adds a new document, the Inter-Warehouse Transfer, found under Inventory > Transfers > Inter-Warehouse Transfers. On the form you pick a From Warehouse and a To Warehouse (both must belong to the same company and be different), and the source and destination stock locations are filled in automatically. You then list the products and quantities to move.

Pressing Confirm creates two transfers: an outgoing one from the source warehouse to the company's internal transit location, and an incoming one from transit to the destination warehouse. The document status follows the underlying transfers: Draft, Confirmed, In Transit (outgoing done), Done (incoming done) or Cancelled. A smart button shows how many transfers are linked, and a chatter records the confirmation message.

While the transfer is confirmed or in transit you can still adjust quantities; the related stock moves are updated automatically. You cannot reduce a quantity below what has already been processed, and processed products cannot be deleted — the system tells you to create a return instead. Backorders keep the link to the transfer.

To force users through this document, any internal stock move whose source and destination locations belong to different warehouses is rejected with an error suggesting an Inter-Warehouse Transfer.

Depends on

stock

Menus it adds

Inter-Warehouse Transfers
Models and fields (5)
  • stock.move · extends an existing modelinterwh_transfer_line_id (Inter-WH Transfer Line)
  • stock.picking · extends an existing modelinterwarehouse_transfer_id (Inter-WH Transfer)
  • stock.warehouse · extends an existing modelin_inter_wh_type_id (Inter-WH In Type), out_inter_wh_type_id (Inter-WH Out Type)
  • stock.interwarehouse.transfer · new modelname, state, line_ids (Products), company_id, location_id (From Location), picking_ids (Transfers), reference_id (Reference), picking_count (Transfer Count), scheduled_date, warehouse_to_id (To Warehouse), location_dest_id (To Location), warehouse_from_id (From Warehouse)
  • stock.interwarehouse.transfer.line · new modelstate, move_ids (Stock Moves), product_id, product_uom (Unit of Measure), qty_shipped (Shipped), transfer_id, qty_received (Received), product_uom_qty (Quantity)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 19.0

Confirmed on 2026-11-03 in branch 19.0 of OCA/stock-logistics-workflow.

terminal Installation and usage

OCA documentation · Odoo 19.0

Go to _Inventory > Operations > Inter-Warehouse Transfers_ and create a new transfer:

  • Select From Warehouse and To Warehouse (same company).
  • Optionally override the From Location and To Location (they default to each warehouse's main stock location).
  • Add one or more product lines with quantities.
  • Click Confirm.

Two stock pickings are created automatically — an OUT picking at the source warehouse and an IN picking at the destination warehouse, connected through the company's internal transit location. Use the Transfers smart button to open them.

Validate the OUT picking when the goods leave the source warehouse. The transfer moves to _In Transit_. Validate the IN picking when the goods arrive at the destination. The transfer moves to _Done_.

Partial validation creates backorders that are automatically linked to the same transfer document.

A confirmed transfer stays editable: changing a line quantity, adding a line or removing one propagates to the stock moves of both legs. The Shipped and Received columns show how much of each line is already validated.

  • Increasing a quantity extends the open moves. If a leg has no open picking left — for instance the OUT was already validated — a new picking is created for the additional quantity.
  • Decreasing a quantity reduces the open moves, and cancels them when it reaches zero. A quantity cannot be decreased below what is already validated on that leg; create a return instead.
  • Removing a line cancels its moves. A line that is already partly validated cannot be removed.

Internal transfers between locations of different warehouses are no longer allowed outside this document: attempting to create such an internal move raises a validation error asking to use an Inter-Warehouse Transfer instead.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.