On my Products details page I have 2 selects. The 1st select list out the Primary variants. Based on the selected Primary variant the 2nd select is auto-completed in with Secondary variants that have the same Primary variant.
I am doing setting this initially via an array:
{% set myVariants = [] %}
{% for variant in product.variants %}
{% set variantId = variant.id %}
{% set Primary = variant.primary %}
{% set Secondary = variant.secondary %}
{% if Primary not in myVariants | keys %}
{% set myVariants = myVariants | merge({
(Primary): [Secondary]
}) %}
{% else %}
{% set myVariants = myVariants | merge({
(Primary): myVariants[Primary] | merge([Secondary])
}) %}
{% endif %}
{% endfor %}
This outputs an array like so when dumped:
array(5) {
["0.375"]=> array(2) {
[0]=> string(5) "0.125"
[1]=> string(5) "0.415"
}
["0.500"]=> array(1) {
[0]=> string(5) "0.768"
}
["0.625"]=> array(1) {
[0]=> string(5) "1.151"
}
}
So based on the selected Primary and Secondary variants a specific variant ID should be pulled.
I've tried starting with the variant IDs, then passing the Primary variant to reproduce a similar array like above but it doesn't put them in a 2nd array.
What am I missing?
Also, based on the selection of Primary and Secondary, not only will the ID need to be pulled but also 2 additional variants and the sku; each of which are specific to that variant.