Purchase - Add Products from BoM
This module was written to be possible Add Products from BoM in Purchase Order.
auto_awesome What this module does
AI-generated from the code · Odoo 12.0Adds an "Add Products from BoM" button on purchase orders that opens a wizard to explode a Bill of Materials and select the raw components to buy.
On a purchase order form, a new button "Add Products from BoM" appears above the order lines. It opens a wizard where the user picks a finished product that has at least one Bill of Materials, chooses the BoM and a quantity, then clicks "Get Products from BoM". The wizard explodes the BoM and lists the raw components with their quantity to buy, unit of measure, purchase unit of measure, unit price, quantity available in stock, quantity after buy and total product value.
Each suggested line is selected by default; the user can unselect lines, change quantities or prices, and lines with no stock are highlighted in red. A component that itself has a BoM can be further exploded with "Add Products from BoM", and "Return Products from BoM" removes the lines created by that explosion. When the user clicks "Add Products", the selected components are added to the purchase order; if a component is already on the order, its quantity is increased instead of creating a duplicate line.
The module also adds a stored counter of Bills of Materials on products, used to filter the product selection. It touches purchase.order, purchase.order.line, product.product, mrp.bom and the two wizard models add.products.from.bom and add.products.from.bom.lines.
Depends on
Models and fields (3)
- product.product · extends an existing modelbom_count
- add.products.from.bom · new modelbom_id (Bill of Material), bom_ids (Bill of Materials), product_id (Product), currency_id (Currency), product_qty (Quantity), purchase_id (Purchase Order), product_uom_id (Unit of Measure), raw_product_line_ids (Raw Products)
- add.products.from.bom.lines · new modelbom_id (Bill of Material), bom_ids (Bill of Materials), has_bom, price_unit (Unit Price), product_id (Product), currency_id (Currency), product_qty (Quantity to Buy), product_uom_id (Unit of Measure), purchase_uom_id (Purchase Unit of Measure), exploded_product (Already Exploded Product), selected_product (Selected Product), product_qty_stock (Quantity Available in Stock), main_bom_product_id (Main BoM Product), orig_bom_product_id (Origin BoM Product), product_finished_id, total_product_value (Total Product Value), product_qty_after_buy (Quantity After Buy)
Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/purchase-workflow.
terminal Installation and usage
OCA documentation · Odoo 12.0Installation
Source · Odoo 12.0This module depends on:
- purchase_mrp
Usage
Source · Odoo 12.0To use this module, you need to:
- Go to Purchase Order click the button 'Add Products from BoM' inform the Product, BoM and quantity and click 'Get Products from BoM', will appear the list of products where you can change the Price or Quantity if necessary, in case of Purchase UoM are different from Product UoM the Product Quantity are automatic change, in the case of Finished Product has another Product with BoM inside the type Kit/phanton will be automaticlly exploded the type Manufacture this product/normal will appear with button 'Add Products from BoM' to make possible also exploded this product, select the products to be add in the purchase lines then click in button 'Add Products'.
No verified information in OCA: Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.