OdooWiki OCA HUB

Inhibit subcontracting flow on demand

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

If a product has a bill of materials (BoM) of subcontracting type, and the vendor is included in the list of subcontractors of such BoM, when doing a purchase order for such vendor and product, it will always generate a subcontracting order. This module allows to inhibit such behavior, acting as a regular purchase, as this may not be convenient in some cases, as on manufacturing world, it's frequent that your vendor sells you directly the same product without you providing any raw material depending on lead times, material availability, etc. A check is provided at purchase order line level for easily disable the subcontracting part, as well as the same check at stock rule for propagating the preference from replenishment option.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets you stop Odoo from automatically treating a purchase as subcontracting when the vendor is also a subcontractor. You can tick a box on the vendor line, the purchase order line, or the replenishment route to buy the product normally instead.

Normally, when you buy a product from a vendor who is listed as a subcontractor for that product's bill of materials, Odoo automatically creates a subcontracting order (you send components, the vendor manufactures). This module adds a way to switch that off and treat the purchase as a plain buy.

Where you can set it: - On the vendor's product line (supplier info), a new "Subcontracting inhibited" checkbox appears next to the subcontractor flag. - On each purchase order line, an "Inhibit subcontracting" checkbox appears in the product column. - On a stock route (replenishment rule), an "Inhibit subcontracting" checkbox appears in the route form.

What changes automatically: - When a purchase order line is created from a replenishment/procurement, the route's setting is copied onto the line. - Ticking or unticking the checkbox on a purchase order line recalculates the price, planned date and description, so the correct vendor price is used. - When a stock move is linked to a purchase line with the box ticked, Odoo behaves as if there were no subcontracting bill of materials, so the flow stays a regular purchase. - Vendor selection also respects the setting: vendors marked as inhibited are only offered when the purchase is not a subcontracting one, and vice versa.

It touches product.supplierinfo, purchase.order.line, stock.route, stock.move and product.product.

Depends on

Models and fields (5)
  • stock.move · extends an existing model
  • stock.route · extends an existing modelsubcontracting_inhibit (Inhibit subcontracting)
  • product.product · extends an existing model
  • purchase.order.line · extends an existing modelsubcontracting_inhibit (Inhibit subcontracting)
  • product.supplierinfo · extends an existing modelsubcontracting_inhibit (Subcontracting inhibited)

Text generated by AI (DeepSeek) from reading the Odoo 19.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: 5 confirmed, 4 with no information of 9 versions.

Sources · Odoo 14.0

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

terminal Installation and usage

OCA documentation · Odoo 19.0
  • Go to Inventory \> Configuration \> Settings.
  • Check 'Multi-Step Routes' checkbox in Warehouse section.
  • Go to Inventory \> Configuration \> Warehouses \> click on smart button Routes and edit 'Buy' rule and check 'Subcontracting inhibit'.
  • Go to Inventory \> Products \> Product and create some product called 'Subcontract product'.
  • Go to Inventory \> Products \> Product and create other product called 'Component'.
  • Go to Manufacturing \> Products \> Bill of materials and create a new one with type = "Subcontracting" related to 'Subcontract product' then set 'Component' product and add Azure Interior in Subcontractors field.
  • Go to Inventory \> Products \> Product and edit 'Subcontract product' and set Purchase tab as follows:
  • [Vendor line 1] Vendor: Azure Interior, Subcontracting inhibited: Yes, Price: 5.
  • [Vendor line 2] Vendor: Azure Interior, Subcontracting inhibited: No, Price: 10.

Purchase order flow: #. Go to Purchase \> Orders \> Requests for Quotation and create new order as follows: #. Vendor: Azure Interior, Product: Subcontract product #. The unit price of the product will be

  • #. Click on the 'Confirm Order' button. #. A production order will

have been created.

Replenishment flow: #. Go to Inventory \> Products \> Product and go to 'Subcontract product'. #. Click on the 'Replenish' button, select 'Buy' in Preferred Routes field and click on the 'Confirm' button. #. A new purchase order will have been created, go to Purchase \> Orders \> Requests for Quotation and enter it. #. The unit price of the product will be 5. #. Click on the 'Confirm Order' button. #. A production order will not have been created.

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.