К содержимому

Документация

JavaScript SDK: Яндекс Маркет: товары и поиск

Источник ctx.yandexMarket() использует товары, запрос и города текущего сценария. Поля результата и условия цен одинаковы для PHP и JavaScript. Сетевые методы асинхронные.

products

products() → string[] возвращает выбранные карточки, например card:103324529910.

regions

regions() → string[] возвращает коды выбранных городов.

query

query() → string возвращает настроенную поисковую фразу.

maxPages

maxPages() → number возвращает выбранную глубину, от 1 до 30 страниц.

card

card(product, regionId) → Promise<Record> получает выбранную карточку. Цена без карты Яндекс Пэй хранится в price_rub, цена по карте в pay_price_rub; неизвестные значения равны null. Сбой страницы вызывает ошибку, а не ложное отсутствие товара.

const source = ctx.yandexMarket();
for (const region of source.regions()) {
  for (const product of source.products()) {
    const card = await source.card(product, region);
    ctx.emit(source.record(card), `${card.ym_kind}:${card.ym_id}:${region}`);
  }
}

search

search(regionId, page) → Promise<{ cards, page, total, has_next }> получает страницу выдачи для настроенного поискового сценария. Завершение определяется has_next. Число товаров на странице меняется, а total может быть null. Место товара задаётся парой search_page и position_on_page, не глобальным рейтингом. Проверяйте свойства и условия оплаты при сравнении предложений.

record

record(card) → Record оставляет поля текущего шаблона и общие идентификаторы, город, название, ссылку и изображения.