Bill of materials¶
A bill of materials (or BoM for short) documents specific components, along with their respective quantities, that are needed to produce or repair a product. In Odoo, BoMs serve as blueprints for manufactured goods and kits, and often include production operations and step-by-step guidelines, as well.
BoM setup¶
To create a BoM, go to and click New.
Next, set the BoM Type to Manufacture this product.
Then, specify required components and, if necessary, define any manufacturing operations.
Tip
Individual BoMs can also be quickly accessed or created by clicking the Bill of Materials smart button on any product form, as accessible through the Sales, Inventory, and Manufacturing apps, as well as through any internal links where a product is referenced (such as in a field or a line item).
The BoM form also has the following header fields:
Product Variant: restricts the BoM to one specific variant of the product; only shown when the product has variants. When left blank, the BoM applies to every variant.
Quantity: the smallest quantity that this BoM can produce. If the BoM uses operations, make sure this matches the work center’s capacity.
Reference: an optional internal code for the BoM.
BoM Type: besides Manufacture this product and Kit, a Subcontracting type becomes available once subcontracting is configured (see Basic subcontracting).
Company: restricts the BoM to one company, in a multi-company database.
Once the BoM is saved, two smart buttons appear: Operations Performance, which opens a report of the completed work orders for the BoM’s operations, and BoM Overview, which opens a full breakdown of the BoM’s components, operations, and costs, including those of any sub-assemblies.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM)
- shows
- A BoM form for product "Drawer", Components tab, listing several component lines with quantities.
- data
- Product "Drawer"; components "Drawer Case", "Drawer Slide", "Drawer Handle".
- module
- mrp
- notes
- English UI, light theme, 1440px width. Caption: "BoM for Drawer, Components tab."
Components¶
In the Components tab of a BoM, specify components used to manufacture the product by clicking Add a line. From the Components drop-down menu, select from existing products or create a new product by typing the name and selecting either the Create ” “ option to quickly add the line item, or the Create and edit… option to add the component and continue to its configuration form. Alternatively, click Catalog to add components from the product catalog view.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ Components tab
- shows
- The Components tab with the product drop-down open, showing a search result and the "Create" and "Create and edit..." options.
- highlight
- The component drop-down menu.
- data
- BoM for product "Drawer"; searching for component "Drawer Handle".
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the tab.
Optionally, access additional fields by clicking the (settings adjust) icon to the far-right of the Components tab. Tick the checkboxes for the following features to enable these columns:
Apply on Variants: specify which product variant each component is used in. When the field is left blank, the component is used in all product variants.
Consumed in Operation: specify the operation using the component. Useful for determining manufacturing readiness.
Highlight Consumption: tick the checkbox to force operators to check the Consumed checkbox on a manufacturing order (MO).
screenshot: manufacturing-bom-consumed-field- menu
- Manufacturing ‣ Operations ‣ Manufacturing Orders ‣ (MO) ‣ Components tab
- shows
- The Components tab of an MO with a component line and its "Consumed" checkbox, unticked.
- highlight
- The "Consumed" checkbox.
- data
- MO "WH/MO/00001" for product "Drawer"; component "Drawer Handle".
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the component line.
Not doing so triggers the Consumption Warning error message, where the consumed component quantity must be manually inputted. Otherwise, the operation cannot be completed.
screenshot: manufacturing-bom-consumption-warning- menu
- Manufacturing ‣ Operations ‣ Manufacturing Orders ‣ (MO) ‣ Produce All
- shows
- The "Consumption Warning" dialog listing a component whose consumed quantity differs from the BoM quantity, with a field to confirm the actual quantity used.
- data
- MO "WH/MO/00001" for "Drawer"; component "Drawer Handle" consumed 3 instead of 2.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the dialog.
Operations¶
Add an operation to a BoM to specify instructions for production and register time spent on an operation. To use this feature, first enable the Work Orders feature by going to . In the Operations section, tick the Work Orders checkbox to enable the feature.
See also
- menu
- Manufacturing ‣ Configuration ‣ Settings
- shows
- The Settings page scrolled to "Operations"; the "Work Orders" checkbox ticked.
- highlight
- The "Work Orders" checkbox.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the setting block.
Next, navigate to the BoM by going to and selecting the desired BoM. To add a new operation, go to the Operations tab, and click Add a line.
Tip
Every operation of every BoM can also be managed from a single list, by going to . From either list, click the Archive Operation button on an operation’s form to archive it.
Doing so opens the Create Operations pop-up window, where the various fields of the operation are configured:
Operation: name of the operation.
Work Center: select existing locations to perform the operation, or create a new work center by typing the name and selecting the Create ” “ option.
Apply on Variants: specify if this operation is only available for certain product variants. If the operation applies to all product variants, leave this field blank.
Duration Computation: choose how time spent on the operation is tracked. Opt for Compute based on tracked time to use the operation’s time tracker or Set duration manually if operators can record and modify time themselves.
Choosing the Compute based on tracked time option enables the Based on last __ work orders option, which automatically estimates the time to complete this operation based on the last few operations. Choosing Set duration manually enables the Default Duration field instead.
Default Duration: estimated amount of time to complete the operation; used for planning manufacturing orders and determining work center availability.
Company: specify the company the BoM is available in.
Include operation details in the Work Sheet tab. Choose PDF to attach a file or Google Slide with public access to share a link. Select Text to type instructions in the Description text field.
Tip
Type / for a list of formatting options and features, including ChatGPT.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ Operations tab ‣ (operation) ‣ Work Sheet ‣ Text
- shows
- The Description text field's power box (triggered by typing "/") listing formatting options, including a "ChatGPT" entry.
- highlight
- The "ChatGPT" entry in the power box.
- module
- mrp, web_editor
- notes
- English UI, light theme, 1440px width, crop to the power box.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ Operations tab ‣ Add a line
- shows
- The "Create Operations" pop-up window filled in with an Operation, Work Center, Duration Computation and Default Duration.
- data
- Operation "Assembly" on work center "Assembly Line 1", default duration 60 minutes.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the dialog.
Finally, click Save & Close to close the pop-up window. To add more operations, click Save & New and repeat the same steps above to configure another operation.
Note
Each operation is unique, as it is always exclusively linked to one BoM.
Tip
After creating an operation, click the Copy Existing Operations button to choose an operation to duplicate.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ Operations tab
- shows
- The Operations tab with the "Copy Existing Operations" link button, and a selection list of operations from other BoMs.
- highlight
- The "Copy Existing Operations" button.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the tab.
Miscellaneous¶
The Miscellaneous tab contains more BoM configurations to customize procurement, calculate costs, and define how components are consumed.
Manufacturing Readiness: choosing When components for 1st operation are available shows the Component Status as available as soon as the components consumed by the first operation are in stock. This indicates that although not all components are available, operators can at least begin with the first operation. Choosing When all components are available only shows the status as available once every component is in stock. The Component Status shown on a confirmed MO takes one of four values: Available, Expected (a receipt is scheduled in time), Late (a receipt is scheduled, but too late), or Not Available.
Tip
Specify which operation consumes each component on the BoM in the Highlight Consumption field.
screenshot: manufacturing-bom-component-status- menu
- Manufacturing ‣ Operations ‣ Manufacturing Orders ‣ (confirmed MO)
- shows
- A confirmed MO with the "Component Status" smart button/label showing "Available" in green.
- highlight
- The "Component Status" indicator.
- data
- MO "WH/MO/00001" for product "Drawer", all components in stock.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the status area.
Flexible Consumption: specifies if components used can deviate from the quantity defined on the BoM. Choose Blocked if operators must adhere strictly to the BoM quantity. Otherwise, choose Allowed or Allowed with warning.
Routing: select the preferred warehouse’s manufacturing operation type for products produced in multiple warehouses. If left blank, this warehouse’s
Manufacturingoperation type is used by default.Operation Dependencies: enables sequencing rules between the BoM’s operations. See Work order dependencies for details.
Project: link the BoM to a project, so that manufacturing orders created from it are automatically linked to that project too. Only visible with the Project app installed.
Manuf. Lead Time: define the number of days needed to complete a MO from the date of confirmation.
Days to prepare Manufacturing Order: number of days needed to replenish components, or manufacture sub-assemblies of the product. Click the Compute button to have Odoo calculate this value automatically, based on the components’ and sub-assemblies’ replenishment lead times.
See also
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ Miscellaneous tab
- shows
- The Miscellaneous tab of a BoM with Manufacturing Readiness, Flexible Consumption, Routing, Manuf. Lead Time and Days to prepare Manufacturing Order fields filled in.
- data
- BoM for product "Drawer".
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the tab.
Add by-products to BoMs¶
A by-product is a residual product that is created during production in addition to the main product of a BoM. Unlike the primary product, there can be more than one by-product on a BoM.
To add by-products to a BoM, first enable the By-Products feature in . In the Operations section, tick the checkbox for By-Products to enable the feature.
- menu
- Manufacturing ‣ Configuration ‣ Settings
- shows
- The Settings page scrolled to "Operations"; the "By-Products" checkbox ticked.
- highlight
- The "By-Products" checkbox.
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the setting block.
Once the feature is enabled, add by-products to a BoM by clicking the By-products tab. Click Add a line (or Catalog to pick one from the product catalog), and fill in the By-product, Quantity, and Unit of Measure. Optionally, specify a Produced in Operation for the by-product.
Two more columns can be enabled from the (settings adjust) icon at the top-right of the list: Cost Share (%), the percentage of the MO’s total production cost assigned to the by-product (the total of all by-products on a BoM cannot exceed 100%), and Apply on Variants, which restricts the by-product line to specific product variants.
Example
The by-product, Mush, is created in the Grind grapes operation when producing Red Wine.
- menu
- Manufacturing ‣ Products ‣ Bills of Materials ‣ (BoM) ‣ By-products tab
- shows
- The By-products tab of the "Red Wine" BoM with a line for by-product "Mush", quantity and "Grind grapes" as the Produced in Operation.
- data
- BoM for product "Red Wine"; by-product "Mush"; operation "Grind grapes".
- module
- mrp
- notes
- English UI, light theme, 1440px width, crop to the tab.