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 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.


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).

Show BoM for a product, with components listed.

BoM for Drawer, displaying the Components tab.


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.

Add a component by selecting it from the drop-down menu.

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.

  • Manual Consumption: tick the checkbox to force operators to check the Consumed checkbox on a manufacturing order (MO).

    Show a manufacturing order, highlighting the *Consumed* field.

    Not doing so triggers the Consumption Warning error message, where the consumed component quantity must be manually inputted. Otherwise, the operation cannot be completed.

    Show the consumption warning error message.


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.

"Work Orders" feature in the Settings page.

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.

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.


Type / for a list of formatting options and features, including ChatGPT.

Show ChatGPT feature to generate instructions for a work order.
Fill out the Create Operations pop-up window.

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.


Each operation is unique, as it is always exclusively linked to one BoM.


After creating an operation, click the Copy Existing Operations button to choose an operation to duplicate.

Show Operation tab, highlighting the "Copy Existing Operations" field.



To add detailed instructions to operations, the Quality app must be installed.

Add specific instructions to an existing operation by clicking the operation’s (list) icon in the Instructions column. The number in the Instructions column shows the number of existing detailed instructions there are for the operation.

Show the Instructions column, and list icon.

On the Steps dashboard, click New to open a blank quality control point form where the new manufacturing step can be created. Here, give the specific instruction a Title and set the Type to Instructions. In the Instructions tab of the form, write out the directions for the step in the operation.


Further customizations can be made here on this form, beyond ordinary instructions, to also include specific types of quality control points that carry specific (or complex) conditions. For more details about quality control points refer the Instruction check documentation.

Show the page to add a quality check.


The Miscellaneous tab contains more BoM configurations to customize procurement, calculate costs, and define how components are consumed.

  • Manufacturing Readiness: choosing When components for the 1st operation are available shows the Component Status as a green Not Available, when only the components that are consumed in 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 displays a red Not Available component status unless all components are in available.


    Specify which operation consumes each component on the BoM in the Manual Consumption field.

    Show the *Component Status* field on the manufacturing order dashboard.
  • Version: displays the current BoM version, visible with the Odoo PLM app installed for managing BoM changes.

  • 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.

  • Analytic Distribution: select pre-created analytic distribution models from the list to automatically record the cost of manufacturing products in the chosen journal.

  • 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.

Show the *Miscellaneous* tab of the BoM.

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.

"By Products" feature in the settings page.

Once the feature is enabled, add by-products to a BoM by clicking the By-products tab. Click Add a line, and fill in the By-product, Quantity, and Unit of Measure. Optionally, specify a Produced in Operation for the by-product.


The by-product, Mush, is created in the Grind grapes operation when producing Red Wine.

Show sample by-product in the BoM.