Структура и содержание отчетов могут изменяться без предварительного уведомления
Например, может добавиться новая колонка или поменяться название листа.
Отчет по остаткам на складах партнера
Метод доступен для моделей: FBS, Экспресс и DBS.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- offers-and-cards-management — Управление товарами и карточками
- offers-and-cards-management:read-only — Просмотр товаров и карточек
- all-methods — Полное управление кабинетом
- all-methods:read-only — Просмотр всех данных
Запускает генерацию отчета по остаткам на складах магазинов в кабинете. Что это за отчет
Какая информация вернется:
- Об остатках на всех складах магазинов в кабинете (модели DBS, FBS и Экспресс).
- По каждому товару — ваш SKU, название, модель работы, склад, доступное для заказа количество, резерв, цену и статус.
Узнать статус генерации и получить ссылку на готовый отчет можно с помощью запроса GET v2/reports/info/{reportId}.
Пояснение к колонкам отчета:
Лист Остатки на складах (файл stocks_business)
|
Название колонки в CSV |
Название колонки в JSON |
Название колонки в XLSX |
Тип значения |
|
ERRORS |
errors |
Критичные ошибки |
string |
|
SHOP_SKU |
shopSku |
Ваш SKU * |
string |
|
PRODUCT_NAME |
productName |
Название товара |
string |
|
PLACEMENT_TYPE |
placementType |
Модель работы |
string |
|
WAREHOUSE_AND_SHOP |
warehouseAndShop |
Склад * |
string |
|
COUNT |
count |
Доступно для заказа * |
integer |
|
RESERVE |
reserve |
Резерв |
integer |
|
PRICE |
price |
Цена |
string |
|
STATUS |
status |
Статус |
string |
|
COMMENT |
comment |
Примечание |
string |
Метод подходит, только если в кабинете нет групп складов
Если в кабинете есть группы складов, используйте метод POST v2/reports/stocks-on-warehouses/generate. Что такое группы складов и зачем они нужны.
⚙️ Лимит без подписки: 1 запрос в 2 минуты ⭐️ Лимит с подпиской Медиум: 1 запрос в минуту |
|---|
Request
POST
https://api.partner.market.yandex.ru/v3/businesses/{businessId}/reports/stocks/generate
Path parameters
|
Name |
Description |
|
businessId |
Type: integer Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns. ℹ️ Что такое кабинет и магазин на Маркете Min value: |
Query parameters
|
Name |
Description |
|
format |
Type: ReportFormatType Формат отчета или документа. Формат отчета:
Default: Enum: |
ReportFormatType
Формат отчета:
FILE— файл с электронной таблицей (XLSX).CSV— ZIP-архив с CSV-файлами на каждый лист отчета.JSON— ZIP-архив с JSON-файлами на каждый лист отчета.
Type: string
Default: FILE
Enum: FILE, CSV, JSON
Body
application/json
{
"categoryIds": [
1
],
"hasStocks": true,
"partnerWarehouseIds": [
0
]
}
|
Name |
Description |
|
categoryIds |
Type: integer[] | null Фильтр по категориям на Маркете. Min items: Unique items: Example
|
|
hasStocks |
Type: boolean Фильтр по наличию остатков. |
|
partnerWarehouseIds |
Type: integer[] | null Фильтр по идентификаторам складов. Чтобы узнать идентификатор, воспользуйтесь запросом POST v3/businesses/{businessId}/warehouses. Min items: Unique items: Example
|
Responses
200 OK
В ответ приходит идентификатор, который позволяет узнавать статус генерации и скачать готовый отчет.
Body
application/json
{
"status": "OK",
"result": {
"reportId": "example",
"estimatedGenerationTime": 0
}
}
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
result
Type: GenerateReportDTO
Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.
Example
{ "reportId": "example", "estimatedGenerationTime": 0 }Example
{ "result": { "reportId": "example", "estimatedGenerationTime": 0 } }
ApiResponseStatusType
Тип ответа. Возможные значения:
OK— ошибок нет.ERROR— при обработке запроса произошла ошибка.
Type: string
Enum: OK, ERROR
ApiResponse
Стандартная обертка для ответов сервера.
|
Name |
Description |
|
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
Example
{
"status": "OK"
}
GenerateReportDTO
Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.
|
Name |
Description |
|
estimatedGenerationTime |
Type: integer Ожидаемая продолжительность генерации в миллисекундах. |
|
reportId |
Type: string Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа. Example: |
Example
{
"reportId": "example",
"estimatedGenerationTime": 0
}
400 Bad Request
Запрос содержит неправильные данные. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
ApiErrorDTO
Общий формат ошибки.
|
Name |
Description |
|
code |
Type: string Код ошибки. Example: |
|
message |
Type: string Описание ошибки. Example: |
Example
{
"code": "example",
"message": "example"
}
ApiErrorResponse
Стандартная обертка для ошибок сервера.
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
errors
Type: ApiErrorDTO[] | null
Список ошибок.
Min items:
1Example
[ { "code": "example", "message": "example" } ]Example
{ "errors": [ { "code": "example", "message": "example" } ] }
Example
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
401 Unauthorized
В запросе не указаны данные для авторизации. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
404 Not Found
Запрашиваемый ресурс не найден. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
420 Method Failure
Превышено ограничение на доступ к ресурсу. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
500 Internal Server Error
Внутренняя ошибка Маркета. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }