Odoo 19 MTO: trace a confirmed sale to its manufacturing demand
Choose a demand-linked MTO scenario, verify the bill of materials and diagnose missing or cancelled manufacturing orders without promising stock availability.

Applicability
Odoo 19 Sales, Inventory and Manufacturing; MTO enabled, manufactured product with valid bill of materials, and configuration/production rights. Confirm edition and app entitlement for the deployed database. This is a single-level manufacturing scenario, not subcontracting or multilevel planning.
Research method
Research of official Odoo 19 documentation, including its published source where pages were unavailable; examples are fictitious editorial calculations. No new Odoo product testing, customer case study or hardware trial was performed.
Use MTO when a confirmed customer order should create traceable manufacturing demand. Use stock-level reordering when replenishment should respond to inventory thresholds. They have different triggers; a manual Replenish click is not the normal MTO trigger. Official strategy comparison.
Contents
- Follow one MTO order
- Worked example: demand is not available material
- If the manufacturing order is missing
Follow one MTO order
- Enable Replenish on Order (MTO) in Inventory settings.
- Set MTO on the manufactured product and confirm its bill of materials. In Odoo 19 Buy/Manufacture routes may be hidden and applied from product configuration; a missing checkbox alone is not a diagnosis.
- Add that exact product/variant to a quotation and confirm the sales order.
- Inspect its Manufacturing smart button and source-linked manufacturing order; check components and dates before production.
- Complete actual manufacturing and validate actual delivery as separate operations.
MTO creates replenishment even when the finished product already has stock. The resulting MO is normally confirmed from SO confirmation. Cancelling the generated document does not automatically create a replacement. Odoo 19 MTO behavior.
Worked example: demand is not available material
Fictitious workshop example: sell three display stands. Each stand’s BoM requires two panels and four brackets. Demand is 3 × 2 = 6 panels and 3 × 4 = 12 brackets. On hand: four panels and twenty brackets. The panel shortage is 6 − 4 = 2; bracket surplus after this job would be 20 − 12 = 8, ignoring reservations for other jobs.
Assume illustrative costs of HKD 150 per panel and HKD 10 per bracket. Listed component cost is 6 × 150 + 12 × 10 = HKD 1,020 before labor, scrap and overhead. These are planning assumptions, not a valuation report or APAA job result. An automatically created MO cannot make the missing two panels available or guarantee the promised delivery date.
If the manufacturing order is missing
Check confirmed SO state, exact variant, MTO activation, BoM applicability and the selected warehouse before creating another MO. An existing but cancelled MO is a different case: the official workflow warns that automatic replacement is not provided. Record the original order reference when planning recovery to avoid manufacturing the demand twice.
If the customer cancels the SO, its replenishment documents need separate review; do not assume production has stopped. For setup help, contact APAA.
The cover is a generic illustration, not an Odoo 19 operation screenshot.
Sources
- Odoo 19 — Replenish on order (MTO)
Odoo 19 MTO activation, BoM requirement, hidden routes, SO-linked MO and cancellation limits.
Source checked
- Odoo 19 — Replenishment
Demand-linked MTO versus automatic/manual stock-level reordering rules.
Source checked