Skip to Content
Inventory and stock

Why your Odoo reordering rules aren't triggering (and how to make them fire)

dooPartners· 25 March 2026 · 11 min read
Why your Odoo reordering rules aren't triggering (and how to make them fire)

An Odoo reordering rule that stays quiet is almost never broken. It is waiting on a forecast, a route, a trigger or the scheduler, and you can check all four in ten minutes.

You set a reordering rule on a product weeks ago. Min 20, max 100. This morning the on-hand dropped to 8 and you expected a purchase request waiting in your inbox. Nothing. No RFQ, no manufacturing order, no internal transfer. The rule is sitting there, green and saved, and doing nothing.

Reordering rules look simple, so when they go quiet people assume the rule is broken. It almost never is. In standard Odoo a rule fires only when four things line up: the forecast actually dips below your minimum, the product has a route that says how to replenish it, the scheduler has run, and the rule lives on the same warehouse and location the stock is moving through. Miss one and the rule stays silent. Here is each cause and how to fix it.

How a reordering rule actually works

A reordering rule is a min/max instruction tied to one product at one location. When the forecasted quantity falls to or below the minimum, Odoo orders enough to bring it back up to the maximum. That is the whole mechanism. The two numbers that trip people up are these. Min is not "reorder when on-hand hits this". It is the floor for the forecast, which is on-hand plus incoming minus outgoing demand. Max is not how much to order. It is the level Odoo tops up to, so the order quantity is max minus current forecast, rounded by any multiple you set. One sizing habit saves a lot of puzzling later: keep your minimum plus the vendor's minimal order quantity at or below your maximum. Odoo rounds the order up to the quantity the vendor demands, so when the gap between min and max is smaller than one order multiple, every replenishment overshoots the maximum and the levels stop meaning what you think they mean.

The rule itself does not buy or build anything. It only signals "we are short". What turns that signal into an actual document is the route on the product: Buy creates a request for quotation, Manufacture creates a manufacturing order, and a replenish-from route creates an internal transfer from another warehouse. No route, no document, no matter how far below min you go.

And none of it happens the instant stock drops. The scheduler is the engine that reads the rules and creates the orders, and by default it runs once a day. If you are staring at the screen waiting for an RFQ to appear the second on-hand hits 8, you will wait until the scheduler next runs.

Flow of an Odoo reordering rule from stock below minimum to replenishment document to stock back at maximum
An Odoo reordering rule: stock dips below minimum, the rule fires, the route creates the order, stock returns to maximum.

The fix, in order

1

Check the forecast, not the on-hand.

Open the product and look at Forecasted, not just On Hand. The rule reads forecast. If you already have 30 incoming on a confirmed purchase order, your forecast is 38 even though on-hand is 8, and a min of 20 will not fire because Odoo thinks you are covered. This single misunderstanding explains most "my rule won't trigger" tickets. Decide your min and max against the forecast, then sanity-check the forecast before you blame the rule.

2

Give the product a route.

Open the product, go to the Inventory tab, and confirm at least one route is ticked under Routes: Buy for bought goods, Manufacture for made goods, or a warehouse-to-warehouse route for internal supply. If no route is set, the rule has no way to act and stays silent. For Buy, the product also needs at least one vendor on the Purchase tab, or Odoo cannot raise an RFQ. Of everything in this list, that missing vendor is the cause we run into most at clients. The route is ticked, the rule looks complete, and one empty field on the Purchase tab keeps the whole chain silent. For Manufacture, the product needs a Bill of Materials, or Odoo has nothing to build from.

3

Set the Trigger to Auto.

On the reordering rule itself there is a Trigger field. Set it to Auto so the scheduler acts on it automatically. If it is set to Manual, the rule only ever produces a suggestion in Inventory > Operations > Replenishment, and you have to click to order. A Manual rule that nobody clicks looks exactly like a broken rule.

4

Run the scheduler.

Do not wait a day to test. Go to Inventory > Operations > Run Scheduler and click the green Run Scheduler button. This forces Odoo to read every rule now and create the orders that are due. If the document appears after you run it manually, the rule was always fine and the only issue was timing. For production, confirm the scheduled action "Run scheduler" is active under Settings > Technical > Scheduled Actions.

5

Match the warehouse and location.

A reordering rule is bound to a specific location. If the rule sits on WH/Stock but your sales ship from a different warehouse or a sub-location, the forecast the rule watches never moves, so it never fires. Confirm the rule's location is the one your stock actually flows through. With multiple warehouses, you usually need a rule per warehouse, not one global rule.

The part that trips people up

A few things catch almost everyone

Odoo replenishes just in time, not as early as possible. If the product is needed in ten days and the vendor lead time is five days, Odoo will not raise the RFQ today. It waits until the latest moment that still meets the need date. So a rule can be "correct" and still show nothing right now, simply because it is not time yet. Check the need date and the lead time before assuming it failed.

Lead time also feeds the min. Odoo's recommended minimum is roughly your average consumption across the lead time, so a min of 20 on a fast mover with a long lead time may be far too low to ever protect you. The rule fires, but too late to matter.

A product with the Manufacture route but no Bill of Materials produces nothing. Odoo has the instruction to build but no recipe, so the scheduler silently skips it. Same story for Buy with no vendor. The rule looks complete on screen and still does nothing.

If you set both a route on the product and a reordering rule, make sure they agree. A product routed to Manufacture with a rule expecting a purchase will not raise an RFQ. The route on the rule's path decides the document type.

Quick checklist

  • You set min and max against the Forecasted quantity, not just On Hand.
  • The product has at least one route: Buy, Manufacture, or an internal supply route.
  • Buy products have a vendor; Manufacture products have a Bill of Materials.
  • The reordering rule Trigger is set to Auto, not Manual.
  • You ran Inventory > Operations > Run Scheduler to test instead of waiting a day.
  • The scheduled action "Run scheduler" is active in Technical settings.
  • The rule's warehouse and location match where stock actually moves.
  • You checked the need date and lead time before concluding the rule failed.

FAQ

Why is my Odoo reordering rule not creating a purchase order?

The cause is usually one of four things: the forecasted quantity has not actually dropped below your minimum (incoming stock counts toward forecast), the product has no Buy route or no vendor, the rule's Trigger is set to Manual instead of Auto, or the scheduler has not run yet. Run Inventory > Operations > Run Scheduler to test, and check the route and forecast on the product.

What is the difference between min and max in an Odoo reordering rule?

Min is the floor for the forecasted quantity. When the forecast falls to or below it, the rule fires. Max is the level Odoo tops the stock back up to, so the order quantity is max minus current forecast. Min is not "order when on-hand hits this" and max is not "how much to order".

Do I have to run the scheduler manually in Odoo?

No. The scheduler runs automatically once a day through a scheduled action, so rules fire on their own. You only run it manually (Inventory > Operations > Run Scheduler) when you want to test a rule immediately instead of waiting for the next daily run.

Why does my reordering rule need a route?

The rule only signals that stock is low. The route decides what document that signal becomes: Buy creates a request for quotation, Manufacture creates a manufacturing order, and an internal route creates a transfer between warehouses. Without a route, the rule has no way to act and nothing is created.

My reordering rule fires but Odoo creates nothing. Why?

The route is set but its requirement is missing. A Buy route with no vendor cannot raise an RFQ, and a Manufacture route with no Bill of Materials has nothing to build from. Add a vendor on the Purchase tab or a Bill of Materials, then run the scheduler again.

Read next How to prevent negative stock in Odoo (and fix a valuation that has already gone wrong)

Open knowledge. Are you an Odoo partner who solves these problems too? Contribute your own solutions and grow toward Gold with the network.

For partners
When to get a partner

Some problems need a pair of hands, not a how-to.

dooPartners is a worldwide network of independent, Odoo-certified partners. Local where you are, with the network behind them when a project grows beyond one agency. You keep one point of contact, and you choose who you work with.

Find a partner near you