Stock Inter-Warehouse Transfer
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.
Table of contents
Use Cases / Context
Business Need
Companies with multiple warehouses sometimes need to initiate stock transfers based on an operational decision — not triggered by procurement demand. Typical use cases:
Proactively balancing inventory between locations.
Reviewing and confirming both the outgoing and incoming legs before any stock moves.
Tracing the full inter-warehouse operation as a single document.
Odoo’s standard resupply routes are demand-driven and do not provide a single document grouping both legs of a transfer.
Approach
On confirmation, the transfer creates exactly two pickings connected through the company’s internal transit location: an OUT picking at the source warehouse and an IN picking at the destination warehouse. Both use dedicated operation types (IW / IWR) created lazily per warehouse, keeping inter-warehouse moves out of regular delivery and receipt queues.
The OCA module stock_warehouse_resupply_route_push (v18.0+, OCA/stock-logistics-workflow) provides a similar capability via push rules, but the IN picking is only created after the OUT picking is validated — making it impossible to review both legs before stock moves.
Useful Information
Requires an Internal Transit Location configured on the company (Inventory > Configuration > Warehouses).
Designed for single-company, multi-warehouse setups.
Source and destination locations default to each warehouse’s main stock location and can be overridden per transfer.
Works with Odoo’s standard backorder flow: partial validations create backorders automatically linked to the same transfer document.
Usage
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. Each picking takes the address of the other end as its partner: the OUT picking the address of the destination warehouse, the IN picking the address of the source warehouse.
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.
Known issues / Roadmap
Inter-company transfers (source and destination warehouses belonging to different companies) are not yet supported. Both warehouses must currently belong to the same company.
Decreasing a line below the quantity already validated on a leg is blocked rather than reversed: the return has to be created manually.
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
ForgeFlow S.L.
Guillem Casassas <guillem.casassas@forgeflow.com>
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
Current maintainer:
This module is part of the OCA/stock-logistics-workflow project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Metadata
Release files for odoo-addon-stock-interwarehouse-transfer 16.0.1.0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| odoo_addon_stock_interwarehouse_transfer-16.0.1.0.0.3-py3-none-any.whl | Python 3 | none | any | Details for odoo_addon_stock_interwarehouse_transfer-16.0.1.0.0.3-py3-none-any.whl |
Release files / odoo_addon_stock_interwarehouse_transfer-16.0.1.0.0.3-py3-none-any.whl
| Download URL | odoo_addon_stock_interwarehouse_transfer-16.0.1.0.0.3-py3-none-any.whl |
|---|---|
| Size | 48.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be541ebf1b2f4c16b4bb10b141e69bdd6b2312398e7dccffae1320b0b5085996
|
|
BLAKE2b-256 checksum How to use checksums |
ca4dcf67d6cec307df24128f8a845d628c5f10e9cedf91336f84c1cf2e621fa4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Security for odoo-addon-stock-interwarehouse-transfer 16.0.1.0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.