Stock Picking Product Interchangeable
This module implements "interchangeable" products for Sales Orders. If an interchangeable product is not available in stock in sufficient quantity to complete the order its substitute products will be added to picking to complete the order.
NB: Interchangeable products substitute each other. Eg if "English Breakfast" can substitutes "Breakfast in England" then "Breakfast in England" can substitute "English Breakfast".
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Lets you mark products as interchangeable so that when an outgoing delivery lacks stock, Odoo automatically adds substitute products to the transfer to cover the missing quantity.
This module adds a way to define substitute products and use them automatically on outgoing deliveries.
On a product form you get an "Interchangeable" tab where you list the products that can replace it (and that it can replace). For single-variant products this is also available on the product template.
On each operation type (for example your delivery orders) you can choose a "Substitute Products" mode: "If all available" or "If any available". The field only appears for outgoing operation types.
When a delivery is confirmed, if the ordered product does not have enough immediately usable stock, Odoo looks at its interchangeable products, takes the available quantities and creates extra stock moves for them in the same transfer. The original line quantity is reduced by the substituted quantity, and a note is added to the transfer explaining which product was missing and what replaced it.
On the transfer itself a "Pass Interchangeable" checkbox lets you skip this automatic substitution for that specific delivery; it is only shown when the operation type is outgoing and a substitute mode is set.
Business rules: substitution only applies to outgoing transfers, only when a substitute mode is configured, and only for the missing quantity. With "If all available" the substitution happens only if the full missing quantity can be covered; with "If any available" partial coverage is accepted.
Depends on
Models and fields (5)
- stock.move · extends an existing model
- stock.picking · extends an existing modelpass_interchangeable, available_pass_interchangeable
- product.product · extends an existing modelproduct_replaces_ids (Replaces), product_replaced_by_ids (Replaces), product_interchangeable_ids (Replaces)
- product.template · extends an existing modelproduct_tmpl_interchangeable_ids
- stock.picking.type · extends an existing modelsubstitute_products_mode (Substitute Products)
Text generated by AI (DeepSeek) from reading the Odoo 16.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-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/stock-logistics-warehouse.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Open Inventory -> Configuration -> Operations types and select an Operation Type you would like to use interchangeable products in. NB: Only Operation Types of the Delivery type can use this feature.
Select Substitute Products mode:
- "If all available". Interchangeable products will be added products will be added only if it is possible to reserve all requested amount.
- "If any available". Interchangeable products will be added if there is at least a single one available.
Product Settings
In Product form open Interchangeable tab and add products that can be used as a substitute.
Important: if you are using product variants Interchangeable products must be defined for each variant separately.
Usage
Source · Odoo 16.0- Create a new quotation with some interchangeable product(s) in it
- Confirm the quotation
- If there is not enough stock of the product available its substitute will be added to complete the delivery order
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.