Сортировка и пагинация
Сортировка
Заголовок раздела «Сортировка»По умолчанию товары отсортированы по релевантности с учётом наличия, популярности и правил мерчандайзинга. Чтобы отсортировать иначе, передайте sortBy и sortDest:
sortBy |
sortDest |
Что получится |
|---|---|---|
| — | — | По релевантности (рекомендуем для поиска) |
price |
asc / desc |
Сначала дешёвые / дорогие (цена региона) |
available |
desc |
Сначала в наличии |
param.<Название> |
asc / desc |
По параметру фида как по строке: param.Бренд |
param.<Название>.float |
asc / desc |
По параметру как по числу: param.Мощность.float |
| имя своей сортировки | asc / desc |
Формула из личного кабинета (Настройки → Формула сортировки) |
GET
/api/{uuid}/searchПагинация
Заголовок раздела «Пагинация»Используйте skip и limit:
skip = (номер_страницы − 1) × limit| Страница | limit |
skip |
|---|---|---|
| 1 | 24 | 0 |
| 2 | 24 | 24 |
| 3 | 24 | 48 |
Количество страниц — Math.ceil(hits / limit). Глубина выдачи ограничена 10 000 товаров: hits не превышает это значение.
async function loadPage(query, page, perPage = 24) { const url = new URL(`https://api.searchbooster.net/api/${UUID}/search`); url.searchParams.set('query', query); url.searchParams.set('limit', String(perPage)); url.searchParams.set('skip', String((page - 1) * perPage)); const data = await (await fetch(url)).json(); return { offers: data.offers, pages: Math.ceil(data.hits / perPage) };}Параметра page нет — он будет проигнорирован. Для защиты каталога от парсинга на проекте может быть включено ограничение глубины выдачи; в этом случае большие skip возвращают пустой offers.