API цен Яндекс Маркета: как заменить устаревший GET до отключения в 2027 году
Маркет выводит из эксплуатации GET списка цен. Что изменить в запросах и ответах, чем магазинные цены отличаются от общих и как проверить миграцию.
Содержание статьи
В API Яндекс Маркета устаревший GET списка цен планируется отключить 5 апреля 2027 года, а с 18 января его работа может быть нестабильной. Замена — POST по тому же пути, но переход требует проверки структуры данных и области цен.
Документация проверена 16 октября 2026 года. Это дата редакционной проверки, а не объявления миграции. Материал посвящён чтению цен, а не изменению стоимости товаров.
Почему одной замены GET на POST недостаточно
Оба метода используют путь v2/campaigns/{campaignId}/offer-prices. Однако старый ответ обозначает идентификатор товара полем id, новый — offerId. В новом запросе список конкретных SKU передаётся в теле offerIds. Если такой список задан, документация запрещает одновременно заполнять pageToken и limit.
Редакционная рекомендация — найти не только вызов API, но и код, который сохраняет ответ. Если обработчик продолжит искать id, успешный ответ может превратиться в строки без связи с товаром. Исправление HTTP-метода и изменение модели данных нужно принимать вместе.
Сначала определите, какие цены нужны
Метод POST для campaignId предназначен для уникальных цен отдельных магазинов. Для общих цен всех магазинов документация направляет к POST v2/businesses/{businessId}/offer-mappings. Поэтому отсутствие ожидаемой записи нельзя сразу трактовать как потерю цены: сначала проверяют выбранную область.
В рабочем задании перечислите магазины, где используются индивидуальные цены, и товары с общими ценами. Для контрольного сравнения нужны оба сценария. Иначе тест на одном магазине может скрыть ошибку, которая проявится только в другой части кабинета.
Как провести проверку без изменения цен
Сохраните результат прежнего чтения для небольшой выборки и сравните с новым методом. Сопоставляйте по SKU и смыслу полей, а не по порядку строк. Полезно включить товар со скидкой, позицию с недавно изменённой ценой и SKU, которого нет в выбранном магазине. Ожидаемый результат последнего сценария следует выяснить по фактическому ответу, а не подставлять нулевую цену.
Отдельно проверьте полноту выгрузки и переход по страницам, если используете списочный режим. Ограничение размера пакетов цен остаётся самостоятельным условием и не отменяется сменой метода.
Когда миграцию можно принять
Критерий готовности — контрольные цены правильно связаны с товарами и магазинами, а зависимые отчёты показывают ожидаемые значения. Сам HTTP 200 этого не подтверждает. Зафиксируйте новую схему, результат сравнения и место настройки метода, чтобы следующий запуск не вернулся к старой реализации.
Планировать переход разумно до периода нестабильности, сохранив время на исправление обнаруженных расхождений. После него контролируйте ошибки и полноту данных. Если проблема связана с идентификаторами области, поможет разбор businessId и campaignId; они обозначают разные уровни кабинета.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы