If statement 在Shopify中检查购物车

If statement 在Shopify中检查购物车,if-statement,shopify,liquid,If Statement,Shopify,Liquid,我希望在Shopify中得到一些液体方面的帮助,我在尝试根据客户添加的产品定制购物车时遇到了麻烦 基本上,如果客户添加了供应商a的产品,那么我希望购物车加载模板,为供应商a定制购物车 但如果产品来自供应商B,那么我希望它加载模板,为供应商B定制购物车 但是如果购物车中没有任何一个(或两个)的产品,那么我希望它加载默认购物车 {编辑:我发现加载模板的代码有什么问题,但现在我只需要逻辑方面的帮助,这样当购物车同时拥有两个品牌的产品时,它就会加载默认购物车。因为此时它会将两个购物车片段加载到页面中}

我希望在Shopify中得到一些液体方面的帮助,我在尝试根据客户添加的产品定制购物车时遇到了麻烦

基本上,如果客户添加了供应商a的产品,那么我希望购物车加载模板,为供应商a定制购物车

但如果产品来自供应商B,那么我希望它加载模板,为供应商B定制购物车

但是如果购物车中没有任何一个(或两个)的产品,那么我希望它加载默认购物车

{编辑:我发现加载模板的代码有什么问题,但现在我只需要逻辑方面的帮助,这样当购物车同时拥有两个品牌的产品时,它就会加载默认购物车。因为此时它会将两个购物车片段加载到页面中}

非常感谢您的帮助

{% for item in cart.items %}
{% if item.vendor == 'Brand A' %}
{% include 'cart-a' %}
{% elsif item.vendor == 'Brand B' %}
{% include 'cart-b' %}
{% else %}

{% section 'cart-default %}

{% endif %}
{% endfor %}
我也试过:

{% case cart.items %}
{% when item.vendor == 'Brand A' %}
{% include 'cart-a' %}
{% when item.vendor == 'Brand B' %}
{% include 'cart-b' %}
{% when item.vendor == ‘Brand A’ and item.vendor == 'Brand B' %}
{% section 'cart-default' %}
{% else %}
{% section 'cart-default' %}
{% endcase %}

在液体中,使用阵列更容易。适用于您的工作代码:

{% assign vendors = cart.items | map: 'vendor'| uniq | join: ' ' %}
{% if  vendors contains "Brand A" and vendors contains "Brand B" %}
    {% section 'cart-default' %}
{% else %}
    {% if  vendors contains "Brand A" %}
        {% section 'cart-a' %}
    {% else %}
        {% if  vendors contains "Brand B" %}
            {% section 'cart-b' %}
        {% else %}  
            {% section 'cart-default' %}
        {% endif %}
    {% endif %}
{% endif %}

我想这些步骤可能会帮助你

步骤1:为两种不同类型的供应商和默认供应商创建不同的节,而不是代码段

步骤2:按照cart.liquid中的以下代码进行操作

{% assign vendor = '' %}
{% assign same = true %}
{% for item in cart.items %}
    {% if vendor != '' or vendor == item.vendor %}
         {% assign vendor = item.vendor %}
    {% else%}
         {% assign same = false %}
    {% endif %}
{% endfor %}

{% if same == true %}
    {% if vendor == 'Brand A' %}
       {% section 'cart-a' %}
    {% elsif vendor == 'Brand B'%}
       {% section 'cart-b' %}
    {% else %}
       {% section 'cart-default' %}
    {% endif %}
{% else %}
    {% section 'cart-default' %}
{% endif %}

如果购物车包含两种供应商类型的多个项目,该怎么办?i、 e.购物车有两个项目,一个来自供应商“品牌A”,另一个来自“品牌B”!!在这种情况下,我希望它显示默认购物车