How to Import Bills of Materials into Odoo

When setting up Odoo with many products, BOMs can be imported rather than built one by one. How to do it well.

A manufacturer setting up Odoo often has many products and many bills of materials. Building each BOM by hand is slow, and Odoo supports importing BOMs instead. This piece explains how to import bills of materials into Odoo well.

When importing makes sense

Importing BOMs makes sense when a manufacturer is setting up Odoo and has a substantial number of BOMs to create, and the BOM data already exists somewhere, in spreadsheets, in an old system, in another structured form. For a handful of BOMs, building them directly in Odoo is fine. For dozens or hundreds, importing is the practical route. Odoo supports importing BOM data.

The foundation: products must exist first

The single most important point about importing BOMs is that the BOM data references products, the product the BOM produces, and the component products on it, and those products must already exist in Odoo before the BOMs are imported. A BOM cannot reference a product that is not there. So the correct order is always: import or create the products first, then import the BOMs. Attempting to import BOMs before the products exist is the most common reason a BOM import fails.

Preparing the import data

A successful import depends on well-prepared data. The BOM data has to be organised in the structure Odoo's import expects, with each BOM and its component lines clearly laid out, and the products referenced in a way Odoo can match to the products already in the system. Preparing this data carefully is the bulk of the work; the import itself is quick once the data is right.

This preparation step is also the moment to make sure the BOM data is accurate. Importing carries whatever is in the source data straight into Odoo, errors included. If the source BOMs contain mistakes, wrong quantities, wrong components, the import is the point to catch and fix them, not to faithfully reproduce them. Treat the import preparation as a chance to verify the BOM data, not just to move it.

Handling multi-level BOMs

If the BOMs are multi-level, with sub-assemblies that have their own BOMs, the same dependency logic applies. The sub-assembly products must exist, and importing the sub-assembly BOMs and the higher-level BOMs has to be done so that, as in any multi-level setup, the structure resolves correctly. Working from the lower levels of the structure upward keeps this clean.

Verify after importing

An import is not finished when the BOMs are loaded; it is finished when they have been verified. After importing, the BOMs in Odoo should be checked: are they all there, do they have the right components in the right quantities, do multi-level structures resolve correctly? Verification catches import problems before the BOMs are used for planning and production. Skipping it means discovering an import error later, when a plan or a cost comes out wrong.

Do it in a test environment first

As with any data loading into Odoo, a BOM import is best worked out and rehearsed in a test environment before being run for real. Preparing the data, running the import, and verifying the result on a test copy turns the real import into a proven, predictable step.

The takeaway

Importing bills of materials into Odoo is the practical route when setting up many BOMs from existing data. The keys are: import the products first, since BOMs reference them; prepare the import data carefully, in the structure Odoo expects, using the preparation as a chance to verify accuracy; handle multi-level structures from the bottom up; verify the result after importing; and rehearse the whole thing in a test environment. For how we approach Odoo for manufacturers, see our manufacturing work.

All posts

Got a Topic Worth Posting?

Suggest a Topic

If a question keeps coming up in your operations, it might be worth its own post.