Multi-Level MPS BoM
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 150.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Invoicing (account) • Manufacturing (mrp) • Purchase (purchase) |
| Lines of code | 327 |
| Technical Name |
mps_bom_multilevel |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Invoicing (account) • Manufacturing (mrp) • Purchase (purchase) |
| Lines of code | 327 |
| Technical Name |
mps_bom_multilevel |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
Master Production Schedule Multi-level BoM
Full Bill of Materials expansion in Odoo's Master Production Schedule - one click, all levels, correct quantities
- Recursive BoM Traversal - Walks the entire BoM tree from top-level finished product down to purchased raw materials. No depth limit with cycle detection.
- Automatic MPS Line Creation - Every sub-assembly and component is inserted into the MPS automatically with correct quantity ratios.
- Quantity Ratio Propagation - Each child MPS line stores a cumulative ratio - the quantity needed per 1 unit of the top-level product.
- Forecast Cascading - When the top-level forecasted demand changes, all child lines update proportionally with one click.
- One-click Refresh - Re-sync all children instantly when the BoM has been modified.
- Duplicate Guard - Existing MPS lines for the same product/warehouse are updated rather than duplicated.
- Cycle Detection - Circular BoM references are detected and skipped with a warning log.
- Visual Hierarchy - Child MPS lines are visually badged with their expansion ratio in the list view.
The module adds intelligent BoM expansion to Odoo's Master Production Schedule:
- Step 1 - Add Finished Product: Planner adds the top-level finished product to the MPS (e.g., "Bicycle").
- Step 2 - Expand BoM: One click on "Expand Multi-level BoM" walks the entire BoM tree recursively.
- Step 3 - Automatic Creation: Every sub-assembly and component receives its own MPS line with the correct cumulative ratio.
- Step 4 - Enter Forecast: Planner enters the forecasted demand on the top-level product (e.g., 100 units).
- Step 5 - Propagate: Click "Refresh Sub-level Forecasts" - all child lines update proportionally.
BEFORE - Manual Process Without Module
Planner must manually add EVERY sub-assembly and component - 16+ manual steps, high risk of errors
â±ï¸ Time: ~15 minutes | ð Steps: 16 manual entries | â ï¸ Error risk: HIGH
AFTER - With MPS Multi-level BoM Module
One click expands entire BoM tree - all components auto-created with correct ratios
â±ï¸ Time: ~30 seconds | ð Steps: 1 click | â Error risk: ZERO
Prerequisites
- Odoo 18 Enterprise (MPS requires Enterprise edition)
- Installed modules:
mrp,mrp_mps,stock,purchase - Valid Bill of Materials defined for your products
Installation Steps
- Copy the
mps_bom_multilevelfolder to your Odoo addons directory. - Update the apps list: Apps â Update Apps List.
- Search for "Multi-Level MPS BoM" and click Install.
- Restart the Odoo server if needed.
Note: This module only works with Odoo Enterprise due to the mrp_mps dependency.
Step-by-Step Instructions
Step 1: Prepare Your BoM
Navigate to Manufacturing â Products â Bills of Materials and ensure your finished product has a complete multi-level BoM defined.
Step 2: Open Master Production Schedule
Go to Manufacturing â Planning â Master Production Schedule.
Step 3: Create a New MPS Line
Click New and select your finished product (e.g., "Bicycle"). Set the warehouse and company.
Step 4: Expand the BoM
Click the "Expand Multi-level BoM" button. The system will:
- Walk the entire BoM tree recursively
- Calculate cumulative ratios for every component
- Create or update MPS lines for each component
Step 5: Enter Forecast
On the parent (finished product) line, enter your forecasted demand in the period grid (e.g., 100 units for Q1).
Step 6: Propagate to Children
Click "Refresh Sub-level Forecasts". All child lines will update with quantities calculated as:
child_forecast = parent_forecast à child.bom_expansion_ratio
Step 7: Run MPS Replenishment
From here, use the standard MPS replenishment process to generate manufacturing orders and purchase orders.
Assembly Manufacturing
Automate planning for products with complex, multi-level BoMs - from finished goods down to raw materials.
Automotive Industry
Thousands of components per vehicle - expand entire BoM tree in seconds instead of days of manual entry.
Electronics Manufacturing
Multi-level PCBA assemblies with hundreds of components - ensure accurate component demand planning.
Make-to-Stock Production
Forecast finished goods demand once, automatically cascade to all sub-assemblies and raw materials.
Seasonal Production Planning
Plan for seasonal demand spikes - update parent forecast once, all child lines adjust automatically.
Engineering Change Management
When BoM changes, re-expand and refresh forecasts - never miss a component update again.
Q: Does this module work with Odoo Community Edition?
A: No. MPS is an Enterprise-only feature, so this module requires Odoo Enterprise 18.0.
Q: How does it handle components used in multiple places?
A: The module aggregates ratios. If a bolt appears in two sub-assemblies, the ratio is summed (e.g., 2 + 3 = 5 total per finished unit).
Q: What happens if I manually change a child line's forecast?
A: The module does NOT automatically write back. Manual changes will be overwritten the next time you click "Refresh Sub-level Forecasts".
Q: Can I expand multiple products at once?
A: Yes, via the server action "Expand Multi-level BoM" on the MPS list view - select multiple lines and run the action.
Q: How deep can the BoM tree be?
A: No depth limit. The recursion handles any depth, with cycle detection to prevent infinite loops.
Need Custom Logic or Have Questions?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module