通过 Shopify ScriptTag 读取产品元字段 API

Reading product metafields through Shopify ScriptTag API

我正在构建一个具有两个主要功能点的 Shopify 嵌入式应用程序:

  1. 安装后,产品元字段会填充一些值
  2. 页面加载后,自定义脚本通过 shopify ScriptTag 注入产品页面 api

注入的脚本会在产品元字段的值旁边显示一些图标。

目前,从产品页面,注入的脚本必须从我的本地服务器请求元字段,然后在发回响应之前查询客户端 shopify。

有没有办法直接从产品页面访问元字段值,而无需执行上述操作?

提前致谢。

注入的脚本仅在前端页面加载时触发,而访问元字段只能通过 Liquid 或 Shopify API。在这种情况下,您现在拥有的数据流是 Shopify 中的标准处理方式。但是,考虑到性能影响或出于任何原因,如果您仍然想实现这一点,则可以使用 Liquid。

这样做有两种方式。

  1. 提供 Liquid 代码片段
  2. 使用 Shopify API 在 App 安装中添加 Liquid 代码片段

Liquid 代码片段

在用户安装您的应用后,为他们提供一个 Liquid 代码片段以集成到他们的主题中。该流动代码片段应将元字段公开给某个 JavaScript 变量,您的注入脚本将读取该变量。

Shopify API 添加 Liquid 代码片段

如果您不希望用户手动集成 Liquid 代码片段,则在应用程序安装时,使用 Theme Assets API 将您的 Liquid 代码片段添加到客户的活动主题中。这将需要用户在安装时获得额外的应用程序权限。还要考虑不同的可用主题,并在卸载应用程序时从主题中删除代码片段。

您没有提到您将在其中创建元字段的资源,但样本 Liquid 代码片段应该类似于

<script>
    var customMetaField = {shop.metafields.namespace.fieldname}
</script>

在您的自定义 App 脚本中读取变量 customMetaField。这只是一个粗略的想法,您需要检查元字段命名空间和元字段是否存在,然后相应地输出值。

Shop Metafields