Shopify Slate变体不更新

时间:2017-07-24 14:37:20

标签: javascript shopify liquid

我有一个建立在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错误,所以我有点不知所措!

1 个答案:

答案 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">