Automated Stock Transfer Rules in Odoo#
Manually creating internal transfers every time stock needs to move between locations is error-prone and time-consuming. Odoo's push rules and automated actions trigger internal moves automatically based on defined conditions.
Push Rules (Location-Triggered)#
Push rules fire when a transfer delivers goods to a specific location:
Inventory → Configuration → Routes → [Route] → Rules → Add Push Rule:
- Source Location: WH/Input
- Destination Location: WH/Quality Control
- Auto: Automatic (creates the next transfer as soon as the receipt is validated)
- Operation Type: Internal Transfer
Effect: every time a receipt is validated at WH/Input, Odoo automatically creates an internal transfer to WH/Quality Control - no human intervention needed.
Multi-Step Automation with Push Rules#
Chain multiple push rules for a 3-step inbound process:
- Vendor → WH/Input: manual receipt (warehouse staff validates)
- WH/Input → WH/Quality Control: auto-push (created immediately on receipt validation)
- WH/Quality Control → WH/Stock: auto-push (created when QC transfer is validated)
Each step flows automatically - staff only handle exceptions.
Demand-Triggered Internal Transfers (Pull Rules)#
Pull rules create internal transfers when demand is generated:
Inventory → Configuration → Routes → [Route] → Rules → Add Pull Rule:
- Source Location: WH/High-Value (secure storage)
- Destination Location: WH/Packing
- Trigger: When demand is created (a pick order references this product)
When a delivery order is confirmed that needs a product from WH/High-Value, Odoo automatically creates a pick transfer: WH/High-Value → WH/Packing.
Automated Stock Replenishment Between Warehouses#
For multi-warehouse operations:
Inventory → Configuration → Routes → Resupply WH2 from WH1:
- WH1 (main warehouse) → WH2 (regional warehouse)
- When WH2 runs low: replenishment request triggers a transfer from WH1
The regional warehouse manager sees incoming transfers; no inter-warehouse communication needed.
Exception Handling#
When automated transfers can't complete (insufficient stock):
- Transfer is created but in "Waiting" state
- Responsible person receives a notification
- Once stock is available (receipt, MO completion): transfer moves to "Ready"
Filter "Waiting" transfers: Inventory → Operations → Transfers → Filter: Waiting - these are the exceptions needing investigation.

