【问题标题】:SHOPIFY: How can I check if ANY variant is out of stockSHOPIFY:如何检查任何变体是否缺货
【发布时间】:2013-07-22 22:59:43
【问题描述】:

我销售有多种款式的 T 恤。

我想检查这些变体中的 ANY 是否“缺货”。然后,如果 ANY 的变体是“缺货”,则显示一条消息。 (同样的信息,不管什么变体缺货)

我知道这可以检查 FIRST 变体的库存:

{% if product.variants.first.inventory_quantity <= 0 %}

<p style="color:#ff0000">This item is currently out of stock.

Order today, and your item will be shipped in 4-6 weeks.</p>

{% case product.variants.first.inventory_quantity %}

{% when '0' %}

{% else %}

{% endcase %}

{% endif %}

但这仅检查第一个变体。在这里的任何帮助将不胜感激。我愿意在 javascript 或 Liquid 中处理这个问题,但对两者都相当陌生。

【问题讨论】:

    标签: shopify


    【解决方案1】:

    这是一种万无一失的方法……您可以将其扭曲成您想要的任何椒盐脆饼。

    {% for variant in product.variants %}
      {% if variant.inventory_quantity == 0 %}
        <h1>Damn Dawg, this variant be out of stock</h1>
      {% else %}
        ... whatever....
      {% endif %}
    {% endfor %}
    

    听起来,如果您只想将此消息打印一次,那么它适用于产品而不是变体本身。在这种情况下,如果任何东西缺货,只需将变量设置为 true,这样您就可以只打印一次消息。 limit:2 的建议是无意义的。

    例如:

    {% assign out_of_stock = false %}
    {% for variant in product.variants %}
      {% if variant.inventory_quantity == 0 %}
        {% assign out_of_stock = true %}
      {% endif %}
    {% endfor %}
    
    {% if out_of_stock == true %}
       <h1>Damn Dog, we're out of beers</h1>
    {% endif %}
    

    【讨论】:

    • 即使多个变体缺货,如何仅显示一条消息?
    • 感谢@davidlazar,这几乎是完美的,但它会为每个缺货的变体重复消息。我只想插入一次消息。我尝试使用这个: {% for variant in product.variants limit:1 %} 但是消息没有显示。有什么建议吗?
    • @liori 将上述代码的第一行调整为:{% for variant in product.variants limit:2 %},这似乎只为我显示一条消息。感谢您的帮助!
    【解决方案2】:

    2021 年,GraphQL 有一个 HasOutOfStockVariants 属性。

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2022-12-28
      • 2020-12-08
      相关资源
      最近更新 更多