In Odoo there are several different ways to ensure that you have sufficient stock (e.g. to satisfy customer orders).
- Make to Order (MTO)
- Note: the description for MTO changed in Odoo 12 from “Make to Order” to “Replenish on Order (MTO)” so we’ll use MTO as an abbreviation.
- For each customer order (or manufacturing order), Odoo can create a matching Purchase Order or Manufacturing Order.
- Odoo can consolidate supply so that one PO is for multiple demand orders (you can configure this behaviour, as explained below).
- Manufacture or purchase based upon a plan (you could use the Odoo MPS app for this).
- Setup re-ordering rules for products so that Odoo automatically creates Requests for Quotations (RFQ – draft Purchase Orders) or Manufacturing Orders. The behaviour can be configured. This has been enhanced in Odoo 14.
Note that Replenish on Order (MTO) is not available by default in Odoo 14 because the recommended approach is to use the new replenishment tool. However, it is easy to reactivate this route and there are some improvements in version 14.
Configuration of Routes
As ever, automation can sometimes be confusing so it’s important to understand the configuration options that exist within Odoo.
- If you buy from vendors on an MTO basis, an RFQ that was created for one sales order might be updated with demand from another sales order. It’s possible to keep them separate.
- If you create RFQs manually and use reordering rules you might find that an RFQ you created manually is updated by the scheduled job. Here’s how to stop that happening.
- MTO logic 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. 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
Shown above are the three “basic” Routes in Odoo 13 and earlier (there are others, including “Drop Shipment“).
As noted above, in Odoo 14 the MTO route has been archived, but it’s easy to re-activate it.
These basic routes can all be selected for products, and note that more than one can be selected.
- This could be used if a product can either be made or made or purchased
- Or it is used for Make to Order (MTO)
In this example, the product is MTO 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 from the vendor to the customer.
Similarly, MTO + Manufacture means that you will manufacture to order.
Where can Routes be used?
You can choose where each route can be used:
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 on products (using Automated Actions).
- Some routes should be set for warehouses. This is used for inventory and manufacturing options (for 1, 2 or 3 steps), but these are enabled from the warehouse maintenance screen.
- You can also set routes on Sales Order lines, which would be useful if you normally rely on reordering rules, but sometimes want to use MTO or maybe if you normally manufacture an item but sometimes buy it.
Create separate RFQs
It’s possible to configure Odoo to always create a new RFQ and not add the demand to an existing RFQ. Here’s how to do it:
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 (note that if you have multiple warehouses each may have its own “Buy” rule) and ensure that you are in Developer Mode.
Change “Propagation of Procurement Group” to Propagate as shown below. Now you should find that the MTO method will generate a separate RFQ for each sales order
There are three options for “Propagation of Procurement Group”:
- Leave Empty – this will merge requirements
- Propagate (see above)
- Fixed – this allows you to specify a Procurement Group
An extra step is required if you are using Reordering Rules and want to create separate RFQs.
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 (MTO) rules would not check for available stock (so an RFQ or draft Manufacturing Order would be created regardless of whether any inventory was available).
In Odoo 13 the inventory balance is checked first, but you can change this by configuring Inventory Rules (and note that there are big changes in Odoo 14).
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, and it must be one of the other two options .
- “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 MTO and Buy. This is when your vendor delivers direct to your customer.
Navigate to Purchase / Configuration / Settings:
Now Odoo will automatically create RFQs and a single inventory transaction for the goods to be shipped from the vendor to the customer.