Я немного застрял с одним запросом 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
Поэтому, когда я использую коллекцию Custom, я получаю ожидаемый результат ошибки:
{
"data": {
"collectionByHandle": null
},
"errors": [
{
"message": "Cannot filter by query if the collection is a custom collection.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"collectionByHandle",
"products"
]
}
]
}
Но когда я использую коллекцию Smart, я получаю Access Denied
{
"data": {
"collectionByHandle": null
},
"errors": [
{
"message": "access denied",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"collectionByHandle",
"products"
]
}
]
}
Сообщение об ошибке от внешнего интерфейса выглядит так:
"Поле 'products' не принимает аргумент 'query'"
Так что я не вижу причин, по которым этот запрос не работает должным образом, если указано, что параметр запроса работает только для Smart Collections и коллекция действительно настроена как интеллектуальная.
Что касается того, почему я использую collectionByHandle
с products
, мне нужно отсортировать товары по цене, а товары не позволяют сортировать по цене, если я не включу их в коллекцию.
Вот видео-демонстрация проблемы: https://streamable.com/sevtf
Любое понимание проблемы будет высоко оценено.