Handle easily multiple variants on Purchase Orders

purchase_order_variant_mgmt
REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/12.0/purchase_order_variant_mgmt
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSAkim Juillerat, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Miguel Poyatos
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_x2many_2d_matrix
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_manage_variant_form purchase.manage.variant form New
purchase_order_form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (3)

New fields (2)
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' required=True string='Template'
  • variant_line_ids Many2many → purchase.manage.variant.line
    comodel_name='purchase.manage.variant.line' string='Variant Lines'
Public methods (1)
  • button_transfer_to_order(self)
    @api.multi

New fields (3)
  • product_uom_qty Float
    digits=dp.get_precision('Product UoS') string='Quantity'
  • value_x Many2one → product.attribute.value
    comodel_name='product.attribute.value'
  • value_y Many2one → product.attribute.value
    comodel_name='product.attribute.value'
Public methods (0)

No public methods.

New fields (3)
  • product_attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value' readonly=True related='product_id.attribute_value_ids'
  • product_tmpl_id_purchase_order_variant_mgmt Many2one → product.template
    comodel_name='product.template' readonly=True related='product_id.product_tmpl_id'
  • state_purchase_order_variant_mgmt Selection
    readonly=True related='order_id.state' string='Order status'
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_order_variant_mgmt
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, javierjcf
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_x2many_2d_matrix
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 (2)
XML IDNameModelTypeStatus
purchase_manage_variant_form purchase.manage.variant form New
purchase_order_form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (3)

New fields (2)
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' required=True string='Template'
  • variant_line_ids Many2many → purchase.manage.variant.line
    comodel_name='purchase.manage.variant.line' string='Variant Lines'
Public methods (1)
  • button_transfer_to_order(self)
    @api.multi

New fields (3)
  • product_uom_qty Float
    digits=dp.get_precision('Product UoS') string='Quantity'
  • value_x Many2one → product.attribute.value
    comodel_name='product.attribute.value'
  • value_y Many2one → product.attribute.value
    comodel_name='product.attribute.value'
Public methods (0)

No public methods.

New fields (3)
  • product_attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value' readonly=True related='product_id.attribute_value_ids'
  • product_tmpl_id_purchase_order_variant_mgmt Many2one → product.template
    comodel_name='product.template' readonly=True related='product_id.product_tmpl_id'
  • state_purchase_order_variant_mgmt Selection
    readonly=True related='order_id.state'
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_order_variant_mgmt
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Weblate
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_x2many_2d_matrix
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 (2)
XML IDNameModelTypeStatus
purchase_manage_variant_form purchase.manage.variant form New
purchase_order_form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (3)

New fields (2)
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' required=True string='Template'
  • variant_line_ids Many2many → purchase.manage.variant.line
    comodel_name='purchase.manage.variant.line' string='Variant Lines'
Public methods (2)
  • button_transfer_to_order(self)
    @api.multi
  • onchange(self, values, field_name, field_onchange)
    @api.multi

New fields (5)
  • disabled Boolean
  • product_id Many2one → product.product
    comodel_name='product.product' readonly=True string='Variant'
  • product_uom_qty Float
    digits=dp.get_precision('Product UoS') string='Quantity'
  • value_x Many2one → product.attribute.value
    comodel_name='product.attribute.value'
  • value_y Many2one → product.attribute.value
    comodel_name='product.attribute.value'
Public methods (0)

No public methods.

New fields (3)
  • product_attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value' readonly=True related='product_id.attribute_value_ids'
  • product_tmpl_id_purchase_order_variant_mgmt Many2one → product.template
    comodel_name='product.template' readonly=True related='product_id.product_tmpl_id'
  • state_purchase_order_variant_mgmt Selection
    readonly=True related='order_id.state'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/9.0/purchase_order_variant_mgmt
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, OCA Transbot, Sergio Teruel Albert
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_x2many_2d_matrix
odoo/odoo:
    - purchase
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
    - 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 (2)
XML IDNameModelTypeStatus
purchase_manage_variant_form purchase.manage.variant form New
purchase_order_form purchase.order xpath Inherits purchase.purchase_order_form
Models touched (3)

New fields (2)
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' required=True string='Template'
  • variant_line_ids Many2many → purchase.manage.variant.line
    comodel_name='purchase.manage.variant.line' string='Variant Lines'
Public methods (2)
  • button_transfer_to_order(self)
    @api.multi
  • onchange(self, values, field_name, field_onchange)
    @api.multi

New fields (5)
  • disabled Boolean
  • product_id Many2one → product.product
    comodel_name='product.product' readonly=True string='Variant'
  • product_uom_qty Float
    digits_compute=dp.get_precision('Product UoS') string='Quantity'
  • value_x Many2one → product.attribute.value
    comodel_name='product.attribute.value'
  • value_y Many2one → product.attribute.value
    comodel_name='product.attribute.value'
Public methods (0)

No public methods.

New fields (3)
  • product_attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value' readonly=True related='product_id.attribute_value_ids'
  • product_tmpl_id_purchase_order_variant_mgmt Many2one → product.template
    comodel_name='product.template' readonly=True related='product_id.product_tmpl_id'
  • state_purchase_order_variant_mgmt Selection
    readonly=True related='order_id.state'
Public methods (0)

No public methods.