Ozon меняет пагинацию Seller API: что проверить в загрузке больших списков
В Seller API устаревает total, а в списке товаров сертификата удалены page и page_size. Как избежать неполной выгрузки после обновления.
Содержание статьи
В сентябре Ozon объявил несколько изменений, связанных с чтением больших списков через Seller API. Поле total в ответах ряда методов становится устаревшим: вместо него нужно использовать total_items. В методе списка товаров сертификата параметры page и page_size были полностью удалены 28 сентября.
Почему это важно для продавца
Пагинация определяет, как интеграция забирает данные частями. Ошибка в этом механизме может оставить системе только первую порцию товаров, хотя каждый отдельный запрос завершится успешно. В результате в отчёте исчезнет часть ассортимента, сертификаты окажутся связаны не со всеми позициями или проверка каталога даст неверный итог.
Объявления относятся к конкретным изменениям схемы. Нельзя считать, что вся площадка перешла на один универсальный способ пагинации. Для каждого используемого метода нужно проверить актуальные параметры, условия продолжения и завершения выборки. Особенно внимательно следует пересмотреть общие библиотеки, которые пытаются одинаково обрабатывать ответы разных разделов API.
Как найти зависимые процессы
Поищите обращения к total в коде, формулах и настройках загрузчиков, затем выясните назначение каждого использования. Одно поле может влиять на число страниц, индикатор прогресса или проверку полноты. Простая замена названия во всех местах без понимания контекста способна скрыть разницу между ожидаемым количеством и уже фактически полученными строками.
Для метода /v1/product/certificate/products/list отдельно проверьте, что приложение больше не отправляет удалённые page и page_size. Успешное получение одного ответа не подтверждает, что алгоритм продолжения правильно настроен. Контрольный пример должен содержать достаточно позиций, чтобы потребовалось несколько последовательных обращений, иначе проблема останется невидимой.
Как проверять полноту данных
Сохраняйте число полученных строк и уникальных идентификаторов. Если эти значения отличаются, нужно выяснить, допустимы ли повторы в выбранном сценарии или интеграция повторно прочитала один участок списка. Для каждой порции полезно фиксировать признак продолжения, который реально вернул сервер, и не вычислять его произвольно по старой схеме.
Проверяйте ситуации с пустым списком, последней неполной порцией и изменением данных во время загрузки. Большой каталог может обновляться параллельно с чтением. Поэтому итоговая сверка должна учитывать назначение выгрузки: для разовой инвентаризации и оперативной синхронизации могут потребоваться разные способы достижения согласованного состояния.
Как не потерять уже загруженный архив
При изменении алгоритма не удаляйте прежние данные до успешного завершения нового полного прохода. Лучше собирать очередной набор отдельно и заменять рабочий снимок после проверки. Иначе временно неполная загрузка может быть ошибочно воспринята как массовое исчезновение товаров и запустить ненужные действия в связанных системах.
После обновления сравните число объектов с контрольным источником и просмотрите выборку конкретных позиций. Наблюдайте за временем полного прохода и количеством повторных запросов. Изменение технических параметров становится безопасным для бизнеса тогда, когда полнота каталога проверяется явно, а не предполагается на основании отсутствия ошибок соединения.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы