TypeScript SDK: Яндекс Маркет: товары и поиск
Источник ctx.yandexMarket() использует товары, запрос и города текущего сценария. Поля результата и условия цен одинаковы для PHP и TypeScript. Сетевые методы асинхронные.
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 оставляет поля текущего шаблона и общие идентификаторы, город, название, ссылку и изображения.