我有一份产品句柄清单,并且想要根据这个句柄获取产品。似乎没有办法告诉Liquid去获取单个产品。我可以使用API来完成,但如果我使用API,那么我必须使用JavaScript,并且我需要复制已经在片段中的HTML和逻辑。
我正在尝试的简化版:
{% assign handle = 'my-product-handle' %}
{% assign product = products.handle %}
{% include 'snippet-product-item' %}
我有一份产品句柄清单,并且想要根据这个句柄获取产品。似乎没有办法告诉Liquid去获取单个产品。我可以使用API来完成,但如果我使用API,那么我必须使用JavaScript,并且我需要复制已经在片段中的HTML和逻辑。
我正在尝试的简化版:
{% assign handle = 'my-product-handle' %}
{% assign product = products.handle %}
{% include 'snippet-product-item' %}
现在可以使用以下方式通过 handle 检索产品:
{% assign someProduct = all_products.some-handle %}
目前没有文件可以证明这一点,但希望Shopify方面很快会有实质性的东西。
对于任何刚刚发现这篇文章的人,我想更新一下,您现在可以通过all_products ['handle']
直接引用产品,就像他们在Shopify/liquid存储库上的回应中所述。
现在你不仅可以通过 all_products ['产品的handle']
在任何页面访问任何产品,而且还可以像处理产品变量一样处理它,例如:
{{ all_products['产品的handle'].title }}
这与产品页面上的 {{ product.title }}
相同。
{% assign product = all_products['test-product-1'] %}
{% if product == blank %}
<h1>No product found</h1>
{% else %}
<h1>{{ product.title }}</h1>
{% endif %}
{% for product in collection.all_products %}
{% if product.handle contains 'your-handle-name' %}
// Do what you want here
{% endif %}
{% endfor %}
for
循环有 50 个产品的硬性限制。如果您的集合超过 50 个产品,则无法访问所有产品。自发布此答案以来,Shopify 允许使用 all_products['handle']
根据其 handle
访问产品对象,如较新的答案所述。 - FactoryAidan{% collections['my-collections'] %}
。
{{all_products['some-handle'].title}}
和{{all_products.some-handle.title}}
。 - FactoryAidan{% capture productHandle %}{% include 'shortcode-render' render:'handle' default:'' %}{% endcapture %} {% assign productData = all_products[ productHandle ] %}
- Juniper Jones