This module add a Make To Stock + Make to Order Route.
If you choose the make to stock + make to order rule instead of the make to order route, the creation of a purchase order will depend on the virtual stock. There are 3 cases :
- The virtual stock of the product is 0 =\> It will act exactly like the make to order route.
- The virtual stock is equal to the quantity ordered =\> It will act exactly like a make to stock route
- The virtual stock is more than 0 but less than ordered quantity =\> On part of the products will be taken from stock and a purchase order will be created for the rest. So it will act like both make to order and make to stock rule.
Example : We have a virtual stock of : 1 product A A sale Order is made for 3 products A. 2 Procurements will be created :
- 1 with a make to stock rule and a quantity of 1
- 1 with a make to order rule and a quantity of 2.
After validation, a purchase order with 2 products will be created.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Adds a new 'Make To Order + Make To Stock' route that decides automatically, based on virtual stock, whether to take products from stock, create a purchase order, or split the demand between both.
This module adds a new procurement rule action called 'Choose between MTS and MTO' and a new route named 'Make To Order + Make To Stock'.
On the warehouse form, a new option 'Use MTO+MTS rules' appears next to the delivery steps. When enabled, Odoo creates or updates a rule that splits demand between a Make To Stock rule and a Make To Order rule.
When a sale or other demand is processed through this route, Odoo checks the virtual stock of the product at the source location of the MTS rule: - If virtual stock is zero or negative, the whole quantity follows the Make To Order rule (for example, a purchase order is created). - If virtual stock covers the full ordered quantity, the whole quantity is taken from stock (Make To Stock). - If virtual stock covers only part of the quantity, the covered part is taken from stock and the remaining part follows the Make To Order rule, creating two separate procurements.
On procurement rules, the new action shows two extra fields, 'MTS Rule' and 'MTO Rule', visible only when the action is 'Choose between MTS and MTO'. A validation prevents saving if either rule is missing or if their source locations differ.
The module touches stock.rule, stock.warehouse and stock.route, and adds fields to the warehouse and rule forms.
Depends on
Required by other modules
Models and fields (2)
- stock.rule · extends an existing modelaction, mto_rule_id (MTO Rule), mts_rule_id (MTS Rule)
- stock.warehouse · extends an existing modelmts_mto_rule_id, mto_mts_management (Use MTO+MTS rules)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/stock-logistics-warehouse.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0You have to select 'Use MTO+MTS rules' on the company's warehouse form.
Known issues
If you cancel a delivery order and then recreate it from Recreate Delivery Order button in sale order form, then the stock level at the time of the Re-Creation won't be taken into account. So if a purchase order was created when the sale order was first validated, a similar purchase order will be created during the Re-creation of the delivery order, even if not needed regarding the actual stock.
Usage
Source · Odoo 18.0You have to select the mts+mto route on the product form. You should not select both the mts+mto route and the mto route.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.