显示购物车中不存在的集合中的项目 Shopify
Display Items in Collection that Do Not Exist In Shopping Cart Shopify
我正在尝试遍历购物车中的商品并生成加售 div 商品不在购物车中。下面是我到目前为止的代码,但是我 运行 在将两个项目添加到购物车时遇到问题 运行 循环两次生成 html 两次。关于如何解决它的任何想法?我被难住了。
{% for item in cart.items %} // iterates over items in cart
{% if item.product.id == 4456879040188 %} // checks if product id matches in item in cart
<div class="upsell-pop" style="text-align:center; width: 100%;">
<h4>Frequently bought together</h4>
{% for prod in collections.upsell.products %} // iterates products in collection upsell
{% unless prod.handle contains "product-name" %} // shows only prods that do not contain url handle
<div>
<span class="upsell-title">{{ prod.title }}</span>
<span class="upsell-price">{{ prod.metafields["meta"]["promo"] }} {{ prod.price | money }}</span>
<a href="{{prod.url}}"><img src="{{ prod.featured_image | img_url: '200x' }}" /></a>
<a class="btn-product" href="{{prod.url}}">View Product</a>
</div>
{% endunless %}
{% endfor %}
</div>
{% endif %}
{% endfor %}
另一个想法是以某种方式检查产品是否不在购物车中以替换现有的 "unless" 语句,但不确定如何编码。
{% unless cart.items exist then %} // I know this is not correct syntax
<div>
<span class="upsell-title">{{ prod.title }}</span>
<span class="upsell-price">{{ prod.metafields["meta"]["promo"] }} {{ prod.price | money }}</span>
<a href="{{prod.url}}"><img src="{{ prod.featured_image | img_url: '200x' }}" /></a>
<a class="btn-product" href="{{prod.url}}">View Product</a>
</div>
{% endunless %}
在我看来,这里有两个步骤。
首先,捕获您的购物车内容以获取字符串以与循环追加销售时进行比较 collection。这可能是这样的:
{%- capture cart_items -%}
{% for item in cart.items %}
{{ item.product.handle }}{% unless forloop.last %} , {% endunless %}
{% endfor %}
{%- endcapture -%}
然后遍历你的collection,同时在每次迭代时检查你的字符串不包含当前产品的句柄:
{% for product in collections['upsell'].products %}
{% unless cart_items contains product.handle %}
{{ product.title }}
{% endunless %}
{% endfor %}
备注:
代码段 1 => 在 line_item 中(这里称为项目,因为它写起来更短)object 您可以访问产品 object 属性:item.product.product_attr_needed
Snippet 2 => 要使用其句柄直接访问 collection object,您必须使用 collections + 包含 collection 句柄 + 属性的方括号。这里 'upsell' 是您加售的句柄 collection.
未测试,但这应该有效。
HTH
我正在尝试遍历购物车中的商品并生成加售 div 商品不在购物车中。下面是我到目前为止的代码,但是我 运行 在将两个项目添加到购物车时遇到问题 运行 循环两次生成 html 两次。关于如何解决它的任何想法?我被难住了。
{% for item in cart.items %} // iterates over items in cart
{% if item.product.id == 4456879040188 %} // checks if product id matches in item in cart
<div class="upsell-pop" style="text-align:center; width: 100%;">
<h4>Frequently bought together</h4>
{% for prod in collections.upsell.products %} // iterates products in collection upsell
{% unless prod.handle contains "product-name" %} // shows only prods that do not contain url handle
<div>
<span class="upsell-title">{{ prod.title }}</span>
<span class="upsell-price">{{ prod.metafields["meta"]["promo"] }} {{ prod.price | money }}</span>
<a href="{{prod.url}}"><img src="{{ prod.featured_image | img_url: '200x' }}" /></a>
<a class="btn-product" href="{{prod.url}}">View Product</a>
</div>
{% endunless %}
{% endfor %}
</div>
{% endif %}
{% endfor %}
另一个想法是以某种方式检查产品是否不在购物车中以替换现有的 "unless" 语句,但不确定如何编码。
{% unless cart.items exist then %} // I know this is not correct syntax
<div>
<span class="upsell-title">{{ prod.title }}</span>
<span class="upsell-price">{{ prod.metafields["meta"]["promo"] }} {{ prod.price | money }}</span>
<a href="{{prod.url}}"><img src="{{ prod.featured_image | img_url: '200x' }}" /></a>
<a class="btn-product" href="{{prod.url}}">View Product</a>
</div>
{% endunless %}
在我看来,这里有两个步骤。
首先,捕获您的购物车内容以获取字符串以与循环追加销售时进行比较 collection。这可能是这样的:
{%- capture cart_items -%}
{% for item in cart.items %}
{{ item.product.handle }}{% unless forloop.last %} , {% endunless %}
{% endfor %}
{%- endcapture -%}
然后遍历你的collection,同时在每次迭代时检查你的字符串不包含当前产品的句柄:
{% for product in collections['upsell'].products %}
{% unless cart_items contains product.handle %}
{{ product.title }}
{% endunless %}
{% endfor %}
备注:
代码段 1 => 在 line_item 中(这里称为项目,因为它写起来更短)object 您可以访问产品 object 属性:item.product.product_attr_needed
Snippet 2 => 要使用其句柄直接访问 collection object,您必须使用 collections + 包含 collection 句柄 + 属性的方括号。这里 'upsell' 是您加售的句柄 collection.
未测试,但这应该有效。
HTH