无法使用StoreFront GraphQL API获取产品元字段

时间:2020-11-11 21:29:27

标签: graphql shopify e-commerce shopify-api shopify-storefront-api

我正在为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
      }
    }
  }
}

}

但是我得到了一个用于元字段的空数组。 不知道我在这里想念的是什么。 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

这里有两个问题。

  1. 创建元字段时,必须将它们分配给名称空间。当您尝试使用Storefront API检索它们时,必须提供此名称空间,但这样做失败。
  2. evem,如果您使用某些App在管理员中创建了元字段,则除非使用特殊标志将它们打开,否则您将不会使用Storefront API看到它们。

所以这也可能是错过的步骤。阅读此内容,并注意MetafieldStorefrontVisibility。您将名称空间和键设置为可见。这意味着如果没有仔细考虑是否打开或关闭Storefront API访问权限,您可能不会轻易创建元字段。

答案 1 :(得分:0)

我会扩展一点大卫的答案,因为我还不能对其他答案添加评论。

实际上,您必须通过运行mutation MetafieldStorefrontVisibility 使元字段对Storefront API 显式可见。以下是一些有用的链接:

此外,我发现了一个不错的应用 Accentuate Custom Fields,它提供了 UI 选项,用于在配置元字段时使元字段对 Storefront API 可见:

Make metafields visible to the Storefront API