Product Optional Product Quantity

product_optional_product_quantity
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/16.0/product_optional_product_quantity
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYProduct
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, Carolina Fernandez, Dmytro Pavlov
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_product_configurator
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module implements core functionality for the optional product quantity multipliers. You can depend on this module to implement further user features.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_template_view_form_inherit_optional_qty product.template.view.form.inherit.optional.qty product.template field Inherits sale_product_configurator.product_template_view_form
res_config_settings_view_form res.config.settings.view.form.inherit.optional.qty res.config.settings div Inherits sale.res_config_settings_view_form
Models touched (3)

New fields (4)
  • company_id Many2one
    related='product_tmpl_id.company_id'
  • optional_product_tmpl_id Many2one → product.template
    comodel_name='product.template' domain="[('company_id', 'in', [company_id, False]), ('id', '!=', product_tmpl_id)]" required=True string='Product'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' domain="[('id', '!=', optional_product_tmpl_id)]" required=True string='Related Product'
  • quantity Float
    default=1.0
Public methods (0)

No public methods.

New fields (2)
  • optional_product_ids Many2many
    compute='_compute_optional_product_ids' readonly=False store=True
  • product_optional_line_ids One2many → product.optional.line
    comodel_name='product.optional.line' inverse_name='product_tmpl_id' string='Optional Products Line'
Public methods (0)

No public methods.

New fields (1)
  • group_product_optional_quantity Boolean
    implied_group='product_optional_product_quantity.group_product_optional_quantity' string='Optional Products Quantity'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-attribute
PULL REQUEST
PULL REQUEST[18.0][MIG] product_optional_product_quantity: Migration to 18.0 (#1919)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-attribute
PULL REQUEST
PULL REQUEST[17.0][MIG] product_optional_product_quantity: Migration to 17.0 (#1927)