Purchase - Product variants

purchase_variant_configurator
REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/19.0/purchase_variant_configurator
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Andrii9090-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to create the product variant when a purchase
order is confirmed. It adds to the purchase line a product configurator,
so that selecting a product and its attributes can be created a new
product variant.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
res_config_settings_view_form_purchase res.config.settings xpath Inherits purchase.res_config_settings_view_form_purchase
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • search(self, args, offset=0, limit=None, order=None)
    @api.model
    HACK: With NewId, the linked product_tmpl_id won't be a proper interger that we can use in a search. As we need it to get the proper pricelists we'll be passing it by context. The propper solution would be to use `self.product_tmpl_id._origin.id` in `_prepare_sellers`: https://github.com/odoo/odoo/blob/13.0/addons/product/models/product.py#L588
  • sorted(self, key=None, reverse=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • button_confirm(self)
    Create possible product variants not yet created.
  • copy(self, default=None)
    Change date_planned for lines without product after calling super

New fields (3)
  • product_id Many2one
    required=False
  • product_id_is_required Boolean
    compute='_compute_product_id_is_required'
  • product_uom_id Many2one
    compute='_compute_product_uom_id' readonly=False store=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Create variant before calling super when the purchase order is confirmed, as it creates associated stock moves.

New fields (1)
  • po_confirm_create_variant Boolean
    default=True help='Create product variants when confirming' string='Create variants on confirm'
Public methods (0)

No public methods.

New fields (1)
  • po_confirm_create_variant Boolean
    readonly=False related='company_id.po_confirm_create_variant'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/17.0/purchase_variant_configurator
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSPedro M. Baeza, OCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to create the product variant when a purchase
order is confirmed. It adds to the purchase line a product configurator,
so that selecting a product and its attributes can be created a new
product variant.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
res_config_settings_view_form_purchase res.config.settings xpath Inherits purchase.res_config_settings_view_form_purchase
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • search(self, args, offset=0, limit=None, order=None)
    @api.model
    HACK: With NewId, the linked product_tmpl_id won't be a proper interger that we can use in a search. As we need it to get the proper pricelists we'll be passing it by context. The propper solution would be to use `self.product_tmpl_id._origin.id` in `_prepare_sellers`: https://github.com/odoo/odoo/blob/13.0/addons/product/models/product.py#L588
  • sorted(self, key=None, reverse=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • button_confirm(self)
    Create possible product variants not yet created.
  • copy(self, default=None)
    Change date_planned for lines without product after calling super

New fields (3)
  • product_id Many2one
    required=False
  • product_id_is_required Boolean
    compute='_compute_product_id_is_required'
  • product_uom_category_id Many2one → uom.category
    comodel_name='uom.category' compute='_compute_product_uom_category_id' related=False
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Create variant before calling super when the purchase order is confirmed, as it creates associated stock moves.

New fields (1)
  • po_confirm_create_variant Boolean
    default=False help='Create product variants when confirming' string='Create variants on confirm'
Public methods (0)

No public methods.

New fields (1)
  • po_confirm_create_variant Boolean
    readonly=False related='company_id.po_confirm_create_variant'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/16.0/purchase_variant_configurator
VERSION
VERSION 2.0.2
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
res_config_settings_view_form_purchase res.config.settings xpath Inherits purchase.res_config_settings_view_form_purchase
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • search(self, args, offset=0, limit=None, order=None, count=False)
    @api.model
    HACK: With NewId, the linked product_tmpl_id won't be a proper interger that we can use in a search. As we need it to get the proper pricelists we'll be passing it by context. The propper solution would be to use `self.product_tmpl_id._origin.id` in `_prepare_sellers`: https://github.com/odoo/odoo/blob/13.0/addons/product/models/product.py#L588
  • sorted(self, key=None, reverse=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • button_confirm(self)
    Create possible product variants not yet created.
  • copy(self, default=None)
    Change date_planned for lines without product after calling super

New fields (3)
  • product_id Many2one
    required=False
  • product_id_is_required Boolean
    compute='_compute_product_id_is_required'
  • product_uom_category_id Many2one → uom.category
    comodel_name='uom.category' compute='_compute_product_uom_category_id' related=False
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Create variant before calling super when the purchase order is confirmed, as it creates associated stock moves.

New fields (1)
  • po_confirm_create_variant Boolean
    default=False help='Create product variants when confirming' string='Create variants on confirm'
Public methods (0)

No public methods.

New fields (1)
  • po_confirm_create_variant Boolean
    readonly=False related='company_id.po_confirm_create_variant'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/13.0/purchase_variant_configurator
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSOCA Transbot, Thomas Binsfeld, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (1)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/11.0/purchase_variant_configurator
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSPedro M. Baeza, oca-travis, Weblate, OCA-git-bot, José L. S. A
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
    - account
    - analytic
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (1)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/10.0/purchase_variant_configurator
VERSION
VERSION 2.2.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSPedro M. Baeza, cubells, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.odoomrp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - purchase
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (1)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/9.0/purchase_variant_configurator
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, ACSONE SA/NV
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.odoomrp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-variant:
    - product_variant_configurator
odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
    - purchase
    - stock_account
    - stock
    - procurement
    - barcodes
    - web_planner
    - account
    - analytic
    - web_tip
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
purchase_order_extended_form_view purchase.order.extended.form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (1)

New fields (0)

No new fields.

Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-variant
PULL REQUEST
PULL REQUEST[18.0][MIG] purchase_variant_configurator: Migration to 18.0 (#390)