Product Variant Change Attribute Value

product_variant_change_attribute_value
REPOSITORY
REPOSITORYOCA/product-variant
GIT
GIThttps://github.com/OCA/product-variant.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-variant/tree/18.0/product_variant_change_attribute_value
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProduct Variant
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp SA
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp SA
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Khôi (Kiên Kim)
WEBSITE
WEBSITEhttps://github.com/OCA/product-variant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
In standard Odoo there is no way to change the attribute values assigned
to a product variant.

This module adds a wizard to change or remove attribute values on all
product variant selected.

When an attribute value is removed from all variants of a template, it
will also be removed from the configuration of the template.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_product_variant_update_attribute_wizard Product Variant Update Attribute variant.attribute.value.wizard form New
Models touched (2)

New fields (5)
  • attribute_action Selection
    default='do_nothing' required=True selection='_selection_action'
  • attribute_id Many2one → product.attribute
    comodel_name='product.attribute' ondelete='cascade' related='product_attribute_value_id.attribute_id' store=True
  • product_attribute_value_id Many2one → product.attribute.value
    comodel_name='product.attribute.value' ondelete='cascade'
  • replaced_by_id Many2one → product.attribute.value
    comodel_name='product.attribute.value' domain="[('id', 'in', selectable_attribute_value_ids)]" ondelete='cascade' string='Replace with'
  • selectable_attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value' compute='_compute_selectable_attribute_value_ids'
Public methods (0)

No public methods.

New fields (7)
  • attribute_value_ids Many2many → product.attribute.value
    comodel_name='product.attribute.value'
  • attributes_action_ids Many2many → variant.attribute.value.action
    comodel_name='variant.attribute.value.action' relation='variant_attribute_wizard_attribute_action_rel'
  • available_attribute_ids Many2many → product.attribute
    comodel_name='product.attribute'
  • filter_attribute_id Many2one → product.attribute
    comodel_name='product.attribute' domain="[('id', 'in', available_attribute_ids)]"
  • product_ids Many2many → product.product
    comodel_name='product.product'
  • product_template_count Integer
    readonly=True
  • product_variant_count Integer
    readonly=True
Public methods (2)
  • action_apply(self)
  • default_get(self, fields_list)
    @api.model