TIP: You can type at any time to perform a new search.
Stock Inter-Warehouse Transfer
stock_interwarehouse_transfer · OCA/stock-logistics-workflow
Security findings
Migration considerations
view_stock_interwarehouse_transfer_list— View 'view_stock_interwarehouse_transfer_list' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/stock-logistics-workflow · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Inventory
- Folder size
- 0.12 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-workflow
- Last tracking update
- 2026-10-03 23:38:40
- Authors
- Odoo Community Association (OCA), ForgeFlow S.L.
- Maintainers
- Odoo Community Association (OCA), ForgeFlow S.L.
- Committers
- Weblate, OCA-git-bot, oca-ci, Andreu Orensanz
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
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.
Code Analysis
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_stock_interwarehouse_transfer_form |
stock.interwarehouse.transfer.form | stock.interwarehouse.transfer | form | New |
view_stock_interwarehouse_transfer_list |
stock.interwarehouse.transfer.list | stock.interwarehouse.transfer | tree | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (12)
-
company_idMany2one → res.companydefault=<expr> args: 'res.company' -
line_idsOne2many → stock.interwarehouse.transfer.linestring='Products' args: 'stock.interwarehouse.transfer.line', 'transfer_id' -
location_dest_idMany2one → stock.locationcompute='_compute_locations'precompute=Truereadonly=Falsestore=Truestring='To Location' args: 'stock.location' -
location_idMany2one → stock.locationcompute='_compute_locations'precompute=Truereadonly=Falsestore=Truestring='From Location' args: 'stock.location' -
nameCharcopy=Falsedefault='/'readonly=True -
picking_countIntegercompute='_compute_picking_count'string='Transfer Count' -
picking_idsOne2many → stock.pickingcopy=Falsestring='Transfers' args: 'stock.picking', 'interwarehouse_transfer_id' -
procurement_group_idMany2one → procurement.groupcopy=Falsestring='Procurement Group' args: 'procurement.group' -
scheduled_dateDatetime -
stateSelectioncompute='_compute_state'default='draft'selection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('in_transit', 'In Transit'), ('done', 'Done'), ('cancelled', 'Cancelled')]store=True -
warehouse_from_idMany2one → stock.warehousecheck_company=Truerequired=Truestring='From Warehouse' args: 'stock.warehouse' -
warehouse_to_idMany2one → stock.warehousecheck_company=Truerequired=Truestring='To Warehouse' args: 'stock.warehouse'
-
action_cancel(self) -
action_confirm(self) -
action_view_pickings(self) -
create(self, vals_list)@api.model_create_multi
New fields (8)
-
move_idsOne2many → stock.movestring='Stock Moves' args: 'stock.move', 'interwh_transfer_line_id' -
product_idMany2one → product.productdomain=[('type', '!=', 'service')]required=True args: 'product.product' -
product_uomMany2one → uom.uomcompute='_compute_product_uom'precompute=Truereadonly=Falsestore=Truestring='Unit of Measure' args: 'uom.uom' -
product_uom_qtyFloatdefault=1.0required=Truestring='Quantity' -
qty_receivedFloatcompute='_compute_qty_progress'digits='Product Unit of Measure'string='Received' -
qty_shippedFloatcompute='_compute_qty_progress'digits='Product Unit of Measure'string='Shipped' -
stateSelectionrelated='transfer_id.state' -
transfer_idMany2one → stock.interwarehouse.transferondelete='cascade'required=True args: 'stock.interwarehouse.transfer'
-
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals)
New fields (1)
-
interwh_transfer_line_idMany2one → stock.interwarehouse.transfer.lineindex=Trueondelete='set null'string='Inter-WH Transfer Line' args: 'stock.interwarehouse.transfer.line'
No public methods.
New fields (1)
-
interwarehouse_transfer_idMany2one → stock.interwarehouse.transfercopy=Falsestring='Inter-WH Transfer' args: 'stock.interwarehouse.transfer'
No public methods.
New fields (2)
-
in_inter_wh_type_idMany2one → stock.picking.typecheck_company=Truecopy=Falsestring='Inter-WH In Type' args: 'stock.picking.type' -
out_inter_wh_type_idMany2one → stock.picking.typecheck_company=Truecopy=Falsestring='Inter-WH Out Type' args: 'stock.picking.type'
No public methods.
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 31 days ago
- Last activity
- 23 days ago
- Repository
- OCA/stock-logistics-workflow
- Pull request
- [19.0][MIG] stock_interwarehouse_transfer: Migration to 19.0 (#2444)