С вопросом

Очевидный БАГ в API Ozon Marketplace (POST URL: "/v4/product/info/limit")

7 июня 2025
16417
0
0

Что произошло? )

Мы хотим использовать данный API для получения и расчёта атрибута "Общий лимит товаров", как это отображается на странице "Добавить товары". Но в моем аккаунте результат не соответствует ожиданиям!

Проверка моего процесса:

  1. Отправляем запрос на API по адресу "/v4/product/info/limit", чтобы узнать общее количество товаров, которое можно загрузить. В ответе по умолчанию получаем:
{"total": {"limit": 1000}}

Выглядит хорошо и понятно.

  1. Затем мы отправляем запрос на API "/v3/product/list", чтобы получить все товары и рассчитать, сколько ещё можно загрузить. То есть: total_limit - all_products = (1000 - n)

Проблема в том, что Seller API не предоставляет атрибут "Общий лимит товаров" напрямую.

Если бы всё работало как надо, значение должно совпадать с отображаемым на дашборде Seller Central, на странице "Добавить товары" в блоке "Общий лимит товаров".

И что? )

Но у меня оно не совпадает! Например:

  • Лимит: 1000
  • Фактическое количество товаров: 508
  • Значит, должно быть доступно: 492

Но в дашборде отображается: 278 Разница: 492 - 278 = 214

Как это произошло? )

Я выяснил, куда «исчезли» эти 214 единиц:

  1. Мы можем отправить POST-запрос на "/v3/product/list", указав фильтр "ARCHIVED", и получить список архивных товаров. Сейчас таких товаров 3761 — всё как ожидается.
  2. Затем мы отправляем запрос на внутренний XHR-эндпоинт:
POST https://seller.ozon.ru/api/get_quota
Payload: {"seller_id": "2616614"}

Этот запрос не относится к Seller API, а используется на стороне seller.ozon.ru. В ответе получаем:

{
  "total": {
    "archive_usage": "3547",
    "black_list": false,
    "frozen_archive": "0",
    "limit": "1000",
    "usage": "4269",
    "white_list": false
  }
}

Этот ответ похож на ответ из "/v4/product/info/limit", но тут есть интересный атрибут "archive_usage": 3547.

Обратите внимание:

  • Мы насчитали 3761 архивных товаров через "/v3/product/list"
  • А "archive_usage" показывает 3547

Разница: 3761 - 3547 = 214 — та самая разница, что и между расчётным и фактическим лимитом: 492 - 278 = 214

Вывод:

Похоже, что "archive_usage" "съедает" часть моего "Общий лимит товаров", и это значение не совпадает с количеством архивных товаров, полученным через API "/v3/product/list".

Это приводит к расхождению в итоговом лимите на загрузку товаров между:

  • API "/v4/product/info/limit" (limit = 1000)
  • и фактическим значением на странице "Добавить товары" (278)

Я предполагаю, что ошибка возникла в какой-то момент при архивации товаров, и система Ozon Marketplace неправильно обработала эти операции (возможно, из-за ошибки сервиса), и теперь они перманентно влияют на лимит.

Что мне нужно? )

он блокирует мне возможность загружать новые товары. 

  Когда количество архивированных товаров приближается к тысяче, вы можете столкнуться с этой проблемой. Администраторам сообщества, желающим воспроизвести ошибку, рекомендуется сравнить результат запроса к https://seller.ozon.ru/api/get_quota с результатом API /v3/product/list (с фильтром archive). Я не могу раскрыть здесь свой API-ключ и другие конфиденциальные данные.  

Начните обсуждение
Чтобы оставить комментарий, нужно  или