In Odoo there are several different ways to ensure that you have sufficient stock to satisfy customer orders.
- Replenish on Order (MTO – Make to Order)
- For every customer order (or manufacturing order) you place a Purchase Order or create a Manufacturing Order.
- Odoo can consolidate supply so that one PO is for multiple demand orders (you can configure this behaviour, as explained below).
- You manufacture or purchase based upon a plan (you could use the Odoo MPS app for this).
- Setup re-ordering rules for products so that you can automatically create Requests for Quotations (RFQ – draft Purchase Orders) or draft Manufacturing Orders. This can be configured.
As ever, automation can sometimes be confusing so it’s important to understand the configuration options that exist within Odoo.
Fortunately, Odoo lets you configure this (though there’s not much documentation to explain how to do it).
- If you use Replenish on Order (MTO) to buy from vendors, an RFQ for one sales order might have lines added for another sales order – and maybe you want to keep them separate.
- If you create RFQs manually and use reordering rules you might find that the RFQ you are working on gets updated by the scheduled job. Here’s how to stop that happening.
- Replenish on Order (MTO) has changed in Odoo 13 so that an order is NOT created if there is stock available. This is a useful feature, but you might prefer the way it worked in Odoo 12 and earlier (see below).
Let’s start with the basics
Configuration of Routes
The first step is to enable Routes in Inventory Settings:
Once “Multi-Step Routes” are selected, you can view all the Routes in Inventory / Configuration / Routes
These are the three “basic” Routes in Odoo, but there are several more available, including “Drop Shipment“.
These same three routes are available to select for products, and note that multiple routes can be selected:
In this example, the product is “Make to Order” and “Buy”, which means that when you confirm a Sales Order, Odoo will attempt to either add this demand to an existing RFQ (draft Purchase Order) or create a new RFQ.
- In later versions of Odoo, you can use “Drop Shipment” instead. This is “MTO” + “Buy”, but the goods are shipped direct to the customer.
“Replenish to Order (MTO)” + Manufacture means that you will manufacture to order.
Where can Routes be selected?
This is defined for each Route:
These are the four options:
- Product Categories
- Sales Order Lines
It can be convenient to setup the standard routes on product categories so that users don’t have to remember to specify them for each product, or you could set routes automatically (using Automated Actions).
You can set routes on Sales Order lines, which would be useful if you normally rely on reordering rules, but sometimes want to use MTO.
Create separate RFQs
It’s possible to configure Odoo to always create a new RFQ and not add the demand to an existing RFQ.
As explained above, ensure that “Multi-Step Routes” is enabled in Inventory settings. Then enable Developer Mode and navigate to Inventory / Configuration / Rules
Select the “Buy” rule:
This is the “Buy” rule for the main warehouse. You may have other “Buy” rules for other warehouses.
- Note that the “Propagation” options are only available in Developer Mode
Change “Propagation of Procurement Group” to Propagate. Now you should find that the MTO method will generate a separate RFQ for each sales order
An extra step is required if you are using Reordering Rules.
Navigate to Inventory / Master Data / Reordering Rules
You should create a new Procurement Group to be used by the Reordering Rules. The same one can be used for all the Reordering Rules, and you can set this as a default.
It is possible to create Reordering Rules automatically for new products and you could add the Procurement Group field to this Automated Action.
Should MTO check stock first?
In Odoo 12 and earlier, Make to Order rules would not check for available stock (so an RFQ or draft Manufacturing Order would be created – or updated – regardless of whether any inventory was available).
From Odoo 13 onwards the inventory balance is checked first, but you can change this by configuring Inventory Rules.
As explained above, enable Multi-Step Routes and navigate to Inventory / Configuration / Rules:
Select the Replenish On Order (MTO) rule for customers.
The standard setting for Supply Method is “Take from Stock, if unavailable, trigger another rule”:
The explanation on the right tells you that if stock is not available (in the specified Source Location) a rule will be triggered. This will create an RFQ (draft Purchase Order) or add to an existing RFQ (see above for how to change that behaviour).
There are three options for Supply Method:
- “Take from Stock” isn’t correct for MTO.
- “Trigger another rule” is the way it worked in Odoo 12 and earlier, meaning that an RFQ will always be created (or demand added to an existing RFQ), regardless of the stock available.
- “Take from Stock, if unavailable, trigger another rule” is the default in Odoo 13, as explained above.
If we select the 2nd option, the description on the right changes and the behaviour will be the same as it was in Odoo 12 (and earlier).
The same options are available for Manufacturing Orders. Simply select the appropriate rule.
This is a useful route that effectively combines “Make to Order” and “Buy”. This is when your vendor delivers direct to your customer.
Navigate to Purchase / Configuration / Settings: