【发布时间】:2019-08-23 11:01:18
【问题描述】:
我有点卡在一个 GraphQL 查询上。
{
collectionByHandle(handle:"price") {
products(first: 16, sortKey:PRICE, query:"title:Bracelet"){
edges {
cursor
node {
title
}
}
}
}
}
错误来自 query 参数,自定义集合不支持,但它是智能集合。
查询:字符串
该字段仅在集合智能时使用。如果集合是自定义的,则会返回错误。支持的过滤器参数:
- 标题
- product_type
- 供应商
- gift_card
- created_at
- updated_at
所以当我使用自定义集合时,我会得到预期的错误结果:
{
"data": {
"collectionByHandle": null
},
"errors": [
{
"message": "Cannot filter by query if the collection is a custom collection.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"collectionByHandle",
"products"
]
}
]
}
但是当我使用智能收藏时,我得到Access Denied
{
"data": {
"collectionByHandle": null
},
"errors": [
{
"message": "access denied",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"collectionByHandle",
"products"
]
}
]
}
前端的错误信息是这样的:
“字段‘产品’不接受参数‘查询’”
因此,如果指定查询参数仅适用于智能集合并且集合确实设置为智能集合,我看不出此请求无法正常工作的任何原因。
至于为什么我使用collectionByHandle 和products 我需要按价格对产品进行排序,如果我不将它们包含在集合中,则产品不允许按价格排序。
这里也是该问题的视频演示:https://streamable.com/sevtf
对问题的任何见解将不胜感激。
【问题讨论】:
-
“商品不允许按价格排序”是什么意思?