Skip to content
ERP Builders
Odoo

Odoo Inventory Routes Explained (Push, Pull, MTO)

Odoo inventory routes in plain language: multi-step flows, push and pull rules, make-to-order, putaway and removal strategies, and common mistakes.

By ERP Builders Architecture Group3 min read

Routes are the part of Odoo Inventory that confuses people most, and the part that matters most for warehouse operations. Once you understand them, most "why did Odoo create this transfer?" questions answer themselves.

Start with the warehouse settings

On each warehouse, Odoo lets you pick how many steps incoming and outgoing goods take:

Incoming shipments

  • 1 step: receive directly into stock
  • 2 steps: receive into an input area, then move to stock
  • 3 steps: receive into input, move to quality control, then to stock

Outgoing shipments

  • 1 step: deliver directly from stock
  • 2 steps: pick to an output area, then ship
  • 3 steps: pick, pack, then ship

Choosing these generates the routes and rules for you. Start with the simplest option that matches how your floor actually works. Three steps where one would do just creates extra clicks.

Routes and rules

A route is a set of rules. Each rule says: to get stock into location X, do something.

  • Pull from. Take it from another location (creates a transfer)
  • Buy. Create a purchase order
  • Manufacture. Create a manufacturing order
  • Pull & Push and Push to for automatic onward movement

Routes can be set on the warehouse, product category, product or even a sales order line.

Pull rules: demand-driven

When a sales order is confirmed, Odoo asks "where does this stock need to be, and where can it come from?". It walks backwards through the rules:

  1. Customer needs goods. Rule: pull from Output.
  2. Output needs goods. Rule: pull from Stock.
  3. Stock has the goods? Reserve them. If not, and there's a Buy or Manufacture rule, create a PO or MO.

That's how one sales order can create a pick, a pack and a delivery, all linked.

Push rules: arrival-driven

Push rules act when goods arrive in a location. Goods received in Input get pushed to Quality, then to Stock. Nobody has to create those transfers by hand.

Make to order (MTO)

The MTO route tells Odoo to source each order line specifically, instead of taking from general stock. It's used for:

  • Custom or configured products
  • Expensive items you don't want to hold
  • Drop-shipping, where the supplier ships straight to the customer

Combine MTO + Buy to create a PO per sales order, or MTO + Manufacture to create an MO per sales order. MTO is archived by default in recent versions. Unarchive it in the routes list if you need it.

Putaway rules

Putaway rules decide where incoming products land: "Products in category Cables go to WH/Stock/Zone-C". You can also put away by package type and capacity in recent versions. Without putaway rules, everything lands in the warehouse's default stock location.

Removal strategies

Removal strategies decide which stock gets reserved first:

  • FIFO. Oldest receipt first
  • LIFO. Newest first
  • FEFO. Earliest expiry first (needs expiry dates on lots)
  • Closest location. Shortest path
  • Least packages. Fewest packages opened

Set them on the product category or the location.

Mistakes we fix most often

  1. Too many steps. Three-step delivery in a warehouse with two people. Simplify.
  2. Conflicting routes. The same product has routes on the category and on the product, and the result surprises everyone.
  3. Validating out of order. Completing the delivery without the pick leaves orphaned moves.
  4. Manual transfers that bypass routes. Stock ends up in Output with no delivery to consume it.
  5. Reordering rules on the wrong location. A min/max on WH/Stock when stock actually lives in sub-locations works, but on an unrelated location it won't.

Design on paper first

Draw your physical flow: where goods arrive, where they're checked, where they're stored, where they're picked and packed. Then configure routes to match. Not the other way round.

Related reading: Odoo implementation guide, warehouse layout and slotting, and our Odoo inventory service.

Frequently asked questions

What is the difference between push and pull rules in Odoo?

Pull rules create moves in response to demand (a sales order needs stock, so the system pulls it from somewhere). Push rules move stock automatically after it arrives somewhere (received goods are pushed to quality, then stock).

Why are my Odoo transfers stuck in 'Waiting'?

Usually because a previous step in a multi-step route hasn't been completed, or because stock is reserved elsewhere. Check the chain of moves linked to the transfer.

ERP Builders Architecture Group

The engineers responsible for integration design, data migration tooling and performance work across ERP Builders projects.

Related articles

ERP Integrations2 min read

RFID Integration with Odoo: A Practical Architecture

How to integrate RFID readers with Odoo inventory: middleware design, mapping EPCs to products and serials, receiving and counting flows, performance and what to build vs buy.

Next step

Turn the plan into a working system.

Book a consultation with an ERP consultant. No sales script — just an honest look at your situation.