OdooWiki OCA HUB

MRP - BoM version

mrp_bom_version folder_open OCA/manufacture open_in_new
Manufacturing License: AGPL-3

MRP - BoM Version

This module provides a state in the BoM whether to allow their use in manufacturing.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds a lifecycle status to bills of materials (BoM) in Manufacturing: Draft, Active and Historical, with version numbering and a New version button that copies the BoM and keeps a link to the previous one.

This module gives every bill of materials a status so you can control when it may be used in manufacturing. On the BoM form you get a status bar with Draft, Active and Historical, plus buttons: Activate (locks the BoM so it can no longer be edited), Draft (only for users in the "MRP BoM version" group, to unlock an active BoM), New version (copies the BoM, increases its version number and links it to the previous one) and Historical (archives the BoM and stamps today's date).

While a BoM is in Draft you can still change its product, quantity, components, by-products and operations. Once it is Active those fields become read-only, and in Historical even the code, unit of measure, type, sequence, consumption and routing become read-only. The form also shows a Versions tab listing all earlier versions of the same BoM, and the list view shows version, status and historical date, with the same action buttons.

Only Active BoMs are picked up when Odoo looks for the BoM to use in manufacturing, so draft or historical versions are ignored. The BoM list can be filtered and grouped by status and by active/inactive. In Manufacturing settings, an option "Allow to re-edit BoMs" reveals a second option deciding whether a BoM sent back to Draft stays active or not. Activating a BoM also posts a tracked message on it.

Depends on

mrp
Models and fields (2)
  • mrp.bom · extends an existing modelcode, type, state (Status), active, version, sequence, company_id, product_id, consumption, product_qty, bom_line_ids, old_versions, byproduct_ids, operation_ids, product_uom_id, historical_date, picking_type_id, previous_bom_id (Previous BoM), product_tmpl_id, ready_to_produce
  • res.config.settings · extends an existing modelactive_draft (Keep re-editing BoM active), group_mrp_bom_version (Allow to re-edit BoMs)

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/manufacture.

terminal Installation and usage

OCA documentation · Odoo 18.0

Navigate to Manufacturing > Configuration > Settings to configure BoM versioning options.

Allow Re-editing BoMs

When enabled, allows changing BoM state from "Active" back to "Draft" for modifications. This creates a bidirectional workflow instead of the standard one-way flow.

Without re-editing: Draft → Active → Historical (one-way) With re-editing: Draft ↔ Active → Historical (can go back to draft)

Keep Re-editing BoM Active

This will allow you to define if those BoM passed back to draft are still activated or not.

The following states are defined:

  • Draft: The form will be available for data entry, and may move to "active" state.
  • Active: You can modify all of the form fields except for the fields: routing, BoM lines, and the new field Active, for false default when you create a new BoM. The "active" state may be passed back to state "draft", if we mark the new field "Allow re-edit the BoM list", this new field is defined in Configuration > Configuration > Manufacturing. You can configure there also if those BoM will continue with active check marked as True or not. The active state may move to state "Historical".
  • Historical: This is the last state of the LdM, you can not change any field on the form.

When the MRP BoM list is put to active, a record of who has activated, and when will include in chatter/log. It also adds a constraint for the sequence field to be unique.

  • New version : By clicking the button version, current BOM is moved to historical state, and a new BOM is creating based on this but with version number +1 and changing state to draft

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.