无法使用StoreFront GraphQL 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
      }
    }
  }
}

}

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

解决方法

这里有两个问题。

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

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

,

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

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

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

Make metafields visible to the Storefront API

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...