Shopify GraphQL API如何按精确标签获取商品?
Shopify GraphQL API 标签查询匹配异常问题
店铺内有两个标签:"summer"和"summer time sadness",想要通过Shopify GraphQL API获取仅带有"summer"标签的商品,使用以下查询:
{ products(first: 250, after: null, query: "tag:summer") { nodes { title legacyResourceId tags } } }
但返回结果中同时包含了带有summer time sadness标签的商品,这和官方文档描述的「默认精确匹配,仅tag:summer*才会触发前缀模糊匹配」不符。
解决办法
Shopify的标签查询默认是部分包含匹配,要实现精确匹配单个标签,需要给查询的标签加上双引号(注意在GraphQL字符串中要转义双引号):
{ products(first: 250, after: null, query: "tag:\"summer\"") { nodes { title legacyResourceId tags } } }
添加双引号后,查询会严格匹配完全等于"summer"的标签,不会再返回带有summer time sadness这类包含summer的标签的商品。
补充说明
实际测试中,Shopify的标签查询逻辑和文档描述存在差异,默认的tag:xxx会匹配所有标签中包含xxx的商品,必须通过双引号包裹标签值来强制精确匹配,才能得到预期结果。
内容的提问来源于stack exchange,提问作者Farid Movsumov
相关产品推荐
相关产品推荐

