This is shopinvader the odoo module for the new generation of e-commerce.
This module adds the field variant_selector in the product variant metadata (exported to algolia or elastic). The value of the field contains the possible combinations of variants that are available. This ease frontend development of variant selectors.
[
{
"name": "Frame Type",
"values": [
{
"name": "Poster",
"sku": "Poster-White-70x50cm",
"selected": True,
"available": True,
},
{
"name": "Wooden",
"sku": "Wooden-White-70x50cm",
"selected": False,
"available": True,
},
],
},
{
"name": "Frame Color",
"values": [
{
"name": "White",
"sku": "Poster-White-70x50cm",
"selected": True,
"available": True,
},
{
"name": "Black",
"sku": "Poster-Black-70x50cm",
"selected": False,
"available": True,
},
{
"name": "Grey",
"sku": "Poster-Grey-70x50cm",
"selected": False,
"available": True,
},
],
},
{
"name": "Poster Size",
"values": [
{
"name": "45x30cm",
"sku": "",
"selected": False,
"available": False,
},
{
"name": "70x50cm",
"sku": "Poster-White-70x50cm",
"selected": True,
"available": True,
},
{
"name": "90x60cm",
"sku": "Poster-White-90x60cm",
"selected": False,
"available": True,
},
],
},
],
It's also important to understand how variants are selected and how attributes' values are filtered.
Imagine a case where you have shoes with - 6 sizes: 15, 16, 17, 18, 19, 20 - 3 colors: Green, Red, Yellow
and some exceptions: - Green is available in size: 18, 19 - Red is available in size: 15, 16, 17 - Yellow is available in size: 18, 19, 20
In your ERP you have configured to select first the size then the color. And the default variant is the first "Green 18"
You will have:
size : 15, 16, 17, [18], 19, 20
color : [Green], (Red), Yellow
[] mean selected
() mean not available
Only the color Green and Yellow are available because the size 18 is selected.
You will have:
size : 15, 16, 17, [18], 19, 20
color : Green, (Red), [Yellow]
Even if you select the color Yellow the size are now filtered because the second filter cannot affect the first one.
As only the Red color is available for this size you are redirected to the Red shoes and you have
size : 15, [16], 17, 18, 19, 20
color : (Green), [Red], (Yellow)
Allowing this would mean that if you select the size 16 you will have something like this:
size : 15, [16], 17, (18), (19), (20)
color : (Green), [Red], (Yellow)
And you will be locked in this situation without any possibility to select the Yellow shoes with size 19. There is an order for filling/selecting the value of each options and selecting a value should only impact the next attribute not the previous one.
This is the Odoo side of Shopinvader.
Table of contents
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 smashing it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
- Akretion
- Sebastien BEAU <[email protected]>
The development of this module has been financially supported by:
- Abilis
- Cosanum
This module is part of the shopinvader/odoo-shopinvader project on GitHub.
You are welcome to contribute.