Push, Pull & Push & Pull Routes in Odoo19

April 9, 2026 by
admin


                                                                                                                 



Push, Pull & Push & Pull Understanding Route Rules in Odoo 19 Inventory
Routes in Odoo 19 are made up of Rules. Each rule tells the system when to create a stock transfer, where to move goods from, and where to move them to. The action type of a rule — Push, Pull, or Push & Pull — determines what triggers that transfer. Getting this right is the key to building an automated, intelligent supply chain inside Odoo.

This blog explains how each rule type works, when to use each one, and how they combine to create powerful routing logic across your warehouse.

Routes and Rules: The Basics
In Odoo 19, a Route is a named collection of Rules. You assign routes to products, product categories, warehouses, or individual order lines. When an operation is triggered, Odoo evaluates the relevant routes and executes the rules in sequence to orchestrate the movement of goods.

📍 WHERE TO FIND THEM
Navigate to Inventory → Configuration → Routes to view all routes. Click any route to inspect its rules. To see rules directly, go to Inventory → Configuration → Rules (you may need to enable developer mode).

Anatomy of a Rule
Every route rule in Odoo 19 contains the following fields:

Rule Field

What It Controls

Action
Push, Pull, or Push & Pull — the trigger logic
Source Location
Where the product is moving from
Destination Location
Where the product should move to
Operation Type
The type of transfer created (Receipt, Internal, Delivery)
Route
The parent route this rule belongs to
Warehouse
Scope the rule to a specific warehouse
Auto-trigger
Whether the transfer is created automatically or needs manual action

Rules execute in sequence — a route can chain multiple rules together so that a single sale order triggers a cascade of transfers automatically from supplier all the way to the customer.

Push Rules
A Push rule is triggered by the arrival of goods at the source location. When products land at the defined source, Odoo automatically creates the next transfer to move them to the destination. You don't need a demand signal — the mere presence of goods at the location is enough to trigger the next move.

PUSH
Trigger = Goods arrive at the source location. Odoo immediately creates a transfer to push them forward to the next location in the chain.

How Push Rules Work — Step by Step
  • 1. Goods are received or moved into the Push rule's source location
  • 2. Odoo detects the arrival and evaluates matching push rules for that location
  • 3. A new transfer is created automatically (or queued for manual processing, depending on the auto-trigger setting)
  • 4. The transfer moves goods from the source to the destination location defined in the rule
  • 5. If another push rule exists on the destination, the chain continues

Push Rule: Auto-Trigger vs Manual
Each push rule has an Auto-trigger setting. When enabled, the transfer is created and can even be auto-validated without any user action. When disabled, the transfer is created but waits for a warehouse operative to process it manually. This gives you the flexibility to automate routine moves while keeping manual oversight on others.

💡 EXAMPLE
A 2-step receiving route uses a push rule: when goods arrive at WH/Input (auto-triggered), Odoo creates an internal transfer to WH/Stock. The operative validates the receipt, and the put-away transfer is already waiting in the system.

Common Push Rule Use Cases
  • Moving goods from an Input staging area to main stock after receipt
  • Transferring finished goods from a production floor to a finished goods location
  • Automatically routing goods through a quality control zone before stock
  • Crossdocking: pushing goods received from a supplier directly to an outgoing area
  • Internal replenishment between sub-locations within the same warehouse

⚠️ CAUTION
Push rules do not consider demand. They will always move goods forward regardless of whether there is a customer order waiting. For demand-driven movement, use Pull rules instead.

Pull Rules
A Pull rule works in the opposite direction to Push. Instead of being triggered by the arrival of goods, it is triggered by downstream demand — a confirmed Sale Order, a Manufacturing Order needing components, or another rule in the chain. Odoo works backwards from the demand, creating the necessary transfers to fulfil it.

PULL
Trigger = Demand from a Sale Order, Manufacturing Order, or another pull rule. Odoo traces back through the route and creates the required transfers to satisfy the demand.

How Pull Rules Work — Step by Step
  • 1. A Sale Order is confirmed, creating a delivery demand at the output location
  • 2. Odoo evaluates the product's route and finds the relevant pull rule
  • 3. The pull rule creates a transfer from the stock location to the output location
  • 4. If the stock is insufficient and a procurement rule exists, Odoo traces back further
  • 5. A Purchase Order or Manufacturing Order is created to source the goods
  • 6. The entire chain — procurement → receipt → delivery — is linked to the original demand

Pull Rule Trigger Types
Pull rules in Odoo 19 can be triggered in three different ways, controlling how aggressively Odoo reacts to demand:

Trigger Type

What Causes It

Typical Use

Replenish on Order (MTO)
A confirmed Sale Order or MO
Procure per order, no buffer stock
Make to Stock
Scheduler / reorder rule threshold
Maintain buffer stock levels
Trigger from route
Another rule activating this one
Chained multi-step moves

Common Pull Rule Use Cases
  • Fulfilling a customer delivery: pull goods from stock to the output/delivery zone
  • Make to Order (MTO): pull triggers a purchase order directly linked to a sale
  • Manufacturing supply: pull raw materials from stock to the production floor
  • Inter-warehouse replenishment: pull stock from a central warehouse to a satellite location
  • Chained procurement: pull through multiple locations until the product is sourced

💡 EXAMPLE
A Sale Order for 5 units of Product A triggers a pull rule. Odoo checks stock: 3 units available. It creates a delivery for 3 and — because MTO is active — raises a Purchase Order for the remaining 2, both linked to the same sale.

Push & Pull Rules
A Push & Pull rule combines both triggers into a single rule. It can be activated either by the arrival of goods at the source location (like a Push rule) or by downstream demand (like a Pull rule). This makes it the most flexible rule type, and it is used in scenarios where a location must respond to both supply-side and demand-side signals.

PUSH & PULL
Trigger = Arrival at source OR downstream demand. The same rule responds to both supply signals and demand signals, making it ideal for transit and crossdocking locations.

When to Use Push & Pull Rules
Push & Pull rules are most valuable in complex multi-warehouse or crossdocking scenarios:

Crossdocking
Goods arriving from a supplier are pushed immediately to a dispatch area without entering stock, while simultaneously satisfying a waiting customer order. The crossdock location acts as both a destination (Push from supplier) and a source (Pull from customer order).

Flow
Supplier → WH/Crossdock (Push & Pull) → Customer  |  Goods never touch WH/Stock.

Transit Warehouses
A regional transit warehouse receives goods from a central hub (Push) and distributes to local branches on demand (Pull). The same transit location serves both roles, and Push & Pull rules manage the flow in both directions.

Multi-Warehouse Resupply
A satellite warehouse pulls from the main warehouse when its stock drops low. The main warehouse, in turn, pushes surplus goods to the satellite during slow periods. A Push & Pull rule on the intermediate transfer location handles both scenarios.

Push & Pull in Practice — Key Points
  • The rule evaluates which trigger fired and responds accordingly
  • Demand-driven activation behaves exactly like a standard Pull rule
  • Arrival-driven activation behaves exactly like a standard Push rule
  • Both triggers can activate simultaneously — Odoo handles the resulting transfers independently
  • Useful for reducing the number of separate rules needed in complex setups

Building Routes with Rules in Odoo 19
Now that you understand each rule type, here is how to put them together into a working route.

Step 1: Define or Open a Route
  • Go to Inventory → Configuration → Routes
  • Click New to create a custom route, or open an existing one to add rules
  • Give the route a clear name and specify which scope it applies to (product, category, warehouse, or sale/purchase order lines)

Step 2: Add Rules to the Route
  • Inside the route, click Add a Line under the Rules section
  • Set the Action (Push, Pull, or Push & Pull)
  • Define the Source Location and Destination Location
  • Choose the Operation Type (Receipt, Internal Transfer, Delivery, etc.)
  • Set the Auto-trigger preference if applicable
  • Save the rule and repeat for each step in the route

Step 3: Assign the Route to Products
  • Open a product and navigate to the Inventory tab
  • Under Routes, tick the routes that apply to this product
  • A product can have multiple routes — Odoo evaluates them in priority order

✅ TIP
You can also assign routes at the product category level, which applies to all products in that category automatically — saving setup time for large catalogues.

Side-by-Side Comparison

Aspect

Push

Pull

Push & Pull

Trigger
Arrival at source location
Demand from order / rule
Either arrival or demand
Direction of Logic
Forward — pushed onward
Backward — pulled from demand
Both directions active
Creates Transfer When
Goods arrive at source
Order / MO confirms
Either event occurs
Stock Holding
May accumulate stock
Minimises buffer stock
Flexible — depends on rules
Automation Level
Auto on arrival
Demand-driven
Most flexible
Setup Complexity
Low
Medium
High
Typical Use Case
Receiving, internal moves
MTO, fulfilment chain
Crossdocking, transit WH

Which Rule Type Should You Use?
The answer depends on what triggers the movement you are modelling:

USE PUSH
When the movement should happen automatically on the arrival of goods — e.g., moving goods from a receiving dock to stock, or from production to a finished goods area.

USE PULL
When the movement should only happen when there is confirmed demand — e.g., picking for a sale order, or procuring from a supplier when an order is placed.

USE PUSH & PULL
When a location needs to respond to both supply arrivals and demand signals — e.g., crossdocking, transit warehouses, or complex multi-warehouse resupply flows.

Summary
Routes and Rules are the engine of Odoo 19 Inventory automation. Push rules react to the physical arrival of goods and push them forward through your warehouse process. Pull rules react to demand and trace back through your supply chain to create the moves needed to fulfil an order. Push & Pull rules give you the flexibility to handle both scenarios with a single rule.
Master these three rule types and you can model virtually any warehouse flow inside Odoo — from a simple single-location operation to a complex multi-warehouse distribution network.
If you are looking for an ERP implementation partner with diverse industry experience feel free to contact us. We have proven track record of successful implementations across various sectors including Odoo for Manufacturing, Odoo for Trading, Odoo for FMCG, Odoo for Oil & Gas, Odoo for Diary, Odoo for Pharma, Odoo for Cosmetic Clinic, Odoo for Contracting Companies, Odoo for HVAC, Odoo for Logistics, Odoo for Automobile, Odoo for Laundry, Odoo for Field Service, Odoo for E-Commerce & many more
ZestyBeanz offers Developer / Consultant outsourcing programs, Chat with us in Whatsapp and Hire Odoo Developers, Mobile Application Developers, Consultants.
#OdooDevelopment #Odoo18 #CustomChatterButton #TechnicalBlog #OdooCustomization #OdooTips #Odoofeatures