This module extends the functionnaly of Odoo Product module.
By default, in Odoo, - when a user disable a template, it will disable the related variants. - when a user enable a template, it will enable the related variants.
But if a user disables all the variants of a template, the related template will still remain active, what doesn’t make sense in many case, and which will force the user to disable the template as well, to avoid seeing the obsolete template.
This module avoids having inconsistent states between the active field of the varinats and the active field of the template.
Once installed:
- if a user disables a variant, it will disable the template, if all the variants are disabled.
- if a user enables a variant, it will enable the template.
Table of contents
Installation
If you are installing this module on a database with existing data, you could want to execute the two following SQL requests, to fix some inconsistent data.
- Disable templates that do not have a single variant active
UPDATE product_template pt
SET active = false
WHERE id in (
SELECT pt.id
FROM product_template pt
INNER JOIN product_product pp on pp.product_tmpl_id = pt.id
WHERE pt.active = true
GROUP BY pt.id
HAVING sum((pp.active)::int) = 0
);
- Enable templates that have at least one active variant
UPDATE product_template pt
SET active = true
WHERE id in (
SELECT pt.id
FROM product_template pt
INNER JOIN product_product pp on pp.product_tmpl_id = pt.id
WHERE pt.active = false
GROUP BY pt.id
HAVING sum((pp.active)::int) != 0
);
Development
- This module fixes a current limitation mentionned here : https://github.com/odoo/odoo/pull/60648
- Do not port this module in V13, as it seems to be fixed here : https://github.com/odoo/odoo/pull/60536
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
- Sylvain LE GAL (https://www.twitter.com/legalsylvain)
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
This module is part of the OCA/product-attribute project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.