如何在Shopify Liquid中检索特定产品?

时间:2012-11-07 11:47:15

标签: product handle shopify liquid

我有一个产品句柄列表,我想根据此句柄获取产品。似乎没有办法告诉Liquid去购买单一产品。我可以使用API​​执行此操作,但如果我使用API​​,那么我必须使用JavaScript,并且我必须复制已经在代码段中的HTML,并复制逻辑。

我正在尝试的减少版本:

{% assign handle = 'my-product-handle' %}
{% assign product = products.handle %}
{% include 'snippet-product-item' %}

5 个答案:

答案 0 :(得分:27)

您现在可以使用以下方法通过句柄检索产品:

{% assign someProduct = all_products.some-handle %}

目前还没有文件可以支持这一点,但希望很快就能在Shopify方面找到有形的东西。

答案 1 :(得分:9)

只是为了发现这一点的任何人更新,您现在可以通过all_products['handle']按照this response在Shopify / Liquid repo上直接引用产品。

答案 2 :(得分:3)

你可以尝试这样的事情:

{% for product in collection.all_products %}
    {% if product.handle contains 'your-handle-name' %}
        // Do what you want here
    {% endif %}
{% endfor %}

循环浏览所有产品(也可以遍历特定的集合),您可以使用if语句找到所需的产品。

干杯。

答案 3 :(得分:3)

我也在搜索这个,我还没有办法在液体文件中通过id获取产品。

但如上所述,您可以通过句柄访问任何产品

{{ all_products['product-handle'] }}

我担心的是,我认为如果您更改产品手柄的名称会自动更改,但实际上并没有发生,它仍然是旧手柄。

您需要创建一个不同的产品才能更改句柄,因此我猜{{ all_products['product-handle'] }}是访问您的产品的好方法。

我这样做:

{% assign product = all_products['test-product-1'] %}
{% if product == blank %}
    <h1>No product found</h1>
{% else %}
    <h1>{{ product.title }}</h1>
{% endif %}

答案 4 :(得分:1)

据我所知,你不能用液体处理产品。

这让我问了几个问题:为什么你首先要有一个产品手柄清单?它从哪里来的?我建议将这些产品放在自定义集合中,然后您可以像这样引用它们:{% collections['my-collections'] %}