问题描述
我正在为Shopify商店使用店面API。 并且需要检索我的产品的产品元字段。 我已经使用第三方应用程序(Metafields Guru)添加了元字段。
我需要获取所有这些产品的元字段,并且一直在关注本文。 https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api
{
productByHandle(handle: "xxx-handle") {
id
title
handle
productType
Metafields(first: 5) {
edges {
node {
key
value
}
}
}
}
}
但是我得到了一个用于元字段的空数组。 不知道我在这里想念的是什么。 任何帮助将不胜感激
解决方法
这里有两个问题。
- 创建元字段时,必须将它们分配给名称空间。当您尝试使用Storefront API检索它们时,必须提供此名称空间,但这样做失败。
- evem,如果您使用某些App在管理员中创建了元字段,则除非使用特殊标志将它们打开,否则您将不会使用Storefront API看到它们。
所以这也可能是错过的步骤。阅读此内容,并注意MetafieldStorefrontVisibility。您将名称空间和键设置为可见。这意味着如果没有仔细考虑是否打开或关闭Storefront API访问权限,您可能不会轻易创建元字段。
,我会扩展一点大卫的答案,因为我还不能对其他答案添加评论。
实际上,您必须通过运行mutation MetafieldStorefrontVisibility 使元字段对Storefront API 显式可见。以下是一些有用的链接:
此外,我发现了一个不错的应用 Accentuate Custom Fields,它提供了 UI 选项,用于在配置元字段时使元字段对 Storefront API 可见: