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

Shopify GraphQL API(C#):产品ID查询及分页报错问题

Shopify GraphQL API分页与单产品查询错误解决

核心问题原因

Shopify GraphQL API的游标(cursor)和产品ID参数规则与REST API完全不同:

  • 分页用的after参数不能用产品纯数字ID,必须使用查询返回的cursor值
  • 单产品查询的id参数必须是Shopify的全局ID(gid格式),而非REST返回的纯数字ID

一、正确实现分页的步骤

1. 首次查询:获取游标与分页信息

第一次查询时,需同时返回edges.cursor和pageInfo(包含是否还有下一页、最后一个元素的游标):

products(first: 250) 
{
    edges 
    { 
        cursor  # 可取出单个元素游标,或直接使用pageInfo.endCursor
        node 
        { 
            id 
            title 
            handle 
            productCategory 
            { 
                productTaxonomyNode 
                { 
                    fullName 
                }
            }        
        }
    } 
    pageInfo {
        hasNextPage  # 判断是否还有后续数据
        endCursor    # 最后一个元素的游标,直接用于下一页的after参数
    }
}

2. 后续分页查询:使用endCursor作为after参数

当pageInfo.hasNextPage为true时,将上一页返回的endCursor值填入after参数,继续查询下一页:

products(first: 250, after: "替换为上一页的endCursor值") 
{
    edges 
    { 
        cursor
        node 
        { 
            id 
            title 
            handle 
            productCategory 
            { 
                productTaxonomyNode 
                { 
                    fullName 
                }
            }        
        }
    } 
    pageInfo {
        hasNextPage
        endCursor
    }
}

二、单产品查询的正确写法

将REST API返回的纯数字ID,拼接为Shopify全局ID格式gid://shopify/Product/[数字ID]作为参数:

{
  product(id: "gid://shopify/Product/7490375647481") {
    productCategory {
      productTaxonomyNode {
        fullName
      }
    }
  }
}

也可使用该全局ID的Base64编码值作为参数,但直接使用gid格式更直观易读。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:45:50