Sale product set variant

sale_product_set_variant
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/12.0/sale_product_set_variant
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSOCA Transbot, Ruchir Shukla, oca-travis, Weblate, OCA-git-bot, Simone Orsi, Parth Dave
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/sale-workflow:
    - sale_product_set
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - 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
product_set_add_form_view product.set.add.form.view product.set.add xpath Inherits sale_product_set.product_set_add_form_view
view_product_set_variant_form product.set.form product.set xpath Inherits sale_product_set.view_product_set_form
Models touched (3)

New fields (2)
  • product_set_id Many2one → product.set
    required=True args: 'product.set', 'Product set'
  • set_line_ids One2many → product.set.add.line
    string='Products' args: 'product.set.add.line', 'wiz_id'
Public methods (1)
  • prepare_sale_order_line_data(self, set_line, variant, max_sequence=0)

New fields (7)
  • product_set_id Many2one → product.set
    readonly=True related='source_line_id.product_set_id' string='Set' args: 'product.set'
  • product_template_id Many2one → product.template
    required=True string='Product Template' args: 'product.template'
  • product_variant_ids Many2many → product.product
    domain="[\n '&',\n ('sale_ok', '=', True),\n ('product_tmpl_id', '=', product_template_id),\n ]" string='Products' args: 'product.product'
  • quantity Float
    digits=dp.get_precision('Product Unit of Measure') string='Quantity'
  • sequence Integer
    default=0 required=True string='Sequence'
  • source_line_id Many2one → product.set.line
    args: 'product.set.line'
  • wiz_id Many2one → product.set.add
    args: 'product.set.add'
Public methods (0)

No public methods.

New fields (3)
  • product_id Many2one
    required=False
  • product_template_id Many2one → product.template
    required=False string='Product Template' args: 'product.template'
  • product_variant_ids Many2many → product.product
    domain="[\n '&',\n ('sale_ok', '=', True),\n ('product_tmpl_id', '=', product_template_id),\n ]" required=False string='Variant' args: 'product.product'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/11.0/sale_product_set_variant
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, Simone Orsi, mpanarin
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/sale-workflow:
    - sale_product_set
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_set_add_form_view product.set.add.form.view product.set.add xpath Inherits sale_product_set.product_set_add_form_view
view_product_set_variant_form product.set.form product.set xpath Inherits sale_product_set.view_product_set_form
Models touched (3)

New fields (2)
  • product_set_id Many2one → product.set
    required=True args: 'product.set', 'Product set'
  • set_line_ids One2many → product.set.add.line
    string='Products' args: 'product.set.add.line', 'wiz_id'
Public methods (2)
  • add_set(self)
    @api.multi
    Add product set, multiplied by quantity in sale order line.
  • prepare_sale_order_line_data(self, sale_order_id, set_line, variant, max_sequence=0)

New fields (7)
  • product_set_id Many2one → product.set
    readonly=True related='source_line_id.product_set_id' string='Set' args: 'product.set'
  • product_template_id Many2one → product.template
    required=True string='Product' args: 'product.template'
  • product_variant_ids Many2many → product.product
    domain="[\n '&',\n ('sale_ok', '=', True),\n ('product_tmpl_id', '=', product_template_id),\n ]" required=False string='Product' args: 'product.product'
  • quantity Float
    digits=dp.get_precision('Product Unit of Measure') string='Quantity'
  • sequence Integer
    default=0 required=True string='Sequence'
  • source_line_id Many2one → product.set.line
    args: 'product.set.line'
  • wiz_id Many2one → product.set.add
    args: 'product.set.add'
Public methods (0)

No public methods.

New fields (3)
  • product_id Many2one
    required=False
  • product_template_id Many2one → product.template
    required=False string='Product' args: 'product.template'
  • product_variant_ids Many2many → product.product
    domain="[\n '&',\n ('sale_ok', '=', True),\n ('product_tmpl_id', '=', product_template_id),\n ]" required=False string='Variant' args: 'product.product'
Public methods (0)

No public methods.