BoM on Sales Order Line
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 74.03
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Inventory (stock) • Discuss (mail) • Invoicing (account) |
| Lines of code | 50 |
| Technical Name |
bom_so_line |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Inventory (stock) • Discuss (mail) • Invoicing (account) |
| Lines of code | 50 |
| Technical Name |
bom_so_line |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
BoM on Sales Order Line
Choose exactly which Bill of Materials drives each Manufacturing Order - directly from the Sales Order line. Eliminate wrong-BoM surprises when a product has multiple manufacture BoMs.
In standard Odoo, when a confirmed Sales Order triggers an MTO Manufacturing Order, the system picks a Bill of Materials automatically. If a product has multiple manufacture BoMs (different variants, different components, different production processes), there is no way to specify which BoM applies to a specific SO line. Odoo simply picks the first match.
- Multiple BoMs for the same product -> wrong BoM may be auto-selected
- No field on the SO line to indicate which BoM should drive the MO
- Different customer orders may require different production processes
- Product variants or seasonal configurations need distinct BoMs per order
- Manually editing the generated MO to change the BoM is error-prone and time-consuming
This module adds a BoM column directly inside the Sales Order line table. For each product line, you can select any manufacture Bill of Materials associated with that product. The dropdown is filtered automatically - only manufacture BoMs for the selected product are shown. When the SO is confirmed, the chosen BoM flows directly into the generated Manufacturing Order via the MTO procurement chain, overriding Odoo's automatic selection. If no BoM is specified, Odoo's standard auto-detection applies as a safe fallback.
BoM Column in SO Line Table
A new BoM column appears in the Order Lines tab of every Sales Order. It is visible by default and can be toggled from the column picker like any optional column.
Smart Product-Filtered Dropdown
The BoM selector only shows manufacture BoMs that match the product on that line. Change the product and the BoM field clears automatically - no stale selections.
MTO Chain Propagation
The selected BoM is correctly propagated through the full MTO procurement chain. The Manufacturing Order inherits the exact BoM - no manual MO editing needed.
Safe Fallback - Zero Impact if Unused
If no BoM is selected on the line, Odoo's standard auto-detection runs unchanged. The module is fully non-breaking - existing SOs and workflows are unaffected.
Works with MTO + Manufacture Routes
Designed for products with Make to Order + Manufacture routes. The BoM selection is respected regardless of how deep the procurement chain runs.
Odoo 18 & 19 Compatible
Available for both Odoo 18 and Odoo 19. Depends only on sale_stock
and mrp - no extra libraries or enterprise modules required.
Product with Multiple BoMs
Product has two or more manufacture BoMs - e.g. BLUE and BLACK variants. Without this module, Odoo picks one automatically.
BoM Column on Sales Order
A BoM column appears in the Order Lines tab. Select the desired BoM per line - the dropdown shows only matching manufacture BoMs.
Choose From the Dropdown
Click the BoM cell to open the filtered dropdown. Only BoMs for the selected product are listed - pick BLUE or BLACK as needed.
Confirm the Sales Order
Confirm the SO. The Manufacturing smart button appears. The BoM column shows the selected BoM - it persists on the confirmed order.
MO Inherits the Selected BoM
Open the generated Manufacturing Order. The Bill of Material field shows exactly the BoM you chose - BLACK in this example. No manual editing required.
- The BoM must be of type Manufacture this product - kit or subcontracting BoMs are excluded from the dropdown.
- The product must have the Manufacture route (and ideally Replenish on Order / MTO) configured to trigger automatic MO creation on SO confirmation.
- Leaving the BoM field empty on a line causes Odoo's standard auto-selection to run - no change in behavior for those lines.
- Changing the Product on a line clears the BoM field automatically to avoid mismatches.
- Requires sale_stock and mrp to be installed. Compatible with both community and enterprise.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module