Shopify如果在收藏中,则显示此信息

时间:2013-02-07 18:50:07

标签: shopify

我正在尝试编写一个简单的if语句,但总是很难与shopify的系统一起使用。

基本上我希望它能够做到这一点:

{%if collection.product =='停用'%} 本产品已停产。 {%endif%}

如果它在此集合中,则显示此文本/ html。否则它不会显示任何内容。这将在product.liquid模板中。

有什么想法吗?

5 个答案:

答案 0 :(得分:6)

这就是最终的工作:

{% for c in product.collections %}
{% if c.handle == "discontinued" %}
This product is Discontinued 
{% endif %}
{% endfor %}

答案 1 :(得分:1)

如果我了解Shopify中液体收集的工作原理,您需要迭代所有产品。

如果您直接使用集合,则需要执行类似的操作:

{% for product in collection.product %}
  {% if product.tags contains 'discontinued' %}
    This product has been discontinued :(
  {% endif %}
{% endfor %}

如果您只使用单一产品,则可以使用内部if液体标签部件。

参考文献:

答案 2 :(得分:1)

您确实可以将已停产的产品添加到名为已停产的集合中。

在渲染产品时,您可以像csaunders建议的那样,简单地遍历已停产的集合中的所有产品,并检查当前产品的ID是否与该集合中的任何产品匹配。如果是这样,那就做你必须做的事。无需使用标签。

答案 3 :(得分:1)

我想这对任何人都有帮助,我在shopify网站的侧边栏中使用过。 下面的代码将检查当前的收集页面。

<div class="row-fluid not-animated" data-animate="fadeInUp">
<div class="title">By Collections</div>
<form class="coll">
{% assign col_tags = collection.title %}

{% for collection in collections %}

<input type="radio" value="{{ collection.url }}" name="collections"  {% if col_tags contains collection.title %} checked {% endif %} >{{ collection.title | escape }} <br/>

 {% endfor %}
 </form>

答案 4 :(得分:0)

您可以使用 product.collections 上的地图为产品创建集合数组。这将创建一个具有您指定属性的新数组,即每个集合的句柄。

然后您可以检查这个新数组是否 contains 您想要使用的句柄。

{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'your-collection-handle' %} 
  {% comment %} DoSomething {% endcomment %} 
{% endif %}

例如:

{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'discontinued' %} 
  This product is Discontinued
{% endif %}

如果您的案例不同,您可以映射其他字段,例如标题。