BoM on Purchase Order Line
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 75.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Inventory (stock) • Discuss (mail) • Purchase (purchase) • Invoicing (account) |
| Lines of code | 42 |
| Technical Name |
bom_po_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) • Purchase (purchase) • Invoicing (account) |
| Lines of code | 42 |
| Technical Name |
bom_po_line |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
Subcontracting BoM on Purchase Order Line
Specify the exact subcontracting Bill of Materials per purchase order line - eliminate ambiguity, take full control of which BoM drives your subcontracted manufacturing orders.
In standard Odoo, when a purchase order line triggers a subcontracting manufacturing order, the system picks a Bill of Materials automatically - if only one BoM exists for the product it is used, otherwise selection falls back to route logic. When you have multiple subcontracting BoMs for the same product (different subcontractors, different components, different processes), there is no way to specify which BoM to apply per PO line.
- Multiple subcontracting BoMs for the same product -> wrong BoM may be auto-selected
- No field on the PO line to indicate which BoM should be used
- Re-routing or re-configuring the system just to use a different BoM is cumbersome
- Subcontractors with different component lists require different BoMs per order
- Seasonal or project-specific BoMs cannot be applied from the purchase order
This module adds a BoM column directly inside the Purchase Order line table. For each product line, you can select any subcontracting Bill of Materials associated with that product. The dropdown is filtered automatically - only subcontracting BoMs for the selected product are shown. When the PO is confirmed, the chosen BoM is passed directly to the generated manufacturing order, overriding Odoo's automatic selection. If no BoM is specified, Odoo's standard auto-detection applies as a fallback.
BoM Column in PO Line Table
A new BoM column appears between Description and Quantity in the Products tab. 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 subcontracting BoMs that match the product on that line. Change the product and the BoM field clears automatically - no stale data.
Direct MO Integration
On PO confirmation, the selected BoM is injected directly into the subcontracting manufacturing order. No post-processing or manual MO editing needed.
Safe Fallback - Zero Impact if Unused
If no BoM is selected on the line, standard Odoo auto-detection runs unchanged. The module is fully non-breaking - existing POs and workflows are unaffected.
Vendor Override Support
The BoM's subcontractors list is overridden by the PO vendor - you can assign any subcontracting BoM regardless of which partner is listed on the BoM itself.
Odoo 18 & 19 Compatible
Available for both Odoo 18 and Odoo 19. Depends only on purchase_stock
and mrp_subcontracting - no extra libraries or configuration required.
Create a Purchase Order
Go to Purchase -> New. Select a vendor. Notice the new BoM column in the Products tab.
Select a BoM for the Product Line
Click the BoM cell on any line. The dropdown shows only subcontracting BoMs for that product. Select the one that fits this order.
Save the Order
The selected BoM is displayed on the line and persisted. Confirm the order when ready.
MO Uses Your BoM
On confirmation, Odoo creates the subcontracting MO using exactly the BoM you specified. The BoM type must be Subcontracting - as shown below.
- The BoM must be of type Subcontracting - normal or Kit BoMs are excluded from the dropdown.
- The BoM's Subcontractors list is overwritten by the PO vendor at MO creation - you can select any subcontracting BoM regardless of the vendor listed on it.
- Leaving the BoM field empty on a line causes Odoo's standard auto-detection to run - no change in behavior for those lines.
- Changing the Product on a line clears the BoM field automatically to avoid mismatches.
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