Appearance
Фильтры в Relavio Search
Фильтры помогают пользователю быстро сузить поисковую выдачу: выбрать бренд, категорию, цену, наличие или характеристики товара. В виджете Relavio Search фильтры используются в режиме catalog-with-filters.
Когда нужны фильтры
Фильтры особенно полезны для каталогов, где много похожих товаров.
Например:
- смартфоны можно фильтровать по бренду, памяти, цвету и цене;
- одежду - по размеру, цвету, бренду и категории;
- косметику - по бренду, объему, типу продукта и цене;
- электронику - по характеристикам, наличию и модели.
Без фильтров пользователь вынужден просматривать слишком много товаров. С фильтрами он быстрее доходит до подходящего варианта.
Как фильтры появляются в виджете
Фильтры возвращаются из Search API, если в запросе передано withFilters: true.
json
{
"query": "iphone",
"page": 1,
"per_page": 20,
"withFilters": true,
"filters": {}
}Виджет в режиме catalog-with-filters сам добавляет withFilters, получает список фильтров и строит боковую панель.
html
<div
data-relavio-search-widget
data-api-key="YOUR_API_KEY"
data-behavior="catalog-with-filters"
></div>После выбора значения виджет автоматически перезапускает поиск с первой страницы.
Системные фильтры
Relavio Search поддерживает системные фильтры, которые строятся из основных полей товара.
| Код | Название | Тип | Описание |
|---|---|---|---|
price | Цена | range | Диапазон цены от и до. |
brand | Бренд | terms | Список брендов. |
category | Категория | terms | Список категорий. |
category_id | ID категории | terms | Фильтрация по ID категории. |
available | Наличие | terms / boolean value | Фильтрация по наличию товара. |
status | Статус | terms | Статус товара, если он есть в индексе. |
Фильтры по характеристикам
Дополнительные фильтры создаются из характеристик товара. При YML-импорте они берутся из тегов <param>.
xml
<param name="Цвет">Черный</param>
<param name="Память" unit="ГБ">128</param>
<param name="Диагональ" unit="дюйм">6.1</param>Relavio превращает такие параметры в атрибуты. Код атрибута формируется из названия, например Объем памяти может стать obem_pamyati.
Типы фильтров
terms
Списочный фильтр. Используется для брендов, категорий и строковых характеристик.
Пример ответа API:
json
{
"code": "brand",
"name": "Бренд",
"type": "terms",
"values": [
{
"value": "Apple",
"count": 12
},
{
"value": "Samsung",
"count": 8
}
]
}В запросе выбранные значения передаются массивом:
json
{
"filters": {
"brand": ["Apple", "Samsung"]
}
}В виджете такой фильтр отображается как список чекбоксов.
range
Диапазонный фильтр. Используется для цены и числовых характеристик.
Пример ответа API:
json
{
"code": "price",
"name": "Цена",
"type": "range",
"min": 1000,
"max": 200000
}Для числовых характеристик может вернуться единица измерения:
json
{
"code": "diagonal",
"name": "Диагональ",
"type": "range",
"min": 5.4,
"max": 6.9,
"unit": "дюйм"
}В запросе диапазон передается объектом:
json
{
"filters": {
"price": {
"from": 50000,
"to": 120000
}
}
}Можно передавать только from или только to.
json
{
"filters": {
"price": {
"from": 50000
}
}
}В виджете такой фильтр отображается как два числовых поля: От и До.
boolean
Булевый фильтр. Используется для характеристик со значениями true и false, если они есть в индексе.
Пример ответа API:
json
{
"code": "waterproof",
"name": "Водозащита",
"type": "boolean",
"values": [
{
"value": true,
"count": 15
},
{
"value": false,
"count": 5
}
]
}В запросе значение передается как boolean:
json
{
"filters": {
"waterproof": true
}
}В виджете boolean-фильтр отображается как radio-переключатель.
Пример полного запроса
json
{
"query": "iphone",
"page": 1,
"per_page": 20,
"withFilters": true,
"filters": {
"brand": ["Apple"],
"category": ["Смартфоны"],
"price": {
"from": 50000,
"to": 120000
},
"available": true,
"color": ["Черный"],
"memory_gb": {
"from": 128
}
}
}Как фильтры помогают продажам
Фильтры уменьшают путь пользователя от запроса до товара.
Они помогают:
- быстрее найти нужный товар в большом каталоге;
- убрать нерелевантные товары из выдачи;
- сравнить товары в нужном ценовом диапазоне;
- выбрать бренд, категорию или характеристику;
- увеличить вероятность клика и покупки;
- снизить количество уходов со страницы поиска.
Если пользователь ищет iphone, фильтры позволяют быстро выбрать нужную память, цвет, цену и наличие, вместо просмотра всех товаров Apple.
Как подготовить данные для фильтров
Качество фильтров зависит от качества товарных данных.
Рекомендации:
- передавайте бренд в отдельном поле;
- заполняйте категории и
categoryId; - передавайте цену числом;
- используйте
<param>для характеристик; - называйте характеристики одинаково во всех товарах;
- не смешивайте разные единицы измерения в одном параметре;
- не передавайте пустые значения.
Хорошо:
xml
<param name="Память" unit="ГБ">128</param>
<param name="Цвет">Черный</param>
<param name="Диагональ" unit="дюйм">6.1</param>Плохо:
xml
<param name="Память">128 ГБ</param>
<param name="memory">128</param>
<param name="Объем памяти">128gb</param>Если одно и то же свойство называется по-разному, Relavio создаст разные фильтры, и пользователю будет сложнее ими пользоваться.
Частые проблемы
Фильтры не отображаются
Проверьте, что запрос содержит withFilters: true, а виджет работает в режиме catalog-with-filters.
Нет фильтра по характеристике
Проверьте, что характеристика передается в товарных данных и не пустая. Для YML это должен быть тег <param name="...">.
Диапазон стал списком
Проверьте, что значения характеристики передаются как числа без текста внутри значения. Единицу измерения лучше передавать в unit.
Слишком много похожих фильтров
Приведите названия характеристик к единому виду. Например, используйте только Память, а не одновременно Память, Объем памяти, memory.
Фильтр дает пустую выдачу
Проверьте, что значение фильтра совпадает с данными в индексе, и что товар действительно содержит выбранную характеристику.
Связанные разделы
- Search API - как отправлять фильтры в API.
- Товары и фильтры - структура фильтров в ответе API.
- YML-импорт - как передавать характеристики через
<param>. - Аналитика поиска - как понять, какие фильтры важны пользователям.
