如何使用Shopify Storefront API查询指定集合内的商品
Shopify Storefront API 查询指定handle集合下商品的正确方案
你使用的collections.handle筛选语法是Shopify Admin API的特有规则,Storefront API的products根查询不支持该筛选条件,所以无法返回预期结果。
已废弃的collectionByHandle接口的官方替代方案是直接使用根级collection查询,传入handle参数定位对应集合后,直接查询该集合关联的商品即可,正确写法如下:
{ collection(handle: "nike") { # 可添加集合自身需要的字段,也可用于判断handle对应的集合是否存在 title products(first: 10) { edges { node { id title handle # 其他你需要返回的商品字段 } } # 分页信息字段,用于翻页查询 pageInfo { hasNextPage endCursor } } } }
如果需要对集合下的商品做额外筛选、排序,可以给products字段增加对应参数,常用可配置参数包括:
sortKey:排序规则,可选值包括PRICE、TITLE、CREATED、BEST_SELLING等reverse:布尔值,设置为true即可返回倒序排列结果query:支持针对商品本身属性筛选,比如query:"available_for_sale:true"可过滤仅返回在售商品after/before:分页游标参数,配合pageInfo返回的游标值实现翻页
如果传入的集合handle不存在,collection字段会返回null,可在业务代码中提前做空值判断处理。
内容的提问来源于stack exchange,提问作者BugHunterUK
相关产品推荐
相关产品推荐

