Skip to content

Фильтры в 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_idID категории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.

Фильтр дает пустую выдачу

Проверьте, что значение фильтра совпадает с данными в индексе, и что товар действительно содержит выбранную характеристику.

Связанные разделы