Skip to content

Конфигурация виджета Relavio Search

Виджет настраивается через data-* атрибуты HTML-контейнера или через объект параметров при ручной инициализации RelavioSearchWidget.init.

Настройка через HTML

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="catalog-with-filters"
    data-placeholder="Найти товар"
    data-min-length="2"
    data-columns="4"
    data-catalog-rows="4"
    data-currency="₽"
></div>

HTML-атрибуты подходят для большинства установок: CMS, шаблонов интернет-магазина, статических страниц и лендингов.

Настройка через JavaScript

html
<div id="search-widget"></div>

<script>
    window.RelavioSearchWidget.init(document.getElementById('search-widget'), {
        apiKey: 'YOUR_API_KEY',
        behavior: 'catalog',
        placeholder: 'Поиск по товарам',
        columns: 3,
        catalogRows: 4,
        currency: '₽',
    });
</script>

JavaScript-настройка удобна, если параметры приходят из приложения, меняются на клиенте или контейнер создается динамически.

Основные параметры

HTML-атрибутJS-параметрПо умолчаниюОписание
data-api-keyapiKeyпустоAPI-ключ проекта Relavio. Передается в заголовке api-key.
data-behaviorbehaviorsearchРежим работы виджета.
data-placeholderplaceholderПоиск товаровТекст внутри поля поиска.
data-min-lengthminLength2Минимальная длина запроса для запуска поиска.
data-per-pageperPage8Количество товаров в одном ответе.
data-columnscolumns4Количество колонок в каталожной сетке.
data-catalog-rowscatalogRows4Количество рядов каталога.
data-rowscatalogRows4Альтернативное имя для количества рядов.
data-currencycurrencyВалюта для отображения цены, если товар не содержит свою валюту.
data-disable-product-linksdisableProductLinksfalseОтключает переходы по ссылкам товаров.
data-speech-languagespeechLanguageru-RUЯзык распознавания речи.
data-search-urlsearchUrl/api/v1/searchEndpoint поиска.
data-suggests-urlsuggestsUrl/api/v1/search/suggestsEndpoint подсказок.
data-event-urleventUrl/api/v1/search/eventsEndpoint событий аналитики.
data-demodemoпустоДемонстрационный режим. Передается в заголовке X-Relavio-Demo.

Режимы поведения

Обычный быстрый поиск. После ввода запроса виджет отправляет запрос в searchUrl и показывает товары в выпадающем списке.

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="search"
></div>

Если страниц результатов несколько, следующие товары догружаются при прокрутке выпадающего списка.

suggests

Режим подсказок. Виджет отправляет запросы в suggestsUrl и показывает историю, подсказки, категории и товары.

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="suggests"
></div>

Также поддерживаются значения suggest и suggestions; они будут приведены к suggests.

catalog

Каталожный режим с сеткой и пагинацией.

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="catalog"
    data-columns="4"
    data-catalog-rows="5"
></div>

Если data-per-page не задан, значение рассчитывается как columns * catalogRows.

catalog-with-filters

Каталожный режим с фильтрами. Виджет добавляет в запрос withFilters: true и отправляет выбранные значения в поле filters.

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="catalog-with-filters"
></div>

Также поддерживаются значения catalog_filters, catalog-with-filter и catalog-filters; они будут приведены к catalog-with-filters.

Формат запросов

Для поиска виджет отправляет POST-запрос:

json
{
  "page": 1,
  "per_page": 16,
  "query": "iphone",
  "search_id": "",
  "session_id": "",
  "filters": {},
  "withFilters": true
}

Для подсказок фильтры не отправляются:

json
{
  "page": 1,
  "per_page": 8,
  "query": "iph",
  "search_id": "",
  "session_id": ""
}

Сессия поиска

Виджет сохраняет search_id и session_id из ответов API. Эти значения используются в следующих запросах и в событиях аналитики, чтобы связать подсказки, выдачу и клики пользователя.

Отключение ссылок товаров

Если нужно использовать карточки товаров как элементы выбора, а не ссылки, включите data-disable-product-links:

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-behavior="suggests"
    data-disable-product-links="true"
></div>

Булевыми значениями считаются true, 1, yes и пустой атрибут data-disable-product-links.

Настройка endpoint-ов

Если API находится на другом домене или проксируется через сайт, укажите URL явно:

html
<div
    data-relavio-search-widget
    data-api-key="YOUR_API_KEY"
    data-search-url="https://api.example.com/api/v1/search"
    data-suggests-url="https://api.example.com/api/v1/search/suggests"
    data-event-url="https://api.example.com/api/v1/search/events"
></div>

Для кросс-доменных запросов убедитесь, что API корректно настроен для CORS и принимает заголовок api-key.