In Odoo 20, a reordering rule holds a Min and a Max for one product in one location. When the forecast stock drops below the Min, Odoo orders enough to bring it back to the Max: a request for quotation to the product’s first vendor, a manufacturing order, or a transfer from another warehouse, depending on the route. A distributor usually puts Buy rules on the central warehouse and resupply rules on each branch, so the central warehouse buys and the branches draw from it. Odoo 20 can now suggest the Min and Max from your past sales.
How a rule decides what to order
The rule does not look at the stock on the shelf alone. It looks at the forecast: stock on hand, plus receipts on the way, minus deliveries already promised, up to the date a new order would arrive. When that forecast falls below the Min, the quantity To Order is the Max minus the forecast, rounded up to the Multiple if the product is bought in cartons or packs.
| Rule and situation | Value |
|---|---|
| Min | 20 units |
| Max | 60 units |
| Multiple | Carton of 12 |
| Forecast after this week’s orders | 15 units, below the Min |
| Needed to reach the Max | 45 units |
| To Order, rounded up to cartons | 48 units (4 cartons) |
The Multiple list shows the packagings on the product’s vendor pricelist, so add the carton there first. Rounding up can take stock slightly above the Max, and Odoo shows a warning when it does.
Before you create rules
- Product type. On the product’s General Information tab, set the type to Goods and tick Track Inventory. Without it Odoo does not track stock or run rules.
- Vendor. In the Purchase tab, add the supplier with its price, packaging and lead time. Odoo sends the request for quotation to the vendor at the top of the list, unless the rule names another.
- Lead time. The Lead Time on the vendor line, in days from order to receipt, decides how far ahead Odoo looks. For goods shipped by sea, it has to cover the voyage, customs clearance and the drive from the port, or the rule orders too late.
- Warehouses. Each branch or shop that holds stock is its own warehouse in Odoo, with its own stock location.
Rules for the central warehouse
- Open Inventory → Operations → Replenishment and click New.
- Choose the product and the location, usually the central warehouse’s stock location (WH/Stock).
- Enter the Min and the Max.
- Use the column settings icon at the end of the header to show Trigger, Route, Vendor and Multiple when you need them.
- Set the Trigger. Auto creates the order by itself when the daily scheduler runs or when a confirmed sales order pushes the forecast below the Min. Manual lists the product on the replenishment screen for a buyer to review and order.
Many distributors use Manual for imported lines, where a buyer groups items into one order per supplier, and Auto for local fast movers.
Branches and shops: resupply from the central warehouse
- In Inventory → Configuration → Settings, Warehouse section, turn on Storage Locations.
- Open each branch in Inventory → Configuration → Warehouses and, on the Warehouse Configuration tab, tick the central warehouse under Resupply From.
- On the products the branch sells, tick the new route on the Inventory tab, named after the branch, for example "Salmiya: Supply Product from Central".
- Create a reordering rule with the branch’s stock location, that route, and the branch’s own Min and Max.
When the rule triggers, Odoo creates a delivery from the central warehouse and a receipt at the branch, and the goods sit in an inter-warehouse transit location until the branch receives them. On the replenishment screen, the info icon of a branch line shows a Warehouses tab with the quantity available in each warehouse that can resupply it.
Suggested minimum and maximum in Odoo 20
Setting a Min and a Max for hundreds of items by hand is where most companies give up. Odoo 20 works them out from demand. Click the info icon on a rule to open Replenishment Information:
- Based on. The period Odoo averages daily demand over: the last 7 days, 30 days, 3 months or 12 months, the same month last year, the next month last year, last year’s quarter, or a demand you enter yourself. A percentage beside it scales the result up or down.
- Demand. Units per day, from deliveries to customers and to production, minus customer returns.
- Min as days of coverage. The Min is shown as the number of days of demand it covers. It turns green, orange or red against the replenishment lead time, so a Min that runs out before the next delivery stands out.
- Max as order frequency. The Max is the Min plus the demand of the days between orders.
To update many rules at once, select them on the replenishment screen and click Suggest: Odoo recalculates demand for the period and percentage you choose, keeps each rule’s days of coverage and order frequency, and rewrites the Min and Max. For seasonal goods, base the period on last year: Ramadan comes about 11 days earlier each year, so "next month last year" can catch a peak that "the last 30 days" misses.
Working from the replenishment screen
- To Reorder is the default filter, so the screen lists only what needs ordering now.
- Order buys or transfers the To Order quantity. In Odoo 20 it replaces the old Order and Order to Max buttons: a line ordered before it is due gets the Max minus the forecast, and a quantity you type yourself wins, with an undo icon to go back to Odoo’s figure.
- Automate orders the line and switches its rule to Auto from then on.
- Snooze hides a rule for a period, for example while a supplier is closed.
- Vendor as a column or a group puts every item of one supplier together, so one order covers them.
- Horizon days, set from the Manual filter in the left panel, list needs a few days before they fall due, so a buyer can plan a week of orders at once.
What we see go wrong in Kuwait
| What happens | Cause | Fix |
|---|---|---|
| Imported items run out before the container arrives | Vendor lead time set to the supplier’s production days only | Include shipping, clearance and the trip from the port in the lead time |
| Branch rule never fires | Rule set on WH/Stock instead of the branch location, or the resupply route not ticked | Check the location and the route on the rule |
| Odd quantities on purchase orders | Stock kept in units, supplier sells cartons | Add the carton to the vendor pricelist and set it as the Multiple |
| Shelves empty in Ramadan | Min and Max based on the last 30 days | Base seasonal items on last year |
| A request for quotation per product, every day | Auto trigger on imported lines | Manual trigger and one order per vendor from the replenishment screen |
We set up stock and replenishment for distributors and retailers in Kuwait and the Gulf, from the central warehouse to the last branch: see Odoo for trading and distribution, Odoo Inventory and Odoo Purchase.
What to do next
- Pick your 20 best-selling items and check their vendor, lead time and packaging in Odoo.
- Open Replenishment Information on each, choose a demand period, and see what Min and Max Odoo suggests.
- Book a consultation if you want help setting rules across your warehouses and branches.
