我有一个建立在Shopify Slate之上的主题。我的所有产品都有各种尺寸和颜色。它们在页面上作为两个选择元素输出 - 一个用于大小,一个用于颜色。当我从这两个选项中选择选项并将我的产品添加到购物车时,它总是添加默认变体。
这是我的product.liquid部分中的变体代码:
{% unless product.has_only_default_variant %}
{% for option in product.options_with_values %}
<div class="selector-wrapper js">
<label for="SingleOptionSelector-{{ forloop.index0 }}">
{{ option.name }}
</label>
<select id="SingleOptionSelector-{{ forloop.index0 }}"
class="single-option-selector" data-single-option-selector data-index="option{{ option.position }}">
{% for value in option.values %}
<option
value="{{ value | escape }}"
{% if option.selected_value == value %}selected="selected"{% endif %}>
{{ value }}
</option>
{% endfor %}
</select>
</div>
{% endfor %}
{% endunless %}
<select name="id" class="" data-product-select>
{% for variant in product.variants %}
<option
{% if variant == current_variant %}selected="selected"{% endif %}
{% unless variant.available %}disabled="disabled"{% endunless %}
value="{{ variant.id }}">
{{ variant.title }}
</option>
{% endfor %}
</select>
通过variant.js和product.js中代码的外观,前两个选择中的值应该用于更新最后一个,但由于某种原因,这不会发生。这两个文件中的代码没有改变,我在控制台中没有得到任何JS错误,所以我有点不知所措!
答案 0 :(得分:0)
确保整个部分(if query.lower() in ['song', 'songs']:
除外)包含在
schema
并将产品对象json传递给slate脚本
<div data-section-id="{{ section.id }}" data-section-type="product" data-enable-history-state="true" itemscope itemtype="http://schema.org/Product">