Яндекс Маркет уменьшил страницу остатков до 100 записей: большой limit обрезается без ошибки
В августе API Маркета снизил максимальный limit при получении остатков с 200 до 100, а значение по умолчанию — со 100 до 50. Превышение предела не вызывает ошибку валидации.
Содержание статьи
В августе API Маркета снизил максимальный limit при получении остатков с 200 до 100, а значение по умолчанию — со 100 до 50. Превышение предела не вызывает ошибку валидации.
Что изменилось в методах остатков
В публикации от 5 августа Маркет описал обновление от 4 августа для получения остатков на уровне магазина и кабинета. Максимальный limit уменьшен с 200 до 100 записей, значение по умолчанию — со 100 до 50. Если клиент передаёт число больше 100, оно обрезается до 100 без ошибки валидации.
Изменение затронуло POST v2/campaigns/{campaignId}/offers/stocks и POST v3/businesses/{businessId}/offers/stocks. Тихое ограничение требует отдельного внимания: запрос может выглядеть успешным, хотя возвращает меньшую страницу, чем ожидает интеграция. Обновление относится к размеру ответа, а не к фактическому уменьшению товарного остатка.
Тихое ограничение сложнее заметить
Система, которая считает получение менее 200 строк признаком конца данных, после изменения может завершить выгрузку раньше времени. Внешне ошибки не будет: сервер ответил, JSON разобран, часть ассортимента получена. Проблема проявится позже в неполной сверке запасов.
Поэтому окончание обхода нужно определять по предусмотренному механизмом пагинации признаку, а не по старой константе из приложения. Запрошенное число и реально применённый предел могут различаться, и программа должна сохранять корректность в такой ситуации.
Как проверить полный цикл
Тестовый каталог должен превышать 100 позиций, чтобы выгрузка действительно проходила несколько страниц. Следует проверить запрос без limit, с допустимым значением и с числом выше максимума. Во всех случаях итоговый набор должен соответствовать ожидаемым данным, если выполнен полный обход.
Отдельно важно выяснить, что делает система с товарами, не встретившимися в частичной выгрузке. Нельзя автоматически считать их остаток нулевым, если получение ещё не завершено. Такая ошибка способна скрыть доступные товары или исказить заказ на пополнение.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы