All Articles
Odoo Module Tutorials

Odoo Manufacturing (MRP) Module: A Practical Implementation Guide

Shahid MalikBy Shahid MalikAugust 28, 202612 min read

How Odoo's Manufacturing (MRP) module actually works in practice — bills of materials, work orders, routings, and the configuration decisions that determine whether it fits your production process.

Manufacturing is one of the modules where I see the most implementations go wrong early — not because Odoo's MRP is weak, but because it's genuinely a different mental model from Sales or Inventory, and businesses configuring it themselves for the first time tend to underestimate how much the Bill of Materials structure drives everything downstream.

The Core Concept: Everything Flows From the BOM

The Bill of Materials (mrp.bom) is the foundation. It defines what components and quantities go into producing one unit of a finished product, and — critically — it determines what Odoo actually does when you confirm a manufacturing order: what gets reserved from stock, what work orders get generated, and what the expected cost of the finished good is.

Get the BOM structure wrong and everything built on top of it — costing, work order scheduling, component reservations — is wrong too, even though the rest of the configuration looks correct. This is the single most common root cause I find when a client says "manufacturing isn't giving us the numbers we expect."

Odoo supports a few BOM types worth understanding before you configure anything:

  • Manufacture this product — the standard case, a BOM that consumes components to produce a finished good.
  • Kit (Ship this product as a set of components) — no actual production step; used when you're selling a bundle that's really just multiple stock items shipped together.
  • Subcontracting — production happens at a vendor's location; Odoo tracks components sent to the subcontractor and the finished goods received back.

Picking the wrong BOM type for a product is a common early mistake — treating a kit as a manufactured product (or vice versa) creates work orders that don't match how the business actually operates.

Work Orders and Routings

Once you move beyond simple one-step manufacturing, routings (mrp.routing.workcenter) define the sequence of operations — cutting, assembly, quality check, packaging — each tied to a work center with its own capacity and cost. This is where Odoo's MRP genuinely competes with dedicated manufacturing systems: you can track actual time spent per operation, work center utilization, and bottlenecks, not just a single "manufacture" step.

The practical decision point: do you need routings at all? For simple, single-step production (assemble component A and B into product C, done), enabling full routings and work centers adds configuration overhead without adding value — a single-step BOM is enough. Routings earn their complexity once you have multiple real production stages with different resources, or you actually need work-center-level scheduling and costing.

Reordering and Production Planning

Odoo's Manufacturing module connects directly to Inventory's reordering rules — a Manufacturing Order (MO) can be triggered automatically when stock for a manufactured product drops below a threshold, the same mechanism used for purchase reordering, just pointed at a BOM instead of a vendor. For make-to-order businesses, MOs instead get generated directly from confirmed sales orders.

Getting this right requires an honest answer to one question up front: is your business make-to-stock, make-to-order, or a mix depending on the product line? Configuring reordering rules without that answer settled leads to either chronic overproduction (tying up cash in inventory nobody ordered) or missed customer deadlines waiting on unplanned production runs.

Costing: Where the Numbers Actually Come From

Manufacturing costing pulls together the BOM's component costs, work center operating costs (if you're using routings), and your chosen costing method (standard, average, or FIFO on the components). This is worth getting right before go-live, not after — I've seen businesses run for months on manufacturing costs that were quietly wrong because the work center cost-per-hour was never actually configured, defaulting to zero and understating the true cost of every finished good.

What I'd Actually Check Before Implementing

  1. Map your real production process on paper first — every stage, every resource, every quality checkpoint — before opening Odoo's configuration screens. Configuring routings based on a rough mental model instead of the documented actual process is how you end up rebuilding it three months in.
  2. Decide your costing method deliberately, with your accountant or finance lead involved, not as a default left unconfigured.
  3. Start simple. A single-step BOM with no routings, expanded later once you've validated the basic flow, is almost always a better implementation path than starting with full multi-operation routings and work-center scheduling on day one.
  4. Check your existing custom modules and integrations if this is a migration rather than a fresh implementation — manufacturing customizations are some of the most common casualties of a rushed version upgrade, because BOM and routing structures change meaningfully between major Odoo versions.

If you're implementing or migrating Odoo Manufacturing and want a second opinion on your BOM/routing structure before it's locked in, get in touch — this is genuinely one of those areas where an hour of review before go-live saves months of quietly-wrong numbers after.

Related Articles

Shahid Malik - AI-First Odoo Consultant

Shahid Malik

AI-First Odoo ERP Specialist

Shahid Malik is an AI-first Odoo consultant helping businesses solve complex ERP and business process challenges. His work combines Odoo consulting, process optimization, automation, integrations, migrations, and practical AI solutions to build scalable and reliable business systems.

Book a consultation for your Odoo project
Discuss Your Odoo Project