โ† Back to guides

How to Set Up Bills of Materials (BOM) in Odoo

A Bill of Materials (BOM) defines what components and operations are needed to produce a finished product. It's the foundation of manufacturing in Odoo โ€” everything from production planning to costing depends on accurate BOMs.

Prerequisites

  • Install the Manufacturing module (MRP).
  • Create your finished goods products (the things you manufacture) as storable products.
  • Create your raw material and component products as storable products.
  • Optionally, set up work centres if you want to track operations and labour costs.

Create a simple BOM

  • Go to Manufacturing โ†’ Products โ†’ Bills of Materials.
  • Click New.
  • Select the Product โ€” the finished good this BOM produces.
  • Set BOM Type to "Manufacture this product."
  • Set the Quantity โ€” how many units this BOM produces (usually 1, but can be a batch size).
  • Under Components, add each raw material or component with its required quantity.
  • Click Save.

Example: A "Wooden Table" BOM might include: 1ร— Table Top, 4ร— Table Legs, 16ร— Wood Screws, 1ร— Finishing Oil (0.5L).

Multi-level BOMs (sub-assemblies)

If a component is itself manufactured, you create a BOM for that component too. Odoo handles the chain automatically:

  • Create a BOM for the sub-assembly (e.g., "Table Leg Assembly" requires 4ร— legs + 8ร— screws).
  • In the parent BOM (e.g., "Wooden Table"), add "Table Leg Assembly" as a component.
  • When you create a manufacturing order for the table, Odoo can automatically create a manufacturing order for the leg assembly if there's insufficient stock.
  • This works to any depth โ€” sub-assemblies can contain sub-sub-assemblies.

Phantom BOMs (kits)

  • Set BOM Type to "Kit" to create a phantom BOM.
  • Phantom BOMs don't create manufacturing orders. Instead, when the kit product is sold or included in another BOM, it "explodes" into its components.
  • Example: A "Starter Pack" kit containing Product A + Product B + Product C. When sold, Odoo picks the three individual products from inventory โ€” the kit itself is never manufactured or stocked.
  • Useful for bundled products, gift sets, or any product that's really just a combination of other products.

BOMs with product variants

  • If your product has variants (e.g., size, colour), you can create a single BOM that applies to all variants with variant-specific component rules.
  • On the BOM, leave the product variant field empty to apply to all variants.
  • On individual component lines, use the Apply on Variants field to specify which variants require that component.
  • Example: A "T-Shirt" BOM where all sizes use the same thread and label, but the fabric quantity varies by size.

Add operations (routing)

Operations define the steps needed to produce the product:

  • First, create work centres under Manufacturing โ†’ Configuration โ†’ Work Centres. Each work centre represents a production station (e.g., "Cutting Station", "Assembly Line", "Paint Booth").
  • Set the hourly cost for each work centre โ€” this is used for labour cost calculation.
  • On the BOM, go to the Operations tab and add operations.
  • For each operation, specify: the work centre, the expected duration, and optionally which components are consumed at this step.
  • Operations create work orders when a manufacturing order is generated โ€” operators see step-by-step instructions.
๐Ÿ’ก

You don't need operations for basic manufacturing. If you just need to track component consumption and finished goods output, a BOM with components only is sufficient. Add operations later when you need shop floor tracking or labour costing.

BOM cost calculation

  • Click the BOM Structure & Cost button on any BOM to see the calculated cost.
  • The report shows: material cost (sum of component costs ร— quantities), operation cost (work centre hourly rate ร— duration), and total cost.
  • For multi-level BOMs, the cost report shows the full tree โ€” drilling down through sub-assemblies.
  • This cost can be used to set the standard cost of the finished product.

BOM versioning

  • If you have the PLM (Product Lifecycle Management) module, you can manage BOM versions through engineering change orders.
  • Without PLM, you can archive old BOMs and create new ones. Only active BOMs are used for production.
  • Always keep a record of which BOM version was used for each manufacturing order โ€” Odoo tracks this automatically.

Best practices

  • Verify quantities โ€” Before going live, produce a test batch using each BOM and verify that the component quantities are correct. Wrong BOMs mean wrong costs and wrong inventory.
  • Include scrap/waste โ€” If your process typically wastes 5% of a material, account for it in the BOM quantity. Better to plan for waste than to have production stall for lack of materials.
  • Use consistent units โ€” Make sure your component units of measure match how you purchase and stock them. Don't mix grams and kilograms across BOMs.
  • Keep BOMs up to date โ€” When you change a component or process, update the BOM. Outdated BOMs lead to inaccurate costs and production issues.

Accurate BOMs are the single most important thing in manufacturing ERP. If you need help setting up BOMs for your products, get in touch.

Setting up manufacturing in Odoo?

We configure Odoo MRP for Australian manufacturers. BOMs, routing, work centres โ€” let us get your production workflow right.

Get in touch โ†’