使用BigCommerce无头CMS,如何通过GraphQL获取产品筛选选项?
解决BigCommerce GraphQL获取筛选器及对应选项的问题
你当前的GraphQL查询只请求了筛选器的名称字段,要获取每个筛选器对应的选项数据,需要扩展查询字段,同时可以指定目标类别来缩小范围。
以下是修正后的查询示例:
site { search { searchProducts( filters: { hideOutOfStock: true categoryIds: ["123"] # 替换为你要查询的类别ID } ) { filters { edges { node { name filterOptions { edges { node { label value count # 可选,显示该选项下的产品数量 } } } } } } } } }
关键说明:
- 获取选项数据:在筛选器的
node下添加filterOptions字段,它会返回每个筛选器的具体选项列表,其中:label:选项的显示文本(比如颜色的"红色"、品牌的"Nike")value:用于后续筛选请求的参数值(比如品牌ID、属性值ID)count:可选字段,显示该选项下的产品数量,帮助用户快速判断选项的实用性
- 指定目标类别:通过
filters里的categoryIds参数传入类别ID数组,就能获取该类别下的可用筛选器及选项 - 关联已选筛选条件:如果需要基于用户已选的筛选条件(比如已经选了某品牌)获取剩余可用的筛选选项,只需在
filters中添加对应的筛选参数(如brandIds: ["456"]),API会自动返回当前筛选状态下的有效筛选器及选项,和官方站点的逻辑一致
你可以用BigCommerce的GraphQL Explorer来测试这个查询,验证字段返回结果并调整所需的内容。
内容的提问来源于stack exchange,提问作者Agustin Manriquez Cruz
相关产品推荐
相关产品推荐

