我正在构建具有两个主要功能点的 Shopify 嵌入式应用程序:
- 安装后,产品元字段会填充一些值
- 页面加载后,通过 shopify ScriptTag api 将自定义脚本注入产品页面
注入的脚本在产品元字段的值旁边显示一些图标。
目前,从产品页面,注入的脚本必须从我的本地服务器请求元字段,然后在发回响应之前查询客户端 shopify。
有没有办法直接从产品页面访问元字段值,而无需执行上述操作?
提前致谢。
我正在构建具有两个主要功能点的 Shopify 嵌入式应用程序:
注入的脚本在产品元字段的值旁边显示一些图标。
目前,从产品页面,注入的脚本必须从我的本地服务器请求元字段,然后在发回响应之前查询客户端 shopify。
有没有办法直接从产品页面访问元字段值,而无需执行上述操作?
提前致谢。
注入的脚本仅在前端页面加载时触发,而只能通过 Liquid 或 Shopify API 访问元字段。在这种情况下,您现在拥有的数据流是 Shopify 中的标准处理方式。但是,考虑到性能影响或任何原因,如果您仍然想实现这一点,您可以使用 Liquid。
这样做可以通过 2 种方式完成。
液体代码片段
用户安装您的应用后,为他们提供 Liquid 代码片段以集成到他们的主题中。该流动代码片段应该将元字段暴露给一些 JavaScript 变量,您的注入脚本将读取该变量。
Shopify API 添加 Liquid 代码段
如果您不希望用户手动集成 Liquid 代码片段,那么在应用程序安装时,使用Theme Assets API将您的 Liquid 代码片段添加到客户端的活动主题中。这将需要用户在安装时获得额外的应用权限。卸载应用程序时,还要考虑不同的可用主题并从主题中删除代码片段。
您尚未提及将在其中创建元字段的资源,但示例 Liquid 代码片段应类似于
<script>
var customMetaField = {shop.metafields.namespace.fieldname}
</script>
在您的自定义 App 脚本中读取变量customMetaField。这只是一个粗略的想法,您需要检查元字段名称空间和元字段是否存在,然后相应地输出值。