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.
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
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
Decide whether you’ll drive replenishment with Reordering Rules or Make‑to‑Order (MTO)—we’ll compare both shortly.
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 Materials → New.
✅ 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.
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.
Multi‑level structures shine only if the right parts arrive at the right time. Odoo gives you two main automation paths: Odoo
Option | How it Works | When 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.
Analytics: Link BoMs to analytic accounts to capture true production cost on P&L automatically.
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.
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).
Leave a Reply
You must be logged in to post a comment.