我有一个产品句柄列表,我想根据此句柄获取产品。似乎没有办法告诉Liquid去购买单一产品。我可以使用API执行此操作,但如果我使用API,那么我必须使用JavaScript,并且我必须复制已经在代码段中的HTML,并复制逻辑。
我正在尝试的减少版本:
{% assign handle = 'my-product-handle' %}
{% assign product = products.handle %}
{% include 'snippet-product-item' %}
答案 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'] %}