diff --git a/website_sale_variant_selection/README.rst b/website_sale_variant_selection/README.rst new file mode 100644 index 000000000..877833f20 --- /dev/null +++ b/website_sale_variant_selection/README.rst @@ -0,0 +1,53 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Ecommerce Sequential Variant Selector +================================= +This module enables customers to select product attribute values from the +website in an ordered manner. It allows customers to choose attribute values one +by one. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(https://www.gnu.org/licenses/agpl.html) + +Credits +------- +* Developers: (V16) Abhijith PG, + (V17) Farook Al Ameen, + (V18) Henna Mehjabin +Contact: odoo@cybrosys.com + + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if +your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/website_sale_variant_selection/__init__.py b/website_sale_variant_selection/__init__.py new file mode 100644 index 000000000..7ff4eac4e --- /dev/null +++ b/website_sale_variant_selection/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Henna Mehjabin (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# diff --git a/website_sale_variant_selection/__manifest__.py b/website_sale_variant_selection/__manifest__.py new file mode 100644 index 000000000..e25b775e7 --- /dev/null +++ b/website_sale_variant_selection/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Henna Mehjabin (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': "Ecommerce Sequential Variant Selector", + 'version': '18.0.1.0.0', + 'category': 'Website', + 'summary': """Sequential attribute selection in odoo eCommerce""", + 'description': "This module enables customers to select product attribute " + "values from the website in an ordered manner. It allows " + "customers to choose attribute values one by one.", + 'author': "Cybrosys Techno Solutions", + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['base', 'website_sale'], + 'data': [ + 'views/variant_templates.xml', + ], + 'assets': { + 'web.assets_frontend': [ + 'website_sale_variant_selection/static/src/js/variant_mixin.js', + 'website_sale_variant_selection/static/src/scss/website_sale_attribute_selection.scss', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/website_sale_variant_selection/doc/RELEASE_NOTES.md b/website_sale_variant_selection/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..75e4a4d16 --- /dev/null +++ b/website_sale_variant_selection/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 28.07.2025 +#### Version 18.0.1.0.0 +#### ADD +- Initial Commit for Ecommerce Sequential Variant Selector diff --git a/website_sale_variant_selection/static/description/assets/hero.gif b/website_sale_variant_selection/static/description/assets/hero.gif new file mode 100644 index 000000000..a49d26542 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/hero.gif differ diff --git a/website_sale_variant_selection/static/description/assets/icons/arrows-repeat.svg b/website_sale_variant_selection/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/banner-bg.svg b/website_sale_variant_selection/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/banner-call.svg b/website_sale_variant_selection/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/banner-mail.svg b/website_sale_variant_selection/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/banner-pattern.svg b/website_sale_variant_selection/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/brand-pair.svg b/website_sale_variant_selection/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/capture (1).png b/website_sale_variant_selection/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/capture (1).png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/check.png b/website_sale_variant_selection/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/check.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/chevron.png b/website_sale_variant_selection/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/chevron.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/cogs.png b/website_sale_variant_selection/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/cogs.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/consultation.png b/website_sale_variant_selection/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/consultation.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/ecom-black.png b/website_sale_variant_selection/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/ecom-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/education-black.png b/website_sale_variant_selection/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/education-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/feature-icon.svg b/website_sale_variant_selection/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/gear.svg b/website_sale_variant_selection/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/hire-odoo.svg b/website_sale_variant_selection/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/hotel-black.png b/website_sale_variant_selection/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/hotel-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/img.png b/website_sale_variant_selection/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/img.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/license.png b/website_sale_variant_selection/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/license.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/life-ring-icon.svg b/website_sale_variant_selection/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/lifebuoy.png b/website_sale_variant_selection/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/lifebuoy.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/mail.svg b/website_sale_variant_selection/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/manufacturing-black.png b/website_sale_variant_selection/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/manufacturing-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/odoo-consultancy.svg b/website_sale_variant_selection/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/odoo-licencing.svg b/website_sale_variant_selection/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/patter.svg b/website_sale_variant_selection/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/photo-capture.png b/website_sale_variant_selection/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/photo-capture.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/pos-black.png b/website_sale_variant_selection/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/pos-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/puzzle-piece-icon.svg b/website_sale_variant_selection/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/puzzle.png b/website_sale_variant_selection/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/puzzle.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/restaurant-black.png b/website_sale_variant_selection/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/restaurant-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/service-black.png b/website_sale_variant_selection/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/service-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/skype-fill.svg b/website_sale_variant_selection/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/trading-black.png b/website_sale_variant_selection/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/trading-black.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/training.png b/website_sale_variant_selection/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/training.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/update.png b/website_sale_variant_selection/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/update.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/user.png b/website_sale_variant_selection/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/user.png differ diff --git a/website_sale_variant_selection/static/description/assets/icons/whatsapp.svg b/website_sale_variant_selection/static/description/assets/icons/whatsapp.svg new file mode 100644 index 000000000..bba9ca395 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/whatsapp.svg @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/website_sale_variant_selection/static/description/assets/icons/wrench-icon.svg b/website_sale_variant_selection/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/icons/wrench.png b/website_sale_variant_selection/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/icons/wrench.png differ diff --git a/website_sale_variant_selection/static/description/assets/misc/Cybrosys R.png b/website_sale_variant_selection/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/misc/Cybrosys R.png differ diff --git a/website_sale_variant_selection/static/description/assets/misc/email.svg b/website_sale_variant_selection/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/phone.svg b/website_sale_variant_selection/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/star (1) 2.svg b/website_sale_variant_selection/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/support (1) 1.svg b/website_sale_variant_selection/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/support-email.svg b/website_sale_variant_selection/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/tick-mark.svg b/website_sale_variant_selection/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/whatsapp 1.svg b/website_sale_variant_selection/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/misc/whatsapp.svg b/website_sale_variant_selection/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/website_sale_variant_selection/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website_sale_variant_selection/static/description/assets/modules/1.gif b/website_sale_variant_selection/static/description/assets/modules/1.gif new file mode 100644 index 000000000..ae3a880a2 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/1.gif differ diff --git a/website_sale_variant_selection/static/description/assets/modules/1.jpg b/website_sale_variant_selection/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..3cb15fe01 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/1.jpg differ diff --git a/website_sale_variant_selection/static/description/assets/modules/2.gif b/website_sale_variant_selection/static/description/assets/modules/2.gif new file mode 100644 index 000000000..d19e2b352 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/2.gif differ diff --git a/website_sale_variant_selection/static/description/assets/modules/2.jpg b/website_sale_variant_selection/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/2.jpg differ diff --git a/website_sale_variant_selection/static/description/assets/modules/3.jpg b/website_sale_variant_selection/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..717a00443 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/3.jpg differ diff --git a/website_sale_variant_selection/static/description/assets/modules/3.png b/website_sale_variant_selection/static/description/assets/modules/3.png new file mode 100644 index 000000000..8513873ea Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/3.png differ diff --git a/website_sale_variant_selection/static/description/assets/modules/4.png b/website_sale_variant_selection/static/description/assets/modules/4.png new file mode 100644 index 000000000..00ebf54ad Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/4.png differ diff --git a/website_sale_variant_selection/static/description/assets/modules/5.jpg b/website_sale_variant_selection/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..7c67e2eec Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/5.jpg differ diff --git a/website_sale_variant_selection/static/description/assets/modules/5.png b/website_sale_variant_selection/static/description/assets/modules/5.png new file mode 100644 index 000000000..0e311ca87 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/5.png differ diff --git a/website_sale_variant_selection/static/description/assets/modules/6.gif b/website_sale_variant_selection/static/description/assets/modules/6.gif new file mode 100644 index 000000000..a35ece8df Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/6.gif differ diff --git a/website_sale_variant_selection/static/description/assets/modules/6.jpg b/website_sale_variant_selection/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/modules/6.jpg differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/all_attr.png b/website_sale_variant_selection/static/description/assets/screenshots/all_attr.png new file mode 100644 index 000000000..2f545938e Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/all_attr.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/first_attr.png b/website_sale_variant_selection/static/description/assets/screenshots/first_attr.png new file mode 100644 index 000000000..3aaa34abd Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/first_attr.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/hero.gif b/website_sale_variant_selection/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..cddef2cfa Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/hero.gif differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/img1.png b/website_sale_variant_selection/static/description/assets/screenshots/img1.png new file mode 100644 index 000000000..81f4f3ed5 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/img1.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/img2.png b/website_sale_variant_selection/static/description/assets/screenshots/img2.png new file mode 100644 index 000000000..12f3ba1ae Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/img2.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/img3.png b/website_sale_variant_selection/static/description/assets/screenshots/img3.png new file mode 100644 index 000000000..42e328c01 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/img3.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/img4.png b/website_sale_variant_selection/static/description/assets/screenshots/img4.png new file mode 100644 index 000000000..42e328c01 Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/img4.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/second_attr.png b/website_sale_variant_selection/static/description/assets/screenshots/second_attr.png new file mode 100644 index 000000000..f77f5fa3a Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/second_attr.png differ diff --git a/website_sale_variant_selection/static/description/assets/screenshots/third_attr.png b/website_sale_variant_selection/static/description/assets/screenshots/third_attr.png new file mode 100644 index 000000000..b5446755d Binary files /dev/null and b/website_sale_variant_selection/static/description/assets/screenshots/third_attr.png differ diff --git a/website_sale_variant_selection/static/description/banner.jpg b/website_sale_variant_selection/static/description/banner.jpg new file mode 100644 index 000000000..4f8cf4502 Binary files /dev/null and b/website_sale_variant_selection/static/description/banner.jpg differ diff --git a/website_sale_variant_selection/static/description/icon.png b/website_sale_variant_selection/static/description/icon.png new file mode 100644 index 000000000..1d713fd9c Binary files /dev/null and b/website_sale_variant_selection/static/description/icon.png differ diff --git a/website_sale_variant_selection/static/description/index.html b/website_sale_variant_selection/static/description/index.html new file mode 100644 index 000000000..49437ee37 --- /dev/null +++ b/website_sale_variant_selection/static/description/index.html @@ -0,0 +1,1048 @@ + + + + + + Ecommerce Sequential Variant Selector + + + + + + + + + + +
+
+ + + + +
+
+
+
+
+
+ +
+ Supports: +
+ Community +
+
+ Enterprise +
+
+
+
+
+ Availability: +
+ On Premise +
+
+ Odoo.sh +
+
+ Odoo Online +
+
+
+
+
+
+ +
+ +
+
+
+
+

+ This module enables customers to select product attribute values from the website in an + ordered manner. It allows customers to choose attribute values one by one +

+

Ecommerce Sequential Variant Selector +

+
+
+ +
+ + + + +
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+

Key + Highlights

+
+
+
+
+ +
+
+ A specific order for selecting variant attributes. +
+

+

+
+
+
+
+
+ +
+
+ Easily integrates with the existing eCommerce setup. +
+

+

+
+
+
+
+
+ +
+
+ Prevents invalid variant selections. +
+

+

+
+
+
+
+ +
+
+
+ Ecommerce Sequential Variant Selector +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+

+
+
+

+ Open the Website Shop Product Page +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ +

+
+
+

+ Select the first attribute of the product . +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ Then next attribute of the product +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+

+
+
+

+ When all the attributes of the product are selected. +

+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+

+ Guided Variant Selection on Product Page. +

+
+
+

+ Customers select product attributes (like color, size, material) one at + a time in a fixed sequence, reducing confusion and making the buying + process smoother. +

+
+
+
+
+
+
+
+ +
+

+ Dynamic Option Filtering Based on Selections.

+
+
+

+ After each attribute is selected, the next attribute options are + automatically filtered to show only valid combinations, preventing "No + variant found" errors. +

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ It makes users select product attributes step-by-step—each + next option unlocks only after the previous one is selected. +

+
+
+ +
+ +
+

+ Yes, the sequence follows the order set in the product’s + attribute configuration. +

+
+
+ +
+ +
+

+ Yes, it works with all standard variant combinations defined + in Odoo. +

+
+
+
+ +
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 30th October, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/website_sale_variant_selection/static/src/js/variant_mixin.js b/website_sale_variant_selection/static/src/js/variant_mixin.js new file mode 100644 index 000000000..902d4bc7a --- /dev/null +++ b/website_sale_variant_selection/static/src/js/variant_mixin.js @@ -0,0 +1,135 @@ +/** @odoo-module */ +import publicWidget from '@web/legacy/js/public/public_widget'; + +publicWidget.registry.AttributeSelection = publicWidget.Widget.extend({ + selector: '.attr_container', + events: { + 'change .js_variant_change': '_onVariantChange', + 'click .js_variant_change': '_onVariantChange' + }, + + start() { + this._setupInitialState(); + return this._super(...arguments); + }, + + /** + * Sets up initial state and handles hidden attributes + * @private + */ + _setupInitialState() { + const variants = Array.from(this.el.querySelectorAll('li.variant_attribute')); + + // Handle hidden attributes first + variants.filter(variant => variant.classList.contains('d-none')) + .forEach(hiddenVariant => { + // Auto-select values for hidden attributes + hiddenVariant.querySelectorAll('input[type="radio"], select option').forEach(input => { + if (input.tagName === 'OPTION') { + input.selected = true; + } else { + input.checked = true; + } + }); + }); + + // Handle visible variants + const visibleVariants = variants.filter(v => !v.classList.contains('d-none')); + + // Disable all visible variants except the first one + visibleVariants.forEach((variant, index) => { + index === 0 ? this._enableVariant(variant) : this._disableVariant(variant); + }); + }, + + /** + * Handles variant selection changes + * @private + * @param {Event} ev + */ + _onVariantChange(ev) { + const input = ev.target; + if (!input.classList.contains('js_variant_change')) { + return; + } + + const currentVariant = input.closest('li.variant_attribute'); + if (!currentVariant) { + return; + } + + this._updateHighlight(input); + + // Find and enable next visible variant + const nextVariant = this._getNextVisibleVariant(currentVariant); + if (nextVariant) { + this._enableVariant(nextVariant); + } else { + // If last variant, enable all for editing + this.el.querySelectorAll('li.variant_attribute:not(.d-none)') + .forEach(variant => this._enableVariant(variant)); + } + + ev.stopPropagation(); + }, + + /** + * Finds the next visible variant + * @private + * @param {Element} currentVariant + * @returns {Element|null} + */ + _getNextVisibleVariant(currentVariant) { + let next = currentVariant.nextElementSibling; + while (next && next.classList.contains('d-none')) { + next = next.nextElementSibling; + } + return next; + }, + + /** + * Updates highlight state for selected variant + * @private + * @param {Element} input + */ + _updateHighlight(input) { + const container = input.closest('li.variant_attribute'); + + if (input.closest('.css_attribute_color')) { + container.querySelectorAll('.css_attribute_color').forEach(el => { + el.classList.toggle('active', el === input.closest('.css_attribute_color')); + }); + } else if (input.type === 'radio') { + container.querySelectorAll('label').forEach(label => { + label.classList.toggle('active', label === input.closest('label')); + }); + } + }, + + /** + * Enables a variant + * @private + * @param {Element} variant + */ + _enableVariant(variant) { + variant.classList.remove('disabled'); + variant.querySelectorAll('input, select').forEach(input => { + input.disabled = false; + if (input.checked || input.selected) { + this._updateHighlight(input); + } + }); + }, + + /** + * Disables a variant + * @private + * @param {Element} variant + */ + _disableVariant(variant) { + variant.classList.add('disabled'); + variant.querySelectorAll('input, select').forEach(input => { + input.disabled = true; + }); + } +}); diff --git a/website_sale_variant_selection/static/src/scss/website_sale_attribute_selection.scss b/website_sale_variant_selection/static/src/scss/website_sale_attribute_selection.scss new file mode 100644 index 000000000..ed17c8e60 --- /dev/null +++ b/website_sale_variant_selection/static/src/scss/website_sale_attribute_selection.scss @@ -0,0 +1,5 @@ +.disabled { + opacity: 0.36; + z-index: 100; + pointer-events: none; +} diff --git a/website_sale_variant_selection/views/variant_templates.xml b/website_sale_variant_selection/views/variant_templates.xml new file mode 100644 index 000000000..25ce54a11 --- /dev/null +++ b/website_sale_variant_selection/views/variant_templates.xml @@ -0,0 +1,131 @@ + + + + + + \ No newline at end of file