Pragmatic – Leading provider of open source business applications OpenERP, Ruby on Rails, Node.js, Talend, jaspersoft  – Pragmatic
Beyonce Adams

How to Create and Manage Multi‑level Bills of Materials in Odoo

Introduction

Think of a complex product—a custom mechanical keyboard, an industrial pump, or even a bicycle. Each is really a puzzle of smaller assemblies that finally click together to form the finished good. In Odoo, that puzzle is solved with a multi‑level BoM. Today we’ll break down exactly how to craft and control multi‑level Bills of Materials so your shop floor (or garage!) keeps humming.

Odoo Bill of Materials (BoM) 101

A BoM is the recipe card for your product: it lists every component, its quantity, and optionally the operations required to put things together. You create one by opening Manufacturing app → Products → Bills of Materials → New, selecting the Manufacture this Product type, and adding components and operations as needed. Odoo

Why Go Multi‑level?

In real life you rarely bolt every screw, spring, and sensor directly onto the final product. Subassemblies (PCB boards, gearboxes, wiring looms) are built first, then flow into the parent assembly. Nesting BoMs inside BoMs:
Keeps top‑level BoMs readable
Re‑uses the same subassembly in multiple finished goods
Lets you plan replenishment for each stage separately
Cuts lead‑time surprises by showing what’s missing at each level Odoo

Prerequisites: Preparing Your Odoo Environment

  1. Install Manufacturing (and Inventory, Purchase if you’ll automate procurement).
  2. Enable Work Orders if you want to track time and instructions at each operation (Manufacturing → Configuration → Settings). Odoo
  3. Create Your Products—both raw materials and subassemblies—before you start building BoMs.

Decide whether you’ll drive replenishment with Reordering Rules or Make‑to‑Order (MTO)—we’ll compare both shortly.

Building a Multi‑level BoM Step‑by‑Step

5.1 Create the Lowest‑Level Subassemblies

Start at rock bottom: every nut, IC chip, or bracket that has no further child components. For each one:
Open its product form → click Bill of MaterialsNew.
List the raw parts, quantities, and (optional) operations.
Save. Repeat for every subassembly.

Pro tip: Think bottom‑up, like stacking Lego bricks. It’s easier to snap tiny bricks together first than juggle them on a half‑built castle.

5.2 Nest Subassemblies Inside Higher‑Level BoMs

Now open the BoM of the next level up—say the PCB or gearbox—and add the completed subassemblies you just defined as components. Odoo treats them like any other part, but it now “knows” they themselves need manufacturing. Odoo

Finally, create or edit the BoM for the finished product (keyboard, pump, bike). Add:
Any remaining purchased items (screws, packaging).
All subassemblies from step 5.2.
Optional operations (assembly, quality test, painting).

When you confirm a Manufacturing Order (MO) for the top product, Odoo checks availability for every child level and can auto‑trigger work orders for each subassembly.

Planning & Automating Production

Multi‑level structures shine only if the right parts arrive at the right time. Odoo gives you two main automation paths: Odoo

OptionHow it WorksWhen to Use
0/0/1 Reordering Rule
Create a rule on each subassembly with Min = 0, Max = 0, Qty = 1. Any demand instantly creates an MO or Purchase RFQ. Flexible: stock can be reassigned if priorities change.
Most recommended—great for “pull” production and JIT.
MTO + Manufacture Routes
Tick Replenish on Order (MTO) and Manufacture on the Inventory tab of the subassembly. Demand is reserved specifically for the parent MO.

When you want a hard link between parent and child orders (e.g., custom one‑off jobs).

Whichever route you pick, make sure to:
Set lead times on products so Odoo schedules realistically.
Watch the Component Status on each MO; red means blockers, green means “let’s build!”.
For long chains, keep safety stock or forecast with the Master Production Schedule.

Pro Tips for Smooth Operations

  • Version control: The PLM module adds BoM versions—perfect when engineering tweaks parts mid‑season.
  • Apply on Variants: For color or size variants, mark which components belong to which variant so you aren’t buying the wrong shade of paint. Odoo
  • Use By‑products if your process spits out usable waste (e.g., sawdust briquettes).
  • Flexible vs. Blocked consumption: Allow slight overs/unders for materials like glue; lock down expensive parts like CPUs.

Analytics: Link BoMs to analytic accounts to capture true production cost on P&L automatically.

Conclusion

Multi‑level BoMs turn a chaotic parts list into a tidy, tiered playbook. By starting small, nesting subassemblies, and letting Odoo handle replenishment, you keep production flowing and inventory lean. Next time you tackle a complex product, remember: build from the bottom up, plan your replenishment, and let Odoo’s automation do the heavy lifting.

FAQs

1) Can I convert an existing single‑level BoM into a multi‑level one?
Yes—simply create new BoMs for any logical subassemblies and replace their raw‑part lines on the top‑level BoM with the new subassembly product.

2) Does the 0/0/1 rule work if I keep finished goods in stock?
Absolutely. The rule only applies to the subassembly; you can keep a traditional Min/Max on the finished product itself.

3) How do I track time for each operation in a multi‑level BoM?
Enable Work Orders, add operations to each BoM level, and equip shop‑floor tablets so operators can start/stop timers.

4) What happens if a subassembly uses variants (e.g., red vs. blue caps)?
Use the Apply on Variants column to tell Odoo which component applies to which variant, keeping your stock moves accurate.

5) Is MTO ever better than reordering rules?
Yes—when jobs are fully custom and you never want subassembly stock to float between orders (e.g., aerospace or medical devices).

SHARE | FOLLOW | SUBSCRIBE

Leave a Reply

Subscribe to Blog via Email.

Enter your email address to subscribe to this blog and receive notifications of new posts by email.
Loading

Recent Comments

Related Posts