I’ve been struggling with this problem for 2 day. In my store each product has 2 options: size and colors (Tshirts). Any shopify experts are here?
Store: nosmallplan-dev.myshopify.com
Pass: nsp
I use ajaxify cart. In Product liquid i have this code:
<div style="display:none;"">
{% if product.variants.size > 1 %}
<select id="product-select" name="id">
{% for variant in product.variants %}
{% if variant.available %}
<option value="{{ variant.id }}">{{ variant.title | escape }} - {{ variant.price | money }} - {{ variant.sku }}</option>
{% else %}
<input type="hidden" name="id" value="{{ product.variants.first.id }}" />
{% endif %}
{% endfor %}
</select>
{% endif %}
</div>
But product with default size and color is always added to cart, doesnt matter even if you choose another option.
In Cart.liquid i have this code:
<p class="cart__product--details">
{% if item.product.variants.size > 1 %}
{{ item.product.options[0] }}: {{item.variant.title}}
{% endif %}
</p>
I believe this code is responsible for showing first option.
How can i modify it to show selected option and if none is selected then first option?
Thanks!!!
2
Answers
You have to add js in such a manner that when you click on the size and color then you have to change the option of select accordingly. In this way you add product to cart with selected option using ajax.
Thanks
You should have hidden drop-down with list of all variants and visible dropdowns or each option. For example:
Instead of your code with hidden select, please add this code:
Also you need to add this JS, which will change the hidden select value, when you changing visible dropdowns for product options: