Shopify:调用swatch.liquid';颜色';关于收集液体和产品循环液体
我无法找到解决问题的方法。我想在产品价格下面显示一个简单的“更多颜色”选项 我一直在测试代码,例如:Shopify:调用swatch.liquid';颜色';关于收集液体和产品循环液体,shopify,Shopify,我无法找到解决问题的方法。我想在产品价格下面显示一个简单的“更多颜色”选项 我一直在测试代码,例如: {% if product.variants 'color' > 1 %} Has more than one variant. {% else %}Only one variant. {% endif %} 但我一点运气都没有。所有的东西要么叫“有更多…”要么叫“只有一个…”而不管样本数 我正在编辑从集合调用的产品循环.liquid。liquid 它只为每个产品输
{% if product.variants 'color' > 1 %}
Has more than one variant.
{% else %}Only one variant.
{% endif %}
但我一点运气都没有。所有的东西要么叫“有更多…”要么叫“只有一个…”而不管样本数
我正在编辑从集合调用的产品循环.liquid
。liquid
它只为每个产品输出“仅一个变体”或“有多个变体”,而不考虑样本/颜色计数
谢谢你的帮助。这句话毫无意义:
{% if product.variants 'color' > 1 %}
相反,您希望检查变体的选项集,如果您检测到一个选项集为“颜色”,并且您有多个变体,那么很明显,您处于多个颜色区域
{% assign has_more_colors = false %}
{% for option in product.options %}
{% if option contains 'color' and product.variants.length > 1 %}
{% assign has_more_colors = true %}
{% endif %}
{% endfor %}
所以现在你可以做任何你需要做的事。。。由于您现在知道a)有一个名为“颜色”的选项,b)有多个变体,因此有多个颜色…以下代码片段已发布到Shopify Board上。它解决了这个问题:
{% assign option_title = "Color" %}
{% assign option_index = "" %}
{% assign option_values = "" %}
{% for option in product.options %}
{% if option == option_title %}
{% assign option_index = forloop.index %}
{% endif %}
{% endfor %}
{% for variant in product.variants %}
{% assign variant_option_value = "" %}
{% if option_index == 1 %}
{% assign variant_option_value = variant.option1 | handleize %}
{% elsif option_index == 2 %}
{% assign variant_option_value = variant.option2 | handleize %}
{% elsif option_index == 3 %}
{% assign variant_option_value = variant.option3 | handleize %}
{% endif %}
{% assign option_values = option_values | append:"," | append:variant_option_value %}
{% endfor %}
{% assign option_values = option_values | remove_first:"," | split:"," | uniq %}
{% if option_values.size > 1 %}
<a href="{{ url }}" class="more-colors" style="border: 1px solid black;">MORE COLORS</a>
{% else %}
{% endif %}
{%assignoption\u title=“Color”%}
{%assign option_index=”“%}
{%assign option_values=”“%}
{product.options%中的选项为%s}
{%if option==option_title%}
{%assign option_index=forloop.index%}
{%endif%}
{%endfor%}
{product.variants%中的变量为%0}
{%assign variant_option_value=”“%}
{%if option_index==1%}
{%assign variant_option_value=variant.option1| handleize%}
{%elsif选项_索引==2%}
{%assign variant_option_value=variant.option2| handleize%}
{%elsif选项_索引==3%}
{%assign variant_option_value=variant.option3|handleize%}
{%endif%}
{%assign option_values=option_values | append:,“| append:变量_option_value%}
{%endfor%}
{%assign option_values=option_values | remove_first:,“| split:,”| uniq%}
{%if option_values.size>1%}
{%else%}
{%endif%}
我把它放到了产品循环中
,不知道为什么它没有输出任何东西。这似乎是可行的,但我是否需要创建一个具有更多颜色的变量,或者这是液体标记的一部分?我是新来的。。泰克斯。您只需检查新的变量。{%if拥有更多的颜色%}更多的颜色{%else%}生活在一个单色世界中{%endif%}仍然无法在具有多种颜色的产品上正确使用它。也许是因为只有一个尺码?也就是说,钱包:1号,多种颜色。下面是我们的swatch.liquid
标记的要点(如果有帮助的话):