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

Can't Get Product Metafields using StoreFront GraphQL API

我正在为我的 Shopify 商店使用店面 API。 并且需要为我的产品检索产品元字段。 我已经使用第 3 方应用程序 (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
      }
    }
  }
}

}

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

这里有几个问题。

  1. 当您创建元字段时,您必须将它们分配给命名空间。当您尝试使用 Storefront API 检索它们时,您必须提供此命名空间,但您没有这样做。
  2. 即使您使用某些应用程序在管理员中创建了元字段,您也不会使用 Storefront API 看到它们,除非您使用特殊标志打开它们。

所以这也可能是一个遗漏的步骤。阅读此内容并注意 MetafieldStorefrontVisibility。您将命名空间和键设置为可见。这意味着您可能不会在没有仔细考虑打开或关闭每个元字段的情况下随意创建元字段以访问 Storefront API。

我想扩展一下 David 的回答,因为我还不能对其他答案添加评论。

确实,您必须通过 运行 突变 MetafieldStorefrontVisibility 使元字段对 Storefront API 明确可见。以下是一些有用的链接:

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