You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js调用Shopify GraphQL API报错:Variable id提供无效值

修复Shopify GraphQL查询中“Variable id of type ID! was provided invalid value”错误

错误原因很明确:你的GraphQL查询定义了直接接收$id作为顶级变量,但Node.js代码里错误地把id嵌套在了input对象中,导致Shopify无法正确识别传入的ID值。

你的查询语句是正确的:

export const VIEW_PRODUCT_METAFIELD = `
query VIEW_METAFIELD($id: ID!){
  myProduct: product(id: $id) {
    metafield(namespace:"custom", key:"myfield"){
      namespace
      key
      value
      updatedAt
    }
  }
}
`

只需要修正变量传递的结构,去掉多余的input嵌套,直接将id作为variables的顶级属性即可:

修正后的Node.js代码:

var shopifyId = `gid://shopify/Product/${product_id}`;

var isFull = await client.query({
  data: {
    query: VIEW_PRODUCT_METAFIELD,
    variables: {
      id: shopifyId
    }
  }
});

或者简化写法:

var isFull = await client.query({
  data: {
    query: VIEW_PRODUCT_METAFIELD,
    variables: {
      id: `gid://shopify/Product/${product_id}`
    }
  }
});

补充说明:只有当你的GraphQL操作(mutation/query)明确定义了input类型的变量时,才需要将参数嵌套在input对象中。你的查询直接接收$id作为独立变量,所以变量结构必须和定义对应。

内容的提问来源于stack exchange,提问作者TheDeveloperFrontend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:54:16