Перейти к содержимому

Сортировка и пагинация

По умолчанию товары отсортированы по релевантности с учётом наличия, популярности и правил мерчандайзинга. Чтобы отсортировать иначе, передайте 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.