1

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

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

我知道这可以检查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 中处理这个问题,但对两者都相当陌生。

4

2 回答 2

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 %}
于 2013-07-22T23:28:42.010 回答
0

在 2021 年,GraphQL 有一个 HasOutOfStockVariants 属性。

于 2021-08-18T19:44:27.553 回答