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

     2023-02-15     163

关键词:

【中文标题】如何在 Shopify Liquid 中检索特定产品?【英文标题】:How do I retrieve a specific product in Shopify Liquid? 【发布时间】:2012-10-27 11:22:25 【问题描述】:

我有一个产品句柄列表,我想根据这个句柄获取产品。似乎没有办法告诉 Liquid 去购买单一产品。我可以使用 API 来做到这一点,但如果我使用 API,那么我必须使用 JavaScript,并且我必须复制我在 sn-p 中已有的 HTML,并复制逻辑。

我正在尝试的精简版:

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

【问题讨论】:

【参考方案1】:

据我所知,您无法通过手柄取出液体中的产品。

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

【讨论】:

【参考方案2】:

你可以试试这样的:

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

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

干杯。

【讨论】:

确实看起来这是唯一的选择。经过多次反复试验,这就是 Shopify 留给我们的(即使在 2015 年!) 仅供参考:Shopify Liquid for 循环有 50 个产品的硬性限制。如果您的收藏有超过 50 种产品,您将无法访问所有产品。自发布此答案以来,Shopify 已允许 all_products['handle'] 使用其 handle 访问产品对象;正如最近的答案所述。 all_products 的硬性限制为 20 个产品【参考方案3】:

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

% assign someProduct = all_products.some-handle %

目前没有文档可以支持这一点,但希望 Shopify 方面很快就会有一些切实的东西。

【讨论】:

拯救了我的一天。谢谢 以下在 Shopify 中均有效:all_products['some-handle'].titleall_products.some-handle.title 有没有办法使用包含所有产品而不是 all_products 的集合来做到这一点,这样我们就不会被限制在 20 个?你能对 all_products 进行分页吗? 我发现括号表示法更灵活,因为它允许句柄标识符中的变量。例如% capture productHandle %% include 'shortcode-render' render:'handle' default:'' %% endcapture % % assign productData = all_products[ productHandle ] % 注意:目前 shopify 仅允许在任何给定站点上调用 20 个all_product,因此如果您想循环使用它,请小心。【参考方案4】:

只是为了让刚刚发现此内容的任何人更新,您现在可以通过 all_products['handle'] 的句柄直接引用产品,根据他们 Shopify/liquid 存储库中的this response。

【讨论】:

【参考方案5】:

您现在不仅可以使用all_products['the-handle-of-the-product'] 在任何流动页面上通过其句柄访问任何产品,而且您可以像这样威胁产品变量:

all_products['the-handle-of-the-product'].title 与 product.liquid 页面上的 product.title 相同。

【讨论】:

【参考方案6】:

我也在寻找这个,但我还没有找到一种方法来通过 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 %

【讨论】:

如何在 VS Code 中验证 Shopify Liquid 模板中的 JSON?

】如何在VSCode中验证ShopifyLiquid模板中的JSON?【英文标题】:HowtovalidateJSONinShopifyLiquidtemplatesinVSCode?【发布时间】:2022-01-1601:41:10【问题描述】:最近有一个错误是由于ShopifyLiquid模板中下面缺少逗号引起的:%schema%..."settings":["type... 查看详情

无法在 Liquid 代码、Shopify 中找到访问者的位置

】无法在Liquid代码、Shopify中找到访问者的位置【英文标题】:Unabletofindvisitor\'slocationinLiquidcode,Shopify【发布时间】:2019-06-2712:14:36【问题描述】:我一直在尝试通过调整我的Shopify主题的液体代码来根据国家/地区过滤我的产品。... 查看详情

如何在shopify中显示特定标签的产品?

】如何在shopify中显示特定标签的产品?【英文标题】:Howtodisplayproductsfromspecifictaginshopify?【发布时间】:2021-10-0812:43:22【问题描述】:如何在shopify自定义模板中显示特定标签“有机”的产品?这是我的代码。%ifcustomer.tagscontains\... 查看详情

Shopify Plus 启用 Checkout.liquid

】ShopifyPlus启用Checkout.liquid【英文标题】:ShopifyPlusEnablingCheckout.liquid【发布时间】:2020-03-0422:53:39【问题描述】:我是一名开发人员,在最近更新的Shopifyplus商店中工作。问题是我无法从主题的布局中添加checkout.liquid,它应该在... 查看详情

为自定义 Shopify 应用存储和检索数据

】为自定义Shopify应用存储和检索数据【英文标题】:StoringandretrievingdataforcustomShopifyapps【发布时间】:2021-04-0210:32:50【问题描述】:所以我正在尝试为我的商店构建一些东西,但有些事情还不清楚。如果我需要保存一些用户设置... 查看详情

在 Visual Studio 代码中格式化液体(Shopify)代码

】在VisualStudio代码中格式化液体(Shopify)代码【英文标题】:Formatliquid(Shopify)codeinvisualstudiocode【发布时间】:2018-10-2707:18:10【问题描述】:如何在VisualStudio中格式化.liquid(Shopify液体)代码。通过将语言设置为HTML,我可以做到... 查看详情

在 Shopify Liquid 中将字符串转换为整数?

】在ShopifyLiquid中将字符串转换为整数?【英文标题】:ConvertstringtointegerinShopifyLiquid?【发布时间】:2015-01-2716:57:09【问题描述】:我刚刚阅读了这个相关的答案:HowcanIconvertanumbertoastring?-ShopifyDesign—EcommerceUniversity要将字符串转... 查看详情

Shopify:如何显示每个位置变体的库存数量?

】Shopify:如何显示每个位置变体的库存数量?【英文标题】:Shopify:Howtodisplayinventoryquantitiesofavariantperlocation?【发布时间】:2020-08-2408:00:11【问题描述】:是否可以在产品页面上显示每个位置的产品变型的库存数量?由于此信息... 查看详情

使用 Shopify Liquid 模板访问元字段中的 JSON 块

】使用ShopifyLiquid模板访问元字段中的JSON块【英文标题】:AccessJSONlumpsinmetafieldswithShopifyLiquidtemplates【发布时间】:2017-03-2816:39:45【问题描述】:我想知道是否有人知道我是否可以在Liquid中访问JSON,如下例所示。我为供应商页面... 查看详情

shopify中的.js和.js.liquid有啥区别?

】shopify中的.js和.js.liquid有啥区别?【英文标题】:what\'sthedifferencebetween.jsand.js.liquidinshopify?shopify中的.js和.js.liquid有什么区别?【发布时间】:2014-11-1623:25:50【问题描述】:在资产部分,有.js和.js.liquid名称的文件。这2个有什么... 查看详情

Shopify 部分中的变量范围

】Shopify部分中的变量范围【英文标题】:VariablescopeinShopifySections【发布时间】:2018-11-2401:47:16【问题描述】:我试图在我的部分文件中使用一个变量,但它似乎不是从它的父模板继承的。例如:index.liquid%assignfoo="bar"%%section\'examp... 查看详情

如何链接到 Shopify 中的自定义模板?

】如何链接到Shopify中的自定义模板?【英文标题】:HowtolinktoacustomtemplateinShopify?【发布时间】:2020-01-2317:38:55【问题描述】:我正在尝试在Shopify中添加指向按钮的链接,但无法正常工作。我在模板中创建了一个名为“page.alternat... 查看详情

修复了 Shopify 上自定义开发部分中的块数

】修复了Shopify上自定义开发部分中的块数【英文标题】:FixednumberofblocksincustomdevelopedsectiononShopify【发布时间】:2018-12-0206:46:36【问题描述】:我正在为Shopify上的主题开发自定义部分。我使用Debut主题中的自定义内容模板(custom-co... 查看详情

Shopify Liquid:连续 for 循环无序迭代

】ShopifyLiquid:连续for循环无序迭代【英文标题】:ShopifyLiquid:Consecutiveforloopsiteratingoutoforder【发布时间】:2020-01-2805:20:17【问题描述】:我正在尝试修改Shopify主题,该主题通过循环浏览集合来显示产品。我想在其余产品之后显示... 查看详情

在 Shopify 液体模板中使用 vue.js

】在Shopify液体模板中使用vue.js【英文标题】:Usingvue.jsinShopifyliquidtemplates【发布时间】:2017-09-1605:39:47【问题描述】:这应该很简单,但尽管进行了搜索,但我找不到任何解决方案。如何在液体文件中使用vue模板标签?由于Vue和... 查看详情

在我的 Shopify Liquid 主题中添加并解析我自己的 JSON 对象

】在我的ShopifyLiquid主题中添加并解析我自己的JSON对象【英文标题】:AddandparsemyownJSONobjectinmyShopifyLiquidtheme【发布时间】:2015-12-2521:07:41【问题描述】:我在我的Shopify液体主题中的资产文件夹中添加了一个JSON文件。我想从我的... 查看详情

`content_for_layout` 如何在 shopify 中加载内容?

】`content_for_layout`如何在shopify中加载内容?【英文标题】:Howdoes`content_for_layout`loadcontentinshopify?【发布时间】:2019-03-2917:58:03【问题描述】:我正在尝试了解shopify。在首次亮相的主题,theme.liquid布局文件中我找到了这段代码conte... 查看详情

用于 Shopify 主题开发的 LESS CSS 和转义 Liquid 语法

】用于Shopify主题开发的LESSCSS和转义Liquid语法【英文标题】:LESSCSSandescapingLiquidsyntaxforshopifythemedevelopment【发布时间】:2012-06-2601:19:19【问题描述】:我正在创建一个Shopify主题,并使用LESS将Shopify需要的样式表编译为style.css.liquid... 查看详情