首页 > 解决方案 > Graphql Shopify | 使用元字段查询文章

问题描述

有没有人查询过具有元字段的文章?我可以使用标题、其他字段等查询文章,但默认情况下 Shopify 不会在此调用中返回文章元字段。这些文章的这些元字段是由应用程序创建的。我的第一个目标是尝试调用所有文章并查看其元字段。

目前...

# My Graphql
{
    articles(first:2){
        edges{
            node{
                title
                excerpt
            }
        }
    }
}
# Json Response
{
  "data": {
    "articles": {
      "edges": [
        {
          "node": {
            "title": "First Post",
            "excerpt": ""
          }
        },
        {
          "node": {
            "title": "Second Post",
            "excerpt": ""
          }
        }
      ]
    }
  }
}

我所希望的...

My Graphql:
{
    articles(first:2){
        edges{
            node{
                title
                excerpt
                metafields
            }
        }
    }
}
# Response
{
  "data": {
    "articles": {
      "edges": [
        {
          "node": {
            "title": "First Post",
            "excerpt": "",
            "metafields":[{
                "namespace":"mynamespacehere",
                "key":"mykey",
                "value":"Some Value"
                }

            ]
          }
        }
        ##...all other posts
      ]
    }
  }
}

标签: graphqlshopifygraphql-jsshopify-appshopify-api

解决方案


完全像这里描述的那样工作:

https://shopify.dev/docs/admin-api/graphql/reference/metafields/metafield

如果你想查询某个元字段

fieldName: metafield(namespace: "YOUR_NAMESPACE", key: "YOUR_KEY"){
     value
}

截至 2020 年 11 月,元字段查询似乎仅适用于 ADMIN GraphQL API。当我使用 Storefront API 尝试它们时,它会为我查询的所有内容返回 null。

PS:似乎您必须启用要通过店面访问的每个元字段: https ://shopify.dev/tutorials/retrieve-metafields-with-storefront-api


推荐阅读