我正在开发一个产品同步系统,通过 Shopify GraphQL API 将产品从我的后端系统上传到 Shopify。我可以使用标准元字段创建产品,但我也想使用类别元字段来更有效地组织它们。
这就是我被困住的地方:
我已将 Shopify 的分类类别 ID 映射到我的系统,因此我可以轻松地将产品分配到类别。 但是,Shopify 要求我传递类别元字段中每个值的 GID(全局 ID)(例如,产品的特定颜色或尺寸)。 虽然可以从 Shopify 的 UI 手动检索每个值的 GID,然后在 API 中使用它,但这不可扩展 - 我正在处理多个类别的大约 4000 个产品。理想情况下,我需要一种方法来以编程方式获取类别元字段中可用值的 GID。
这是我用来创建产品的 GraphQL 请求示例:
productCreate(input: $input, media: $media) {
product {
id
title
metafields(first: 10) {
edges {
node {
namespace
key
value
}
}
}
media(first: 10) {
nodes {
alt
mediaContentType
preview {
status
}
}
}
}
userErrors {
field
message
}
}
}
这是一个输入示例
{
"input": {
"metafields": [
{
"namespace": "shopify",
"key": "color-pattern",
"value": "[\"gid://shopify/Metaobject/105144877321\"]"
},
{
"namespace": "shopify",
"key": "bulb-size",
"value": "[\"gid://shopify/TaxonomyValue/8468\"]"
}
],
"title": "Helmet Nova 6",
"category": "gid://shopify/TaxonomyCategory/hg-13-5-5"
},
"media": [
{
"originalSource": "https://cdn.shopify.com/shopifycloud/brochure/assets/sell/image/image-@artdirection-large-1ba8d5de56c361cec6bc487b747c8774b9ec8203f392a99f53c028df8d0fb3fc.png",
"alt": "Gray helmet for bikers",
"mediaContentType": "IMAGE"
},
{
"originalSource": "https://www.youtube.com/watch?v=4L8VbGRibj8&list=PLlMkWQ65HlcEoPyG9QayqEaAu0ftj0MMz",
"alt": "Testing helmet resistance against impacts",
"mediaContentType": "EXTERNAL_VIDEO"
}
]
}
在此示例中:
颜色模式字段之所以有效,是因为我在 Shopify UI 中手动创建并映射了元对象,然后检索了 GID。 然而,为所有产品和类别复制此过程将非常耗时。 问题: 有没有办法以编程方式检索类别元字段中可用值的 GID,或者是否有推荐的方法来处理这种批量元字段映射?
任何帮助或指导将不胜感激!谢谢你。
尝试使用此突变来获取类别数据:
{
taxonomyNode(id: "gid://shopify/TaxonomyNode/TAXONOMY_ID") {
... on TaxonomyLeaf {
id
name
metafieldDefinitions(first: 10) {
edges {
node {
id
name
values {
edges {
node {
id
name
}
}
}
}
}
}
}
}
}