Understanding Routes in Odoo 19
Routes define the path products take through your supply chain. Each route contains one or more rules that either push products forward automatically or pull them based on demand. The stock.route and stock.rule models work together to automate inter-location, inter-warehouse, and procurement flows.
Prerequisites
- Odoo 19 with Inventory module installed
- Multi-Step Routes enabled in Inventory settings
- Inventory Manager access
Step 1: Enable Multi-Step Routes
Navigate to Inventory > Configuration > Settings. Enable Multi-Step Routes under the Warehouse section. This unlocks the Routes and Rules configuration menus. Click Save.
Step 2: Understand Built-in Routes
Odoo creates default routes automatically:
- Buy — Pull rule that creates purchase orders when demand exists
- Manufacture — Pull rule that creates manufacturing orders from demand
- Replenish on Order (MTO) — Make-to-Order rule that triggers procurement directly from sales orders
- Resupply Routes — Inter-warehouse transfer routes created when linking warehouses via resupply settings
- Reception/Delivery Routes — Created per warehouse based on reception steps (1/2/3 step) and delivery steps (ship only/pick+ship/pick+pack+ship)
Step 3: Create a Custom Route
Navigate to Inventory > Configuration > Routes and click New:
- Route Name — Descriptive name (e.g., "Quality Inspection", "Cross-Dock")
- Applicable On — Where this route can be selected: Products, Product Categories, Warehouses, Sales Order Lines, or Packaging
Step 4: Add Pull Rules
Pull rules create demand-driven procurement. In the route form, go to the Rules tab and click Add a line:
- Action — Pull From: move products from source to destination on demand
- Source Location — Where products come from
- Destination Location — Where products go to
- Operation Type — The type of transfer (Receipt, Delivery, Internal Transfer)
- Supply Method — Take From Stock (use existing inventory), Trigger Another Rule (chain to next procurement), or Take From Stock if available then trigger rule
- Propagation — Whether to propagate procurement groups and procurement dates
Step 5: Add Push Rules
Push rules automatically move products after they arrive at a location:
- Action — Push To: automatically create a transfer when products land in the source location
- Source Location — When products arrive here, the push triggers
- Destination Location — Products are moved here automatically
- Automatic Move — Manual (create draft transfer) or Automatic (auto-confirm the transfer)
Example: Products arriving at Quality Check location are automatically pushed to Main Stock after QC approval.
Step 6: Configure Warehouse Steps
Warehouse reception and delivery steps are implemented using routes internally. Go to Inventory > Configuration > Warehouses and set:
Reception Steps
- Receive goods directly (1 step) — Supplier to Stock
- Receive goods in input and then stock (2 steps) — Supplier to Input, then Input to Stock
- Receive goods in input, then quality and then stock (3 steps) — Supplier to Input, Input to QC, QC to Stock
Delivery Steps
- Ship only (1 step) — Stock directly to Customer
- Pick goods and then ship (2 steps) — Stock to Output, then Output to Customer
- Pick, pack, and then ship (3 steps) — Stock to Pack Zone, Pack to Output, Output to Customer
Step 7: Inter-Warehouse Resupply
To set up automatic resupply between warehouses:
- Open the destination warehouse configuration
- Under Resupply From, select the source warehouse(s)
- Odoo creates a resupply route with pull rules that trigger inter-warehouse transfers when stock is needed
Step 8: Assign Routes to Products
Routes can be assigned at multiple levels:
- Product level — On the product's Inventory tab, add routes to the Routes field
- Product Category level — On the product category, set default routes
- Warehouse level — Apply routes to all operations in a warehouse
- Sales Order Line level — Override routes per SO line
Best Practices
- Start with warehouse-level step configuration before creating custom routes
- Use pull rules for demand-driven flows and push rules for automatic forwarding
- Test routes with small quantities before applying to all products
- Document your route logic, especially for complex multi-step flows