Odoo Manufacturing

Sections

Create Bills of Materials

A Bill of Materials is a document defining the quantity of each component required to manufacture a finished product. It also includes the routing and individual steps of the manufacturing process.

With Odoo, you can link multiple BoMs to each product and use it to describe multiple variants of them. Each BoM will, yet, be associated with one product only.

This feature will help optimise your manufacturing process while saving you time.

Setting Up a BoM


You can use BoMs without routings. You will use this if you choose to manage your manufacturing operations using manufacturing orders only. In other words, you choose to realise your manufacturing process in one step and do not track the steps the product goes through.

Before creating your BoM, you have to create the product using the BoM and, at least, one of the components. Go to the Master Data menu ‣ Products and create both the finished product and the component.

Once done, go to the Bills of Materials menu under Master Data. Now, create it. Choose the product from the dropdown menu and add your components and the quantity. In this case, keep the default BoM type, which is Manufacture this Product.

Create bill of materials in Odoo Manufacturing

Using the Same BoM to Describe Variants


As said above, you can use BoM for Product Variants. It is basically the same as for the standard product.

If your BoM is for one variant only, then specify which one in the Product Variant field. If not, specify the variant it is consumed for on each component line. You can add several variants for each component.

Using same BOM for product variants in Odoo

Adding a Routing


You can add routing to your BoM. You will do this if you need to define a series of operations required by your manufacturing process. To use it, enable the Work Orders feature in the Manufacturing app settings.

Add routing to BOM in Odoo

Note: Each BoM can have only one routing while each routing can be used multiple times.

Now that you have created your routing, add it to your BoM. You can select when, in the work operations, your components are consumed with the dropdown menu.

Add routing to BOM in Odoo Manufacturing

Adding By-Products


In Odoo, a by-product is any product produced by a BoM in addition to the primary product.
To add by-products to a BoM, you will first need to enable them from the Manufacturing app settings.

Add by-products to BOM in Odoo

Once the feature is enabled, you can add your By-Products to your BoMs. You can add as many By-Products as you want. Just keep in mind that you need to register during which operation your by-product is produced.

Add by-products to BOM in Odoo Manufacturing

Process Manufacturing Orders

In Odoo, you can manage your manufacturing process in two different ways. You can work with one document, or decide to have more information and control over it.

In the first case, Odoo makes things easier and helps you manage work with one document only: the manufacturing order. No complex steps during the process, you just have to schedule the job and record the production.

But, if you need more control, you can use additional documents (steps) to your manufacturing process. This way, Manufacturing Orders are divided into one or more steps defined by Work Orders and performed in a sequence defined by routings.

Using Odoo will allow you to precisely schedule the job, analyse your efficiency but also have ease when realising each step of your manufacturing process.

Manage Manufacturing Without Routings


If your manufacturing process is limited to one place, one person and one step, you will probably use manufacturing orders without routings.

In Odoo, it is the default behavior. If work this way, there are two basic phases from planning to production:

  • Create a manufacturing order
  • Record the production

Manage Manufacturing With Routings and Work Centers


To use Work Centers and Routings, you will need to enable the Work Orders feature. To do so, go to the Manufacturing app settings.

Enable work orders feature in Odoo Manufacturing app settings

Now, you can add routings to BoMs and configure your operations taking place at different work centers. The Work Centers are the locations at which work orders are performed.

Add routings to bills of materials in Odoo Manufacturing

When manufacturing this way, each Work Order is scheduled individually. You will also have access to time and capacity planning, as well as reports on costing and efficiency for each Work Center.

Thus, the workflow is divided into three basic phases:

  • Create the manufacturing order
Create manufacturing order in Odoo
  • Schedule the associated work orders
Schedule associated work orders in Odoo
  • Perform the scheduled work and record production
Perform scheduled work and record production in Odoo Manufacturing

Sell Sets of Products as Kits

A kit is a set of components that are delivered without first being assembled or mixed. Kits are described in Odoo using Bills of Materials. There are two basic ways to configure kits, depending on how the stock of the kit product is to be managed. In either case, both the Inventory and Manufacturing apps must be installed.

Manage Stock of Component Products


If you want to assemble kits as they are ordered, managing stock of the kit components only, you will use a Kit BoM without a manufacturing step.

A product using a Kit BoM will appear as a single line item on a quotation and sales order, but will generate a delivery order with one line item for each of the components of the kit. In the examples below, the first image shows a sales order for the kit "Custom Computer Kit", while the second image shows the corresponding delivery order.

Managing stock of component products in Odoo Manufacturing
Managing stock of component products in Odoo

Configuration

From the Products menu in either the Inventory or Manufacturing app, create each component product as you would with any other product, then create the top-level, or kit product. The kit product should have only the route Manufacture set, in the Inventory tab. Because you cannot track the stock of kit products, the Product Type should be set to Consumable. Because a kit product cannot be purchased, then, Can be Purchased should be unchecked.

All other parameters on the kit product may be modified according to your preference. The component products require no particular configuration.

Set kit products routes in Odoo

Once the products are configured, create a bill of materials for the kit product. Add each component and its quantity. Select the BoM Type "Ship this product as a set of components". All other options may be left with their default values.

Bill of materials Odoo Manufacturing

Manage Stock of Kit Product and Component Products


If you want to manage stock of the top-level kit product, you will use a standard BoM with a manufacturing step instead of a Kit BoM. When using a standard BoM to assemble kits, a manufacturing order will be created. The manufacturing order must be registered as completed before the kit product will appear in your stock.

Configuration

On the kit product, select the route "Manufacture". You may also select "Make to Order", which will create a manufacturing order whenever a sales order is confirmed. Select the product type Storable Product to enable stock management.

Managing stock of kit product and component products in Odoo

When you create the bill of materials, select the BoM Type "Manufacture this product". The assembly of the kit will be described by a manufacturing order rather than a packing operation.

Bill of materials Odoo

How to Manage BoMs for Product Variants​

Odoo allows you to use one bill of materials for multiple variants of the same product. Simply enable variants from Configuration ‣ Settings.

How to manage bills of materials for product variants in Odoo

You will then be able to specify which component lines are to be used in the manufacture of each product variant. You may specify multiple variants for each line. If no variant is specified, the line will be used for all variants.

When defining variant BoMs on a line-item-basis, the Product Variant field in the main section of the BoM should be left blank. This field is used when creating a BoM for one variant of a product only.

Create bill of material for product variants in Odoo

Manage Semi-Finished Products

In Odoo, you can use subassembly products to simplify a complex Bill of Materials or to represent your manufacturing flow more accurately. A subassembly product is a manufactured product that is used as a component to make another one.

A BoM that employs subassemblies is referred to as a multi-level BoM. Those are accomplished by creating a top-level BoM and subassembly ones. This process requires a route that will ensure that every time a manufacturing order for the top-level product is created, another one will be for subassemblies.

Configure the Subassembly Product


To configure a multi-level BoM, you will need a top-level product but also its subassemblies. The first step is to create a product form for each of the subassemblies. Select the routes "Manufacture" and "Replenish on Order". Now, hit save.

Managing semi-finished products bill of materials in Odoo

In the Bill of Materials menu, under Master Data, create a new Bill of Materials. Choose the product you just created and add its components.

Bill of material for semi-finished product in Odoo

Configure the Main BoM


Now, you can configure the top-level product and its BoM. Include any subassemblies in the list of components.

Configure top-level product and its BoM in Odoo

Now, each time you will plan a manufacturing order for the top-level product, a manufacturing order will be created for the subassembly one. Then, you will have to manufacture the subassembly in order to make it available before manufacturing the finished product.

Manufacturing order Odoo

Use Flexible Component Consumption

Sometimes, you might need more components than usual to manufacture a product. Let’s say that you produce a desk combination of 4 desks and two chairs but your customer asks you one more desk. Alright, you can do that. But you will need to register it!

In case this happens, Odoo has the flexible components consumption feature available. If you enable it, you will be able to consume as many components as needed and it will make you save time in the registration of your items consumption.

Configuration


Using flexible component consumption is easy and can be done in a few steps. All you need is a BoM and a Quality Control Point. Therefore, you will need to activate the feature Quality in the MRP app settings.

First, open the BoM you want to use for flexible component consumption and edit it. In the Miscellaneous tab, choose Flexible as the Consumption type. Then, save.

Flexible components consumption Odoo Manufacturing

Now, in the Quality app, open the Control Point menu, under Quality Control and create a new Quality Control Point. Choose your product, your operation and work order operation. Then, choose "Register Consumed Materials" as type.

Create new quality control point in Odoo Quality app

Next, go back to your Manufacturing app and create a Manufacturing order. Choose the product for which you have created the flexible BoM.

Then, confirm it and launch the process step. While processing, you will have the possibility to consume more components than expected in the BoM. To do so, click on Continue Consumption.

Continue consumption during manufacturing process in Odoo

When the job is over, you will find a summary of your component consumption in the Finished Steps tab of your work order.

Component consumption summary in Finished Steps tab of work order in Odoo

Plan Work Orders

In some cases, companies need to schedule their work orders. Doing so, they can organise the work for the whole day and be sure everything goes well. It helps to avoid scheduling multiple work orders at the same time when you don’t have the capacity to do so.

With Odoo, companies can schedule the planned start date for their manufacturing orders. No possible duplication, no potential issues with the planning. And, if you plan two work orders at the same work center, at the same hour, the second one will be scheduled right after the first one, avoiding work superposition.

Create the Work Orders


The first thing you need to do is to open the Manufacturing app. Then, Go to the settings and enable the Work Orders feature.

Enable work orders in Odoo Manufacturing

Now, go to the Manufacturing Orders menu and hit Create. Choose your product and add a Planned Start Date.

Note: The “Deadline Start” field is informative. It shows you until when you can launch the manufacturing order to fulfill the initial demand.

Mark your Manufacturing Order as todo and plan it. By going to the Planning menu, you can access to the scheduled orders. Here is the one we just created:

Plan and track work orders in Odoo

Note: If you plan two work orders at the same hour, the second one will be scheduled after the first one if the jobs need to be done at the same work center. The start date will, then, be automatically updated considering the first free slot on the work center.

If you overrun the planned date and begin the job later, you will have a track of it in the Time Tracking tab of your work order.

Track work orders in Odoo

Use an Alternative Work Center

For many manufacturing companies, a common issue is to have to manufacture, at the same time, several products usually produced at the same work center. If in practice, employees can manufacture the goods at another work center, it is not that simple.

You need to keep track of the job: which work center has been used and when, so you can schedule maintenance efficiently. With Odoo, you can configure it so you can keep tracking manufacturing orders and your employees have an alternative work center to use.

This way, your process becomes more efficient, and less non-productive time will be noticed.

Configure Your Work Centers​


The first thing to do is to go to the Manufacturing app settings. Then, enable the Work Orders feature and hit save.

Enable work orders in Odoo Manufacturing

Now, go to the Work Centers menu under Master Data and create two new work centers. Add the second work centers as an alternative to the first and vice versa.

Set up work centers in Odoo Manufacturing

The next step is to create your routing. Add your work center and an operation to it before saving.

Define routing in Odoo Manufacturing

Then, you can create your Bill of Materials and add components and routing to it.

Configure bill of materials Odoo

Create Your Work Orders


Now that everything is configured, you can create your Work Orders. Go to the Manufacturing Orders menu and hit Create. There, add your product and plan it. In the Work Orders list, you can find it ready to be assembled.

Manufacturing order Odoo

Each new Work Order, which will be created before the end of the first one, will be scheduled at the alternative work center you configured.

Automatically schedule alternative work centers in Odoo

Note: Keep in mind that, if you add time after production to your work center, you may have work orders scheduled for your alternative work center even if the usual one is free.

Unbuild a Product

In Odoo Manufacturing App, you can Unbuild products. Two use cases can be managed: (1) you can unbuild products you have built yourself or (2) you can unbuild products you have received.

Let’s take the first case, you are manufacturing products yourself. If one of your product presents some defect, you might want to unbuild it instead of scrapping it completely, allowing you to reuse some components of the product.

In the second case, you are buying products for the sole purpose of unbuilding them and recycling them.

Unbuild Order


While in the Manufacturing App, under the Operations tab you will find the menu Unbuild Orders.

How to unbuild orders in Odoo Manufacturing

When creating a new one, you can either select a MO if you are unbuilding something you manufactured or only select a product if you are unbuilding something you received.

Unbuild order in Odoo Manufacturing

When you are done, just click unbuild and the process will be over.

If you unbuild a product that you manufactured before, you will get the components from the MO back in stock.

If you unbuild a product you bought, you will get the components from the BoM back in stock.

Subcontract Your Manufacturing

Outsourcing a portion of some or all your company’s manufacturing needs is not easy. To make it work right, you have to:

  • Manage the inventory of raw materials at your subcontractor
  • Ship new materials to your subcontractors based on your forecasted demand
  • Keep track of manufacturing operations done at the subcontractor location
  • Control incoming goods quality
  • Control subcontractors bills

Here is an example of subcontracting the manufacturing of “C”, which is produced out of raw materials “A” and “B”.

Subcontracting process diagram

With its subcontracting feature, Odoo helps you handle this flow easily.

Configuration


To use the subcontracting feature, go to Manufacturing ‣ Configuration ‣ Settings and tick the box Subcontracting.

Configuring subcontracting in Odoo Manufacturing

To define if a product must be subcontracted, use a Bill of Materials (BoM) of type Subcontracting.

To create a new BoM, go to Manufacturing ‣ Master Data ‣ Bill of Materials and hit create. Then, list the components your subcontractor needs to manufacture the product. For costing purposes, you might want to register all the components, even the ones that are sourced directly from the subcontractor.

Once you have set the BoM Type to Subcontracting, specify one or several subcontractors.

Basic Subcontracting Flow


To let your subcontractor know how many products you need, create and send them purchase orders (PO). To do so, open the Purchase app and create a new one. Be sure to send the PO to a vendor that is defined as a subcontractor on the BoM.

Basic subcontracting flow diagram

Once the PO is validated (1), a pending receipt is created. When the products are received, validate the receipt (2), with the actual quantity received. Then Odoo automatically created several inventory moves:

  • Consume the components at the subcontractor’s location, based on the BoM (3)
  • Produce finished goods at the subcontractor’s location (4)
  • Move products from the subcontractor’s location to YourCompany through the validated receipt (5).

Of course, Odoo does all the transactions for you, automatically. Simply control the vendor bill with the usual matching process with the purchase order.

Note: The PO is optional. If you create a receipt manually, with the right subcontractor, Odoo still performs all the moves. Useful if the subcontractor does not bill a fixed price per item, but rather the time and materials used.

Inventory Valuation


The cost of the manufactured product “C” is defined as:

C = A + B + s

With:

  • A: Cost of raw materials coming from YourCompany
  • B: Cost of raw materials sourced directly from the
    subcontractor
  • s: Cost of the subcontracted service.

Sending raw materials to your subcontractors (A) does not impact the inventory valuation, the components still belonging to your company. To manage this, the Subcontracting Location is configured as an Internal Location so that the components are still valued in the inventory.

Then, the vendor price set on the product C form has to be what has to be paid to the subcontractor for his parts and service time: B + s. The product cost has to be: A + B + s, how much the product is valued in the accounting.

Finally, the subcontractor bill matches the purchase order, with the proposed price coming from the finished products C.

Note: If managing the replenishment of raw materials B at your subcontractor’s location is not needed, simply include the cost of B in the subcontractor’s price s and remove the products B from the BoM.

Traceability


In case the products received from the subcontractor contain tracked components, their serial or lot numbers need to be specified during the receipt.

On the receipt of the subcontracted product, a Record Components button appears when necessary. Click on it to open a dialog and record the serial/lot numbers of the components.

If the finished product is also tracked, its serial/lot number can be registered here too.

Record components on receipt of subcontracted products in Odoo

For audit purposes, it is possible to check the lot numbers recorded on a receipt by using the icon on the right of the finished products:

Check lot numbers on receipt of subcontracted products in Odoo

Automate Replenishment of Subcontractors


To manage the resupply of your subcontractor, activate Multi-locations in Inventory ‣ Configuration ‣ Configuration. Then, the inventory at the subcontractor location can be tracked.

It is possible to resupply subcontractors by sending products from the company locations, or by sending products from another supplier to the subcontractors.

Replenishment from the Warehouse


Resupplying subcontractors manually is the simplest approach. To do so, create delivery orders in which the subcontractor is set as a delivery address and fill the components to deliver.

To automate the subcontractors’ replenishment propositions, there are two approaches:

  • Reordering rules
  • Replenish on order flow.

For the first one, just define a reordering rule on the subcontracting location, with a minimum and maximum inventory level. When the reordering rule is triggered, a delivery order is created to ship the components to the subcontractor.

Replenishment from warehouse reordering rules Odoo

The second approach is to use a “pull” flow. Here, the demand in the finished product (real demand or forecasted one through the Master Production Schedule) triggers the replenishment of the subcontractor. To do so, select the route Resupply Subcontractor on Order on the wanted components.

Replenishment from warehouse replenish on order Odoo

Replenishment from Another Supplier


When purchasing items to another supplier, it is possible to ask him to deliver the subcontractor directly. To do so, activate the Drop Shipping feature in Purchase ‣ Configuration ‣ Configuration.

Now, set the Dropship option in the Deliver To field of the Other Information tab. Then, provide the address of the subcontractor for the shipping.

Replenishment from another supplier Odoo

That way, the supplier can ship items directly and you simply receive and pay the bill. However, it is still required to validate receipts for the subcontractor.

Replenishment from another supplier diagram

Quality Control


Controlling the quality of the products manufactured by subcontractors is possible thanks to the Odoo Quality app. Quality checks can be made on a manufacturing step but, because the manufacturing process is handled by an external party, it can be defined on the product reception.

Quality control for subcontracted products diagram

To create a quality check at the receipt, open the Quality app and create a new Control Point on the reception.

Create a control point in Odoo Quality app

By doing so, a quality check is automatically created each time a finished product is received.

Set Routings on Kit Bills of Materials

It often happens that you want to use kit BoM’s within manufactured product BoM’s in order to lighten the list of components for this manufactured product. When doing so, you would like to have the possibility to specify, for each kit component, in which operation they are consumed.

We will see the three use cases that you can face in these kinds of configurations.

Finished Product & Kit Component Have the Same Routing

Create BoM for the Finished Product


Create a manufactured BoM for the finished product which includes a kit component. Set a routing on your BoM, for example, Assemble Furniture.

Create a BoM for the finished product in Odoo

Create a Kit BoM for the Kit Component


Update the kit component to define its BoM. Make sure that the routing which is set on this BoM is the same one than on the Finished Product.

Create kit BOM for the kit component in Odoo Manufacturing

You can define the operations in which the kit components are used directly in the BoM of the kit.

Manufacturing Order


In the list of components, the kit is split. Two work orders are created as we have two operations defined in the Assemble Furniture routing. The components of the kits are well consumed in the operations defined in the kit BoM.

Manufacturing order Odoo
Manufacturing order work order Odoo
Work order Odoo Manufacturing

Finished Product & Kit Component Don’t Have the Same Routing

Kit Consumption Set on Finished Product BoM

Create BoM for the Finished Product


Create a manufactured BoM for the finished product which includes a kit component. Set a routing on your BoM, for example, Assemble Furniture.

Create BOM for finished product in Odoo

Create a Kit BoM for the Kit Component


Update the kit component to define its BoM. In this use case, the routing which is set on this Kit BoM is different than the one of the Finished Product. Specify the operations at which the kit components are consumed in this BoM.

Create kit BOM for kit component in Odoo

Manufacturing Order


When the manufacturing order is created for the Manufactured product, the kit is split among its components. When the manufacturing order is planned, three work orders are created in our case, one coming from the routing of the manufactured products, the two other ones coming from the routing of the kit BoM.

Manufacturing order for kit consumption set on finished product BOM

The components are all consumed during their respective operations.

Work order Odoo Manufacturing
Work order in Odoo

Kit Consumption Set on Kit BoM

Create BoM for the Finished Product


Create a manufactured BoM for the finished product which includes a kit component. Set a routing on your BoM, for example, Assemble Furniture. Precise the consumption of the components on this BoM.

BOM for finished product kit consumption Odoo

Create a Kit BoM for the Kit Component


Update the kit component to define its BoM. In this use case, the routing which is set on this Kit BoM is different than the one of the Finished Product.

Kit BOM for kit component in Odoo

Manufacturing Order


When the manufacturing order is created for the Manufactured product, the kit is split among its components. When the manufacturing order is planned, three work orders are created in our case, one coming from the routing of the manufactured products, the two other ones coming from the routing of the kit BoM.

Work order Odoo Manufacturing

All the components of the kits are consumed during the first operation. The last component is consumed during the second operation.

Work order in Odoo Manufacturing
Work order Odoo Manufacturing module

Use the Master Production Schedule

The Master Production Schedule (MPS) is a valuable tool for planning your production based on your demand forecast.

Configuration


Go to the Manufacturing app ‣ Configuration ‣ Settings and activate the Master Production Schedule feature before hitting save.

Add product to master production schedule

Tip:  In the manufacturing settings, you can define the time range of your MPS (month/week/day) and the number of periods you want to display.

Now, go in Planning ‣ Master Production Schedule and click on add a product. You can now define your safety stock target (= the stock you want to have on hand at the end of the period) and the minimum and maximum quantities to replenish.

Add product to master production schedule Odoo

Tip:  In the manufacturing settings, you can define the time range of your MPS (month/week/day) and the number of periods you want to display.

Products arrangement in master production schedule Odoo

In the MPS view, you can decide which information you would like to show by clicking on rows. Some fields can be added to the view, such as Actual demand, which will show which quantity of products has already been ordered for the period, or Available to Promise, which allows you to know what can still be sold during the period (what you plan to replenish - what is already sold during the period). You can also decide to hide some information if it isn’t necessary.

Master production schedule view Odoo

Estimate Your Demand and Launch Replenishment


The next step is to estimate the demand for the period. This estimation should be entered in the row Demand Forecast. You can easily, at any time, compare the demand forecast with the actual demand (= confirmed sales). The demand forecast for a finished product will impact the indirect demand for its components.

Estimate demand and launch replenishment in MPS

Then, the quantity to replenish for the different periods will be automatically computed. The replenishments you are supposed to launch based on your lead times (vendor lead time or manufacturing lead time) are displayed in green. You can now launch the replenishment by clicking on the replenish button.

Depending on the configuration of the product (buy vs. manufacture), requests for quotations or manufacturing orders will be created. You can easily access those by clicking on the Actual Replenishment cell.

Manufacturing orders master production schedule Odoo
Product replenishment master production schedule Odoo

In case you manually edit the To replenish quantity, a small cross will appear on the left. In case you want to go back to the automatically computed value given by Odoo, you can click the cross.

To replenish quantity for product in MPS Odoo

Cell Color Signification


The cells, which are part of the To replenish line, can take different colors depending on the situation:

Green: Quantity of products which should be replenished to reach the expected safety stock considering the demand forecast and the indirect demand forecast.

Grey: Replenishment order has already been generated, and its quantity still matches current data.

Red: Replenishment order has already been generated, and its quantity was too high considering current data.

Orange: Replenishment order has already been generated, and its quantity was too low considering current data.

The Forecasted stock line can also contain red cells, which means the stock will be negative during the period in question.

What If I Have Underestimated the Demand?

You can still increase the demand forecast. It will impact the quantity to replenish. The cell will become orange, and you’ll be able to launch a new replenishment.

What If I Have Overestimated the Demand?

You can decrease the demand forecast. The cell will become red to inform you that you’ve ordered more than planned. If you’re still able to do it, you can cancel some RFQ or MO manually.

What If I Wrongly Added a Product to the MPS?

You can easily remove a product from the MPS by clicking the small bin on the right of its name.

Remove product from master production schedule Odoo

Version History

1.0

Prepared By

Khurram Iftikhar

Date Updated

10/03/2025