首页 > 解决方案 > 如何在 Shopify 的 product.variants 循环中调用 option.value?

问题描述

我有一个隐藏的下拉菜单和两个variant-selector下拉菜单。

一个下拉列表是 for color,第二个是 for size

我想在下拉列表中添加size数据data-size=""color数据。data-color=""name=id

<form method="post" action="/cart/add">          
 {% if product.variants.size > 1 %} 
 {% for option in product.options_with_values %}          
    <select  class="variant-selector {{option.name}}" data-var="{{forloop.index}}">
       {% if product.available %}
       {% for values in option.values %}
          <option value="{{values}}">{{values}}</option>
       {% endfor %}
       {% endif %}
    </select>
 {% endfor %}
          
 <select name="id" style="display:none;" id="data{{forloop.index}}">
 {% for variant in product.variants %}
    {% if variant.available %}
       <option data-size="" data-color="" value="{{ variant.id }}"  >{{ variant.title }}</option>
    {% endif %}
 {% endfor %}
 </select>
 {% if variant.available%}
    <input type="hidden" min="1" type="number" name="quantity" value="1" />
    <input type="submit" value="{{ 'products.product.add_to_cart' | t }}"  class="btn add-to-cart" />
 {% else %}
    <input type="submit" value="{{ 'products.product.sold_out' | t }}"  class="btn add-to-cart" disabled="disabled">
 {% endif %}
 {% endif %}
 </form>

标签: shopify

解决方案


正如Dave B的评论,我不需要在 Shopifyoption.value的循环中。product.variants我只是添加data-size="{{ variant.option1 }}"data-color="{{ variant.option2 }}"

<select name="id" style="display:none;" id="data{{forloop.index}}">             
 {% for variant in product.variants %}
    {% if variant.available %}             
       <option data-size="{{ variant.option1 }}" data-color="{{ variant.option2 }}" value="{{ variant.id }}"  >{{ variant.title }}</option>             
    {% endif %}
 {% endfor %}             
</select>


推荐阅读