Odoo 19 Manufacturing is a Community app built on three records: the bill of materials (what goes in), the work centre (where it is made) and the manufacturing order (one batch being made). Get BoMs and components' lead times right before anything else, add work centres and operations only when you need capacity planning or labour costing, and keep subcontracting, by-products and the Enterprise extras (Shop Floor, Master Production Schedule, PLM) for the second phase.
Bills of materials: the record everything depends on
A BoM lists components and quantities for a quantity of finished product. Its BoM Type is one of:
- Manufacture this product: a normal BoM that manufacturing orders consume.
- Kit: no manufacturing order; selling or delivering the kit moves its components instead. Useful for bundles and spare-part sets.
- Subcontracting: added by the Subcontracting setting, with a list of subcontractors.
Two BoM fields are worth setting deliberately. Flexible Consumption decides what happens when the operator consumes more or less than the BoM says: Allowed, Allowed with warning (the default) or Blocked, where only a manager can close the order. Manufacturing Readiness decides whether an MO is ready when all components are available or when those for the first operation are.
BoMs can be multi-level: a component can have its own BoM, and Odoo creates child MOs for it when the route is Manufacture. Variants can share one BoM, with lines that apply only to certain attribute values.
Work centres, operations and work orders
Out of the box an MO is a single step: consume components, produce the product. Turning on Work Orders in Manufacturing > Configuration > Settings adds operations to BoMs and work orders to MOs.
A work centre is a machine, line or team. The fields that matter:
| Field | Why it matters |
|---|---|
| Working hours (calendar) | Planning only schedules work orders inside these hours. |
| Time Efficiency | Default 100%; lower it if the centre runs slower than the standard times. |
| Setup Time and Cleanup Time | Added to every work order on that centre. |
| Cost per hour | Drives the labour and machine cost in product costing. |
| Alternative work centres | Where planning can move work if this centre is busy. |
| OEE Target | Default 90%; compared against actual effectiveness. |
Each BoM operation names a work centre and a duration. Duration Computation is Fixed (you type the minutes) or Computed (Odoo averages the last work orders, ten by default). Start with Fixed times you trust; switch to Computed once operators reliably start and stop their work orders. The Work Order Dependencies setting lets you say which operations must wait for which, so independent ones can run in parallel.
Work orders are processed from the MO in Community. The Shop Floor tablet interface and Gantt planning by production and by work centre come with the Enterprise MRP II module (mrp_workorder).
Manufacturing orders and warehouse steps
An MO goes through Draft, Confirmed, In Progress, To Close and Done (or Cancelled). Confirming reserves components and triggers replenishment for what is missing. With work orders enabled, Plan schedules them against work centre capacity.
Each warehouse also has a Manufacture setting with three options: Manufacture (1 step), Pick components then manufacture (2 steps) and Pick components, manufacture, then store products (3 steps). As with receipts and deliveries in part 12, add steps only when components physically move from a store to the production floor and someone will record that move.
Use Unbuild Orders for disassembly or to reverse a wrong production, and scrap from the MO for waste during production, so the consumption is recorded against the right order.
Subcontracting and by-products
Subcontracting (Community) is for products a job worker makes for you, typically from components you supply. Give the product a Subcontracting BoM listing the subcontractor, and buy the finished product from them on a purchase order. When the receipt is validated, Odoo records a subcontracting MO that consumes the components held at the subcontractor's location. Components reach the subcontractor through the Resupply Subcontractor route or a dropship from your vendor. A subcontractor portal (under /my/productions) lets the job worker open their receipts and record production details such as lots.
In India this is the job-work pattern, and the GST paperwork for goods sent out (delivery challans and e-way bills) needs separate attention; part 22 covers the tax side.
By-Products, enabled in settings, add secondary outputs to a BoM (A + B gives C + D). Each by-product carries a cost share percentage, so part of the production cost moves to it; the total share cannot exceed 100%. Use them for saleable offcuts and co-products, not for waste you will scrap anyway.
How MRP scheduling works in Odoo 19
Odoo schedules backwards from the date something is needed. The inputs are:
- Manufacturing Lead Time on the BoM: the average days to make the product. In multi-level BoMs the components' lead times add up.
- Days to prepare Manufacturing Order on the BoM: create and confirm MOs this many days early to leave time for components.
- Vendor lead times on the components' vendor price lines (see part 13).
- Reordering rules or make-to-order routes that trigger the MO in the first place.
Reordering rules plus the Replenishment screen are enough for many make-to-stock workshops. For forecast-driven planning across months, the Enterprise Master Production Schedule lets planners enter demand forecasts per product and period and see the suggested manufacturing and purchase quantities.
Scheduling is only as honest as your lead times. Measure them before you tune the planner.
Product Lifecycle Management (mrp_plm, Enterprise) adds engineering change orders: a proposed BoM or product change goes through stages (New, In Progress, Validated, Effective by default) with approvals, and the new BoM version applies when the change becomes effective. It is worth it when engineering and production are different teams and uncontrolled BoM edits have caused wrong builds.
A sensible manufacturing rollout order
- Components and finished products with units of measure, costs and vendor lead times.
- BoMs for the products you make most, tested on real batches.
- MOs without work orders; confirm that stock and cost come out right.
- Work centres and operations, with Fixed durations and hourly costs.
- Reordering rules and lead times for make-to-stock items.
- Later: subcontracting, by-products, Shop Floor, MPS, PLM, quality checks.
Manufacturing > Configuration > Settings Manufacturing > Products > Bills of Materials Manufacturing > Configuration > Work Centers Manufacturing > Operations > Manufacturing Orders
Manufacturing, work orders, subcontracting and by-products are Community; Shop Floor, MPS and PLM are Enterprise. Next is quality and maintenance, which hang off the same work centres. If you are moving BoMs out of spreadsheets or Tally stock journals, we can plan that with you.
Questions we get asked
Is Odoo 19 Manufacturing available in Community edition?
Yes. The Manufacturing app (mrp) is LGPL Community and includes bills of materials, kits, manufacturing orders, work centres, operations and work orders, unbuild orders, by-products and subcontracting. The Shop Floor tablet view and Gantt planning (MRP II), the Master Production Schedule, PLM engineering change orders and Quality checks on work orders are Enterprise-only modules.
What is the difference between a kit and a manufactured BoM in Odoo?
A BoM of type Manufacture this product is consumed by manufacturing orders: components go in, the finished product comes out and is stocked. A Kit BoM never creates a manufacturing order; when you sell or deliver the kit, Odoo moves its components directly. Use kits for bundles assembled at dispatch and normal BoMs for anything you actually produce and store.
How does subcontracting work in Odoo 19?
Give the product a BoM of type Subcontracting and name the subcontractor. Buy the finished product from that subcontractor with a purchase order. When the receipt is validated, Odoo records a subcontracting manufacturing order that consumes components from the subcontractor's location. You supply components with the Resupply Subcontractor route or by dropshipping from your vendor, and the subcontractor can record lots through the portal.
Do I need work centres to use Odoo Manufacturing?
No. Without the Work Orders setting, a manufacturing order is a single step that consumes components and produces the product, which is enough for simple assembly. Add work centres and operations when you need capacity planning, labour and machine costing, or a record of time spent per step. Operations then appear on BoMs and work orders on each manufacturing order.