Получить отчёт
POST /api/analytics/v1/order-feedБаза: https://seller-analytics-api.wildberries.ru · Модуль: analytics · Раздел: Лента заказов · Документация спецификации ↗
Метод формирует набор данных о заказах и продажах.
Данные отчёта обновляются в режиме реального времени.
1 заказ = 1 сборочное задание = 1 единица товара Параметры
brandNames,subjectIds,tagIds,nmIdsмогут быть пустыми[], тогда в ответе возвращаются все заказы продавца. Если вы указали несколько параметров, в ответе будут заказы, в которых есть одновременно все эти параметры. Если заказы не подходят по параметрам запроса, вернётся пустой массив[].
Можно получить отчёт максимум за последние 31 день.
Заказы отдаются по времени текущего статуса, от самого нового к самому раннему.
Можно использовать пагинацию.
Лимит запросов на один профиль продавца:
| Тип | Период | Лимит | Интервал | Всплеск |
|---|---|---|---|---|
| Персональный | 1 мин | 1 запрос | 1 мин | 1 запрос |
| Сервисный | 1 мин | 1 запрос | 1 мин | 1 запрос |
| Базовый с секретом | 1 мин | 1 запрос | 1 мин | 1 запрос |
| Базовый | 3 ч | 1 запрос | 3 ч | 1 запрос |
Тело запроса
application/json — схема OrderFeedRequest, необязательно
selectedPeriodobject(обязательно) — Запрашиваемый период. По дате текущего статуса заказаstartstring(обязательно) — Дата и время начала периода. Не ранее 31 суток от текущей даты и не позднееendendstring— Дата и время конца периода. Не ранее 31 суток от текущей даты
nmIdsinteger<int64>[]— Список артикулов WB для фильтрацииsubjectIdsinteger<int64>[]— Список ID предметов для фильтрацииbrandNamesstring[]— Список брендов для фильтрацииtagIdsinteger<int64>[]— Список ID ярлыков для фильтрацииpaginationobject— ПагинацияsnapshotTimestring— Метка снимка данных, в рамках которого выполняется пагинация. Данные отчёта обновляются асинхронно. Чтобы не пропускать и не дублировать заказы, запросы одной выборки должны быть с одним и тем жеsnapshotTime. В первом запросе выборки ("offset":0) параметр не указывается, в каждом последующем запросе (offset>0) указывайте значение поляsnapshotTimeиз ответа на первый запрос. При изменении значений периода и фильтров начинайте выборку заново с"offset":0и безsnapshotTimeoffsetinteger<int32>— Сколько элементов пропустить. Например, для значения10ответ начнётся с 11 элементаlimitinteger<int32>— Количество заказов в ответе
Ответы
| Код | Описание | Схема |
|---|---|---|
200 | Успешно | PostV1OrderFeedResponse200 |
400 | Неправильный запрос | ErrorObject400 |
401 | Не авторизован | object |
402 | Требуется платёж | object |
403 | Доступ запрещён | ErrorObject403 |
429 | Слишком много запросов | object |
Структура 200:
dataOrderFeedResponsesnapshotTimestring— Метка снимка данных, в рамках которого выполняется пагинацияcurrencyCurrencyordersOrder[]— ЗаказыnmIdinteger<int64>— Артикул WBchrtIdinteger<int64>— ID размераsridstring— ID заказаcreatedAtstring— Дата и время оформления заказаupdatedAtstring— Дата и время текущего статуса. При"status":"created"возвращается значение поляcreatedAtstatusstring=created|buyout|cancel|return|returnDefective— Статус заказа: -created— оформлен -buyout— продан -cancel— отменён -return— возвращён -returnDefective— возвращён по причине бракаcancelTypestring=app|receipt|expire|other— Тип отмены (при"status":"cancel"): -app— отказ до получения -receipt— отказ при получении -expire— истёк срок получения -other— иноеwarehouseNamestring— Название склада. На данный момент для складов WB может быть толькоСклад WBwarehouseRegionstring— Федеральный округ склада. Если склад не в России, возвращается страна. На данный момент для складов WB может быть только""isMpboolean— Тип склада: -true— склад продавца -false— склад WBdestinationCitystring— Населённый пункт доставкиdestinationDistrictstring— Федеральный округ доставки. Если доставка не по России, возвращается странаsellerPricenumber<float64>— Цена продавца со скидкой продавца (без учёта скидки WB Клуба и оптовой скидки для B2B-продаж)isB2bboolean— Тип продажи: -true— B2B -false— B2C
Структура 400:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WB
Структура 401:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиcodestring— Внутренний код ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WBstatusnumber— HTTP статус-кодstatusTextstring— Расшифровка HTTP статус-кодаtimestampstring— Дата и время запроса
Структура 402:
titlestring— Заголовок ошибкиdetailstring— Детали ошибки. Ошибка возвращается только сервисам из Каталога решений для бизнеса
Структура 403:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WB
Структура 429:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиcodestring— Внутренний код ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WBstatusnumber— HTTP статус-кодstatusTextstring— Расшифровка HTTP статус-кодаtimestampstring— Дата и время запроса
Примеры вызова
Аргументы показаны именами параметров — подставьте свои значения. Языки, в клиенте которых этой операции нет, не показаны.
from wb_api_client.analytics import Configuration, ApiClient
from wb_api_client.analytics.api import AnalyticsApi
cfg = Configuration(access_token="<ваш JWT WB>")
api = AnalyticsApi(ApiClient(cfg))
result = api.post_v1_order_feed(order_feed_request=...)
print(result)import {
Configuration,
AnalyticsApi,
} from "@valeryverkhoturov/wb-api-client/analytics";
const cfg = new Configuration({});
cfg.setAccessToken("<ваш JWT WB>");
const api = new AnalyticsApi(cfg);
const { data } = await api.postV1OrderFeed(orderFeedRequest);
console.log(data);import (
"context"
"fmt"
wbanalytics "github.com/ValeryVerkhoturov/wb-api-client-go/analytics"
)
cfg := wbanalytics.NewConfiguration()
cfg.SetAccessToken("<ваш JWT WB>")
client := wbanalytics.NewAPIClient(cfg)
result, _, err := client.AnalyticsAPI.PostV1OrderFeed(context.Background()).Execute()
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)import io.github.valeryverkhoturov.wbapi.analytics.ApiClient;
import io.github.valeryverkhoturov.wbapi.analytics.SecretString;
import io.github.valeryverkhoturov.wbapi.analytics.api.AnalyticsApi;
ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<ваш JWT WB>"));
AnalyticsApi api = new AnalyticsApi(client);
System.out.println(api.postV1OrderFeed(orderFeedRequest));use ValeryVerkhoturov\WbApiClient\Analytics\Configuration;
use ValeryVerkhoturov\WbApiClient\Analytics\SecretString;
use ValeryVerkhoturov\WbApiClient\Analytics\Api\AnalyticsApi;
use GuzzleHttp\Client;
$config = (new Configuration())
->setAccessTokenSecret(new SecretString('<ваш JWT WB>'));
$api = new AnalyticsApi(new Client(), $config);
print_r($api->postV1OrderFeed());#Использовать "wb-api-client"
Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<ваш JWT WB>");
Клиент = Новый AnalyticsApi(Настройки);
Сообщить(Клиент.PostV1OrderFeed(Тело).Тело);using ValeryVerkhoturov.WbApiClient.Analytics.Api;
using ValeryVerkhoturov.WbApiClient.Analytics.Client;
var config = new Configuration();
config.AccessTokenSecret = new SecretString("<ваш JWT WB>");
var api = new AnalyticsApi(config);
Console.WriteLine(api.PostV1OrderFeed());use wb_api_client::analytics::apis::{configuration::Configuration, analytics_api};
#[tokio::main]
async fn main() {
let mut cfg = Configuration::new();
cfg.set_access_token("<ваш JWT WB>");
let result = analytics_api::post_v1_order_feed(&cfg, order_feed_request).await;
println!("{:#?}", result);
}