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 Manufacturing app ‣ Products ‣ Bills of Materials 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.

screenshot: manufacturing-bom-example
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.

screenshot: manufacturing-bom-add-component
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 Manufacturing app ‣ Configuration ‣ Settings. In the Operations section, tick the Work Orders checkbox to enable the feature.

screenshot: manufacturing-bom-enable-work-orders
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 Manufacturing app ‣ Products ‣ Bill of Materials 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 Manufacturing app ‣ Configuration ‣ Operations. 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.

screenshot: manufacturing-bom-description-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.
screenshot: manufacturing-bom-create-operations
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.

screenshot: manufacturing-bom-copy-existing-operations
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 Manufacturing operation 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

Lead times

screenshot: manufacturing-bom-misc-tab
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 Manufacturing app ‣ Configuration ‣ Settings. In the Operations section, tick the checkbox for By-Products to enable the feature.

screenshot: manufacturing-bom-byproducts-setting
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.

screenshot: manufacturing-bom-add-by-product
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.