如何用Shopify Bulk Query获取店铺全量商品详情?
解决Shopify Bulk Query获取全量商品详情的问题
问题根源
你遇到的两个核心问题:
- Bulk Query不支持普通GraphQL的
edges/node层级结构,需直接查询集合字段 - GraphQL中Product类型的字段采用驼峰命名,而非REST API的下划线命名(比如
productType而非product_type)
正确的Bulk Query语句
以下是包含你需要的所有字段的完整突变查询,字段对应关系完全匹配REST API /products.json 返回的内容:
query = ''' mutation { bulkOperationRunQuery( query: """ { products { id title vendor productType description descriptionHtml # 如需更多匹配REST API的字段,可继续添加: # legacyResourceId # handle # createdAt # updatedAt # variants { # id # title # price # } } } """ ) { bulkOperation { id status } userErrors { field message } } } ''' shopify.GraphQL().execute(query)
关键字段映射说明
| REST API字段 | GraphQL Bulk Query字段 |
|---|---|
| id | id(或legacyResourceId获取数字ID) |
| title | title |
| vendor | vendor |
| product_type | productType |
| body | description |
| body_html | descriptionHtml |
后续操作步骤
执行突变后,需要轮询批量任务的状态,直到任务完成:
status_query = ''' query { bulkOperation(id: "gid://shopify/BulkOperation/2061234200041") { id status url errorCode } } ''' response = shopify.GraphQL().execute(status_query)
当status变为COMPLETED时,url字段即为包含全量商品数据的文件地址,下载后即可解析使用。
内容的提问来源于stack exchange,提问作者mahender
相关产品推荐
相关产品推荐

