我前几天发布了一个问题,询问如何查看购物车中的商品是否有特定标签,并得到了我的回答:
{% for item in cart.items %}
{% if item.product.tags contains 'SampleProduct' %}
<p>Enjoy your Product</p>
{% endif %}
{% endfor %}
此代码有效。但我想将其与检查购物车中的产品是否具有一定数量产品的代码结合起来。因此,类似客户必须购买50件产品才能结账,而且他们会收到错误信息。以下是我的代码,用于检查客户是否购买了足够的物品:
{% if cart.total_amount <= 49 %}
<p>You need to purchase 50 items or more to checkout</p>
{% else %}
{{include check out button}}
{% endif %}
所以我试着像这样一起使用这两个:
{% for item in cart.items %}
{% if item.product.tags contains 'SampleTag' %}
{%for cart.items %}
{% if product.item.total_amount <= 49 %}
<p> You will need to purchase more than 50 of this product </p>
{% else %}
*{{ Include Checkout button }}
{% endif %}
{% endfor %}
{% else %}
*{{ Include Checkout button }}
{% endif %}
{% endfor %}
*首先:我不知道是否需要两个结账按钮 第二:当我使用这段代码时,我收到一条错误说:“for循环中的语法错误” - 有效语法:[collection]中的[item] 第三:这会循环我的购物车中的产品还是将它们组合在一起?我希望它循环并单独检查每个产品集。
任何人都可以帮助我吗?为什么我收到语法错误?我还能做些什么来改进我的代码吗?
感谢您的帮助
答案 0 :(得分:0)
回答你的问题:
{% for item in cart.items %}
,而不是{%for cart.items %}
尝试这样的事情:
{% assign show_checkout_button = true %}
{% for item in cart.items %}
{% if item.product.tags contains 'SampleTag' and item.quantity <= 49 %}
{% assign show_checkout_button = false %}
<p>You will need to purchase more than 50 of the product "{{ item.product.title }}"</p>
{% endif %}
{% endfor %}
{% if show_checkout_button %}
<!-- show checkout button -->
{% endif %}
以上代码循环浏览购物车中的每个产品,如果产品的标签为“SampleTag”且数量小于50,则显示错误消息而不是结帐按钮。