Stock Picking Product Interchangeable

stock_picking_product_interchangeable
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_picking_product_interchangeable
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory/Inventory
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Cetmix
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Cetmix
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, geomer198, CristianoMafraJunior, Bearnard21
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-availability:
    - stock_available
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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".

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product.interchangeable.form product.product notebook Inherits product.product_normal_form_view
product_template_interchangeable_form_view product.template.interchangeable.product.form product.template notebook Inherits product.product_template_only_form_view
stock_picking_type stock.picking.type.substitute.products stock.picking.type field Inherits stock.view_picking_type_form
view_picking_form stock.picking.interchangeable.form stock.picking field Inherits stock.view_picking_form
Models touched (5)

New fields (3)
  • product_interchangeable_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_product_interchangeable_ids' help='Products that can be substituted by current product' inverse='_inverse_product_interchangeable_ids' string='Replaces'
  • product_replaced_by_ids Many2many → product.product
    column1='product_replaced_id' column2='product_id' comodel_name='product.product' help='Products that can substitute current current product' relation='product_substitute_rel' string='Replaces'
  • product_replaces_ids Many2many → product.product
    column1='product_id' column2='product_replaced_id' comodel_name='product.product' help='Products that can be substituted by current product' relation='product_substitute_rel' string='Replaces'
Public methods (0)

No public methods.

New fields (1)
  • product_tmpl_interchangeable_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_product_tmpl_interchangeable_ids' inverse='_inverse_product_tmpl_interchangeable_ids'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • available_pass_interchangeable Boolean
  • pass_interchangeable Boolean
Public methods (0)

No public methods.

New fields (1)
  • substitute_products_mode Selection
    required=False selection=[('all', 'If all available'), ('any', 'If any available')] string='Substitute Products'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
PULL REQUEST
PULL REQUEST[18.0][MIG] stock_picking_product_interchangeable (#2581)