/api/lite/pub/products/filters
Получение блоков фильтров
/api/lite/pub/products/filters
Возвращает для заданной коллекции перечень блоков и фильтров в них для поиска товаров.
Блоки бывают трех типов - Для атрибутов, для опций, и другие. Атрибуты и опции выделены в отдельные блоки ввиду потенциально большого количества справочников и значений в них.
Блоки возвращаются в режиме для покупателя - загрузится список вручную сформированных блоков фильтров и выбранных значений фильтров, которые нужно отобразить покупателю.
Значения в атрибутах, опциях и пр. - автозаполняются по факту их использования в том или ином товаре. Это будет делаться асинхронно по регламенту, а не при исполнении запроса поиска, т.к. операция дорогая по времени.
Обязательный параметр запроса - ?collectionId=123
Фронтенд при выборе покупателем значений тех или иных фильтров должен составить поисковый GET запрос и передать его в метод GET /pub/products
в виде суммы параметров:
?filters=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4
для всех фильтров в блоке OTHER
?attributes=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4
для всех фильтров в блоке ATTRIBUTES
?features=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4
для всех фильтров в блоке FEATURES
где field_name - это значение поля filters.fields.name, field_value - это значение поля filters.fields.stringValues для filters.fields.type: "string" или decimalValues для filters.fields.type: "decimal" или true/false для filters.fields.type: "boolean".
Для для filters.fields.type: "decimal" так же можно передавать диапазон указывая начальное и конечное значение через дефис: field_name2:field_value3-field_value4
Поля возвращаемого значения:
Параметр | Тип\формат | Описание |
filterBlocks | array | Массив блоков |
id | string | Идентификатор блока |
type | enum | Тип блока. ATTRIBUTES (только атрибуты товаров), FEATURES (только опции товаров), OTHER (остальные поля товаров) |
mode | enum |
Режим работы блока. CUSTOMER (покупатель, отображены выбранные продавцом фильтры в блоке), CLIENT (продавец - отображены все возможные поля и блоки) |
ordering | integer | Сортировка |
collectionId | string | Идентификатор коллекции к которой относится данный блок фильтров |
filters | Массив | Перечень фильтров в блоке |
type | enum | Тип фильтра. PRICE, STOCK_AVAILABLE, SIZE, WEIGHT, COUNTRY_OF_ORIGIN, ATTRIBUTES, FEATURES, DISCOUNT_AVAILABLE, IS_NOVELTY, BRAND, IS_BESTSELLER |
ordering | integer | Сортировка |
fields | Массив | Поля фильтра |
name | string | Наименование поля |
nameReadable | string | Наименование поля, выводимое покупателю |
type | enum | Тип поля. string, decimal, boolean |
ordering | integer | Сортировка |
stringValues | Массив | Массив строковых значений поля |
decimalValues | Массив | Массив числовых значений поля |
Пример ответа:
{
"success": true,
"filterBlocks": [
{
"id": "1029",
"type": "OTHER", // ATTRIBUTES, FEATURES
"mode": "CUSTOMER", //CLIENT
"ordering": 10,
"collectionId": "123456"
"filters":[
{
"type":"PRICE", // STOCK_AVAILABLE, SIZE, WEIGHT, PRICE, ATTRIBUTES, FEATURES, DISCOUNT_AVAILABLE, IS_NOVELTY, BRAND, IS_BESTSELLER
"ordering": 10,
"fields":[
{
"name" : "field1",
"nameReadable": "Поле 1",
"type": "string", // decimal, boolean
"ordering": 10,
"stringValues": [
"value1", "value2"
]
},
{
"name" : "field2",
"nameReadable": "Поле 2",
"type": "decimal",
"ordering": 11,
"decimalValues": [
15.2, 16.8
]
},
{
"name" : "field3",
"nameReadable": "Поле 3",
"type": "boolean",
"ordering": 12
}
]
}
]
}
]
}