UNPKG

wb-api-client

Version:

Typescript API для Wildberries, сгенерированное из Swagger. Без внешних зависимостей.

1,658 lines (1,596 loc) 127 kB
/* eslint-disable */ /* tslint:disable */ /* * --------------------------------------------------------------- * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## * ## ## * ## AUTHOR: acacode ## * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## * --------------------------------------------------------------- */ export interface OrderNewDBS { /** Адрес покупателя для доставки */ address?: { /** * Адрес доставки * @example "Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42" */ fullAddress?: string; /** * Долгота * @format float64 * @example 44.519068 */ longitude?: number; /** * Широта * @format float64 * @example 40.20192 */ latitude?: number; } | null; /** * Планируемая дата доставки.<br> * Поле отображается для схем: <br> * dbs — доставка силами продавца <br> * edbs — экспресс-доставка силами продавца <br> * @example "17.05.2024" */ ddate?: string; /** * Цена продавца в валюте продажи с учётом скидки продавца, без учёта скидки WB Клуба, умноженная на 100 * @example 504658 */ salePrice?: number | null; /** * Время доставки "с".<br> Поле отображается только для edbs (экспресс-доставка силами продавца) * @example "15:00" */ dTimeFrom?: string; /** * Время доставки "до".<br> Поле отображается только для edbs (экспресс-доставка силами продавца) * @example "16:00" */ dTimeTo?: string; /** * Перечень метаданных, которые необходимо добавить в сборочное задание. <br> На данный момент обязательным к добавлению является только UIN, при его наличии в перечне. * @example ["uin"] */ requiredMeta?: string[]; /** * <dl> * <dt>Тип доставки:</dt> * <dd><code>dbs</code> - доставка силами продавца</dd> * <dd><code>edbs</code> - экспресс-доставка силами продавца</dd> * </dl> */ deliveryType?: "dbs" | "edbs"; /** * Комментарий покупателя * @maxLength 300 * @example "Упакуйте в плёнку, пожалуйста" */ comment?: string; /** * Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID * @example "165918930_629fbc924b984618a44354475ca58675" */ orderUid?: string; /** * Артикул продавца * @example "one-ring-7548" */ article?: string; /** * Код цвета (только для колеруемых товаров) * @example "RAL 3017" */ colorCode?: string; /** * Идентификатор сборочного задания в системе Wildberries * @example "f884001e44e511edb8780242ac120002" */ rid?: string; /** * Дата создания сборочного задания * @format RFC3339 * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** Массив баркодов товара */ skus?: string[]; /** * Идентификатор сборочного задания в сервисе Маркетплейс * @format int64 * @example 13833711 */ id?: number; /** * Идентификатор склада продавца, на который поступило сборочное задание * @example 658434 */ warehouseId?: number; /** * Артикул WB * @example 123456789 */ nmId?: number; /** * Идентификатор размера WB * @example 987654321 */ chrtId?: number; /** * Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. * @example 1014 */ price?: number; /** * Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. * @example 28322 */ convertedPrice?: number; /** * Код валюты продажи * @format ISO 4217 * @example 933 */ currencyCode?: number; /** * Код валюты страны продавца * @format ISO 4217 * @example 643 */ convertedCurrencyCode?: number; /** <dl> <dt>Тип товара:</dt> <dd><code>1</code> - стандартный</dd> <dd><code>2</code> - СГТ (Сверхгабаритный товар)</dd> <dd><code>3</code> - КГТ+ (Крупногабаритный товар)</dd> </dl> */ cargoType?: 1 | 2 | 3; /** * Признак заказа, сделанного на нулевой остаток товара. (<code>false</code> - заказ сделан на товар с ненулевым остатком, <code>true</code> - заказ сделан на товар с остатком равным нулю. Такой заказ можно отменить без штрафа за отмену) * @example false */ isZeroOrder?: any; } export interface Error { /** Код ошибки */ code?: string; /** Описание ошибки */ message?: string; /** Дополнительные данные, обогощающие ошибку */ data?: object | null; } export interface OrderDBS { /** Адрес покупателя для доставки */ address?: { /** * Адрес доставки * @example "Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42" */ fullAddress?: string; /** * Долгота * @format float64 * @example 44.519068 */ longitude?: number; /** * Широта * @format float64 * @example 40.20192 */ latitude?: number; } | null; /** * <dl> * <dt>Тип доставки:</dt> * <dd><code>fbs</code> - доставка на склад Wildberries</dd> * <dd><code>dbs</code> - доставка силами продавца</dd> * <dd><code>wbgo</code> - доставка курьером WB</dd> * <dd><code>edbs</code> - экспресс-доставка силами продавца</dd> * </dl> */ deliveryType?: string; /** * Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID * @example "165918930_629fbc924b984618a44354475ca58675" */ orderUid?: string; /** * Артикул продавца * @example "one-ring-7548" */ article?: string; /** * Код цвета (только для колеруемых товаров) * @example "RAL 3017" */ colorCode?: string; /** * Идентификатор сборочного задания в системе Wildberries * @example "f884001e44e511edb8780242ac120002" */ rid?: string; /** * Дата создания сборочного задания * @format RFC3339 * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** Массив баркодов товара */ skus?: string[]; /** * Идентификатор сборочного задания в сервисе Маркетплейс * @format int64 * @example 13833711 */ id?: number; /** * Идентификатор склада продавца, на который поступило сборочное задание * @example 658434 */ warehouseId?: number; /** * Артикул WB * @example 12345678 */ nmId?: number; /** * Идентификатор размера WB * @example 987654321 */ chrtId?: number; /** * Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. * @example 1014 */ price?: number; /** * Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. * @example 28322 */ convertedPrice?: number; /** * Код валюты продажи * @format ISO 4217 * @example 933 */ currencyCode?: number; /** * Код валюты страны продавца * @format ISO 4217 * @example 643 */ convertedCurrencyCode?: number; /** <dl> <dt>Тип товара:</dt> <dd><code>1</code> - обычный</dd> <dd><code>2</code> - СГТ (Сверхгабаритный товар)</dd> <dd><code>3</code> - КГТ+ (Крупногабаритный товар)</dd> </dl> */ cargoType?: 1 | 2 | 3; /** * Комментарий покупателя * @maxLength 300 * @example "Упакуйте в плёнку, пожалуйста" */ comment?: string; /** * Признак заказа, сделанного на нулевой остаток товара. (<code>false</code> - заказ сделан на товар с ненулевым остатком, <code>true</code> - заказ сделан на товар с остатком равным нулю. Такой заказ можно отменить без штрафа за отмену) * @example false */ isZeroOrder?: any; } /** Контакты склада продавца */ export interface StoreContactResponseBody { contacts?: { /** * Комментарий * @maxLength 1000 * @example "Иванов Иван Иванович. Звонить с 10 до 21 часа." */ comment?: string; /** * Номер телефона * @example "+79998887766" */ phone?: string; }[]; } /** Контакты склада продавца */ export interface StoreContactRequestBody { /** @maxItems 5 */ contacts?: { /** * Комментарий * @maxLength 1000 * @example "Иванов Иван Иванович. Звонить с 10 до 21 часа." */ comment?: string; /** * Номер телефона.<br> Поддерживаемые коды стран: +7, +374, +375, +996 * @example "+79998887766" */ phone?: string; }[]; } export interface CrossborderTurkeyClientInfo { /** * Имя покупателя * @example "Иван" */ firstName?: string; /** * Фамилия, Имя, Отчество * @example "Андреев Иван Васильевич" */ fullName?: string; /** * Фамилия покупателя * @example "Андреев" */ lastName?: string; /** * Отчество покупателя * @example "Васильевич" */ middleName?: string; /** * Номер заказа * @example 134567 */ orderID?: number; /** * Телефон для связи с покупателем * @example 79871234567 */ phone?: string; /** * Не используется * @example 0 */ phoneCode?: string; } export interface DbsClientInfo { /** Имя покупателя */ firstName?: string; /** * Полное имя, используется для оформления документов. Например, документы для автомобиля. * @example "Иван Иван Иванович" */ fullName?: string; /** * Номер заказа * @example 134567 */ orderID?: number; /** * Телефон для связи с покупателем. <br> Чтобы связаться с покупателем наберите этот номер и введите добавочный код. <br> Даный номер не является прямым номером покупателя. * @example 79871234567 */ phone?: string; /** * Добавочный код * @example 1234567 */ phoneCode?: string; } export interface CrossborderTurkeyClientInfoResp { /** Информация по покупателю для кроссбордер-заказа из Турции */ orders?: CrossborderTurkeyClientInfo[]; } export interface DbsOnlyClientInfo { /** Имя покупателя */ firstName?: string; /** * Полное имя, используется для оформления документов. Например, документы для автомобиля. * @example "Иван Иван Иванович" */ fullName?: string; /** * Номер заказа * @example 134567 */ orderID?: number; /** * Телефон для связи с покупателем. <br> Чтобы связаться с покупателем наберите этот номер и введите добавочный код. <br> Даный номер не является прямым номером покупателя. * @example 79871234567 */ phone?: string; /** * Добавочный код * @example 1234567 */ phoneCode?: string; /** * Дополнительные добавочные коды покупателя, использовать, если не получилось дозвониться по добавочному коду из `phoneCode` * @example [12345,65498] */ additionalPhoneCodes?: string; } export interface DbsOnlyClientInfoResp { /** Информация по покупателю */ orders?: DbsOnlyClientInfo[]; } export interface DbsClientInfoResp { /** Информация по покупателю для dbs-заказа (доставка силами продавца) */ orders?: DbsClientInfo[]; } /** @example {"orders":[987654321,123456789]} */ export interface OrdersRequestAPI { /** Список заказов */ orders?: number[]; } export interface Code { /** Код подтверждения. <br> Отображается у покупателя на сайте и в приложении Wildberries */ code?: string; } /** Данные о складе, для которого требуется пропуск */ export interface PassOffice { /** * Название * @example "Коледино" */ name?: string; /** * Адрес * @example "г. Подольск, д. Коледино, ул. Троицкая" */ address?: string; /** * ID * @format int64 * @example 1 */ id?: number; } export interface Supply { /** * Идентификатор поставки * @example "WB-GI-1234567" */ id?: string; /** Флаг закрытия поставки */ done?: boolean; /** * Дата создания поставки (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** * Дата закрытия поставки (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ closedAt?: string; /** * Дата скана поставки (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ scanDt?: string; /** * Наименование поставки * @example "Тестовая поставка" */ name?: string; /** <dl> <dt>Тип поставки:</dt> <dd>0 - признак отсутствует</dd> <dd>1 - обычная</dd> <dd>2 - СГТ (Содержит сверхгабаритные товары)</dd> <dd>3 - КГТ+ (Содержит крупногабаритные товары)</dd> </dl> */ cargoType?: 0 | 1 | 2 | 3; } /** * Параметр пагинации. Содержит значение, которое необходимо указать в запросе для получения следующего пакета данных * @format int64 * @example 13833711 */ export type Next = number; export interface Order { /** Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса */ address?: { /** * Адрес доставки. * @example "Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42" */ fullAddress?: string; /** * Область * @deprecated * @example "Челябинская область" */ province?: string; /** * Район * @deprecated * @example "Челябинск" */ area?: string; /** * Город * @deprecated * @example "Город" */ city?: string; /** * Улица * @deprecated * @example "51-я улица Арабкира" */ street?: string; /** * Номер дома * @deprecated * @example "10А" */ home?: string; /** * Номер квартиры * @deprecated * @example "42" */ flat?: string; /** * Подъезд * @deprecated * @example "3" */ entrance?: string; /** * Координата долготы * @format float64 * @example 44.519068 */ longitude?: number; /** * Координаты широты * @format float64 * @example 40.20192 */ latitude?: number; } | null; /** * Цена приёмки в копейках. Появляется после фактической приёмки заказа * @format uint32 * @example 1500 */ scanPrice?: number; /** * <dl> * <dt>Тип доставки:</dt> * <dd>fbs - доставка на склад Wildberries</dd> * <dd>dbs - доставка силами продавца</dd> * <dd>wbgo - доставка курьером WB</dd> * <dd>edbs - экспресс-доставка силами продавца</dd> * </dl> */ deliveryType?: "dbs" | "edbs" | "fbs" | "wbgo"; /** * Идентификатор поставки. Возвращается, если заказ закреплён за поставкой * @example "WB-GI-92937123" */ supplyId?: string; /** * Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID * @example "165918930_629fbc924b984618a44354475ca58675" */ orderUid?: string; /** * Артикул продавца * @example "one-ring-7548" */ article?: string; /** * Код цвета (только для колеруемых товаров) * @example "RAL 3017" */ colorCode?: string; /** * Идентификатор сборочного задания в системе Wildberries * @example "f884001e44e511edb8780242ac120002" */ rid?: string; /** * Дата создания сборочного задания (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** Список офисов, куда следует привезти товар */ offices?: string[] | null; /** Массив баркодов товара */ skus?: string[]; /** * Идентификатор сборочного задания в Маркетплейсе * @format int64 * @example 13833711 */ id?: number; /** * Идентификатор склада продавца, на который поступило сборочное задание * @example 658434 */ warehouseId?: number; /** * Артикул WB * @example 12345678 */ nmId?: number; /** * Идентификатор размера товара в системе Wildberries * @example 987654321 */ chrtId?: number; /** * Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. * @example 1014 */ price?: number; /** * Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. * @example 28322 */ convertedPrice?: number; /** * Код валюты продажи (ISO 4217) * @example 933 */ currencyCode?: number; /** * Код валюты страны продавца (ISO 4217) * @example 643 */ convertedCurrencyCode?: number; /** <dl> <dt>Тип товара:</dt> <dd>1 - обычный</dd> <dd>2 - СГТ (Сверхгабаритный товар)</dd> <dd>3 - КГТ+ (Крупногабаритный товар)</dd> </dl> */ cargoType?: 1 | 2 | 3; /** * Комментарий покупателя * @maxLength 300 * @example "Упакуйте в плёнку, пожалуйста" */ comment?: string; /** * Признак заказа, сделанного на нулевой остаток товара. (<code>false</code> - заказ сделан на товар с ненулевым остатком, <code>true</code> - заказ сделан на товар с остатком равным нулю. Такой заказ можно отменить без штрафа за отмену) * @example false */ isZeroOrder?: any; } export interface OrderNew { /** Детализованный адрес покупателя для доставки (если применимо). Некоторые из полей могут прийти пустыми из-за специфики адреса */ address?: { /** * Адрес доставки. * @example "Челябинская область, г. Челябинск, 51-я улица Арабкира, д. 10А, кв. 42" */ fullAddress?: string; /** * Область * @deprecated * @example "" */ province?: string; /** * Район * @deprecated * @example "" */ area?: string; /** * Город * @deprecated * @example "" */ city?: string; /** * Улица * @deprecated * @example "" */ street?: string; /** * Номер дома * @deprecated * @example "" */ home?: string; /** * Номер квартиры * @deprecated * @example "" */ flat?: string; /** * Подъезд * @deprecated * @example "" */ entrance?: string; /** * Координата долготы * @format float64 * @example 44.519068 */ longitude?: number; /** * Координаты широты * @format float64 * @example 40.20192 */ latitude?: number; } | null; /** * Планируемая дата доставки.<br> * Поле отображается для схем: <br> * dbs — доставка силами продавца (DBS) <br> * edbs — экспресс-доставка силами продавца (EDBS) <br> * wbgo — доставка курьером WB (DBW) <br> * СГТ — заказы сверхгабаритных товаров (<code>cargoType: 2</code>) для схем FBS — доставка на склад Wildberries — и DBS. * @example "17.05.2024" */ ddate?: string; /** * Цена продавца в валюте продажи с учётом скидки продавца, без учёта скидки WB Клуба, умноженная на 100 * @example 504600 */ salePrice?: number | null; /** * Время доставки "с".<br> Поле отображается только для edbs (экспресс-доставка силами продавца) * @example "15:00" */ dTimeFrom?: string; /** * Время доставки "до".<br> Поле отображается только для edbs (экспресс-доставка силами продавца) * @example "16:00" */ dTimeTo?: string; /** * Перечень метаданных, которые необходимо добавить в сборочное задание. <br> На данный момент обязательным к добавлению является только UIN, при его наличии в перечне. * @example ["uin"] */ requiredMeta?: string[]; /** * <dl> * <dt>Тип доставки:</dt> * <dd>fbs - доставка на склад Wildberries (FBS)</dd> * <dd>dbs - доставка силами продавца (DBS)</dd> * <dd>edbs - экспресс-доставка силами продавца (EDBS)</dd> * <dd>wbgo - доставка курьером WB (DBW)</dd> * </dl> */ deliveryType?: "dbs" | "fbs" | "edbs" | "wbgo"; /** * Комментарий покупателя * @maxLength 300 * @example "Упакуйте в плёнку, пожалуйста" */ comment?: string; /** * Цена приёмки в копейках. Появляется после фактической приёмки заказа. Для данного метода всегда будет возвращаться null * @format uint32 * @example null */ scanPrice?: number | null; /** * Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID * @example "165918930_629fbc924b984618a44354475ca58675" */ orderUid?: string; /** * Артикул продавца * @example "one-ring-7548" */ article?: string; /** * Код цвета (только для колеруемых товаров) * @example "RAL 3017" */ colorCode?: string; /** * Идентификатор сборочного задания в системе Wildberries * @example "f884001e44e511edb8780242ac120002" */ rid?: string; /** * Дата создания сборочного задания (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** Список офисов, куда следует привезти товар */ offices?: string[] | null; /** Массив баркодов товара */ skus?: string[]; /** * Идентификатор сборочного задания в Маркетплейсе * @format int64 * @example 13833711 */ id?: number; /** * Идентификатор склада продавца, на который поступило сборочное задание * @example 658434 */ warehouseId?: number; /** * Артикул WB * @example 123456789 */ nmId?: number; /** * Идентификатор размера товара в системе Wildberries * @example 987654321 */ chrtId?: number; /** * Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. * @example 1014 */ price?: number; /** * Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. * @example 28322 */ convertedPrice?: number; /** * Код валюты продажи (ISO 4217) * @example 933 */ currencyCode?: number; /** * Код валюты страны продавца (ISO 4217) * @example 643 */ convertedCurrencyCode?: number; /** <dl> <dt>Тип товара:</dt> <dd>1 - обычный</dd> <dd>2 - СГТ (Сверхгабаритный товар)</dd> <dd>3 - КГТ+ (Крупногабаритный товар)</dd> </dl> */ cargoType?: 1 | 2 | 3; /** * Признак заказа, сделанного на нулевой остаток товара. (<code>false</code> - заказ сделан на товар с ненулевым остатком, <code>true</code> - заказ сделан на товар с остатком равным нулю. Такой заказ можно отменить без штрафа за отмену) * @example false */ isZeroOrder?: any; } export interface SupplyOrder { /** * Цена приёмки в копейках. Появляется после фактической приёмки заказа. Для данного метода всегда будет возвращаться null * @format uint32 * @example null */ scanPrice?: number | null; /** * Идентификатор транзакции для группировки сборочных заданий. Сборочные задания в одной корзине покупателя будут иметь одинаковый orderUID * @example "165918930_629fbc924b984618a44354475ca58675" */ orderUid?: string; /** * Артикул продавца * @example "one-ring-7548" */ article?: string; /** * Код цвета (только для колеруемых товаров) * @example "RAL 3017" */ colorCode?: string; /** * Идентификатор сборочного задания в системе Wildberries * @example "f884001e44e511edb8780242ac120002" */ rid?: string; /** * Дата создания сборочного задания (RFC3339) * @format date-time * @example "2022-05-04T07:56:29Z" */ createdAt?: string; /** Список офисов, куда следует привезти товар */ offices?: string[] | null; /** Массив баркодов товара */ skus?: string[]; /** * Идентификатор сборочного задания в Маркетплейсе * @format int64 * @example 13833711 */ id?: number; /** * Идентификатор склада продавца, на который поступило сборочное задание * @example 658434 */ warehouseId?: number; /** * Артикул WB * @example 123456789 */ nmId?: number; /** * Идентификатор размера товара в системе Wildberries * @example 987654321 */ chrtId?: number; /** * Цена в валюте продажи с учетом всех скидок, умноженная на 100. Код валюты продажи в поле currencyCode. * @example 1014 */ price?: number; /** * Цена в валюте страны продавца с учетом всех скидок, кроме суммы по WB Кошельку, умноженная на 100. Предоставляется в информационных целях. * @example 28322 */ convertedPrice?: number; /** * Код валюты продажи (ISO 4217) * @example 933 */ currencyCode?: number; /** * Код валюты страны продавца (ISO 4217) * @example 643 */ convertedCurrencyCode?: number; /** <dl> <dt>Тип товара:</dt> <dd>1 - обычный</dd> <dd>2 - СГТ (Сверхгабаритный товар)</dd> <dd>3 - КГТ+ (Крупногабаритный товар)</dd> </dl> */ cargoType?: 1 | 2 | 3; /** * Признак заказа, сделанного на нулевой остаток товара. (<code>false</code> - заказ сделан на товар с ненулевым остатком, <code>true</code> - заказ сделан на товар с остатком равным нулю. Такой заказ можно отменить без штрафа за отмену) * @example false */ isZeroOrder?: any; } export interface SupplyTrbx { /** * ID короба. * @example "WB-TRBX-1234567" */ id?: string; /** Массив идентификаторов заказа. */ orders?: number[]; } export interface TrbxStickers { /** * Закодированное значение этикетки. * @minLength 1 * @example "$WBMP:1:123:1234567" */ barcode?: string; /** * Полное представление этикетки в заданном формате. (кодировка base64) * @format byte * @minLength 1 * @example "U3dhZ2dlciByb2Nrcw==" */ file?: string; } /** Данные о складе WB */ export interface Office { /** * Адрес * @example "ул. Троицкая, Подольск, Московская обл." */ address?: string; /** * Название * @example "Москва (Коледино)" */ name?: string; /** * Город * @example "Москва" */ city?: string; /** * ID * @format int64 * @example 15 */ id?: number; /** * Долгота * @format float64 * @example 55.386871 */ longitude?: number; /** * Широта * @format float64 * @example 37.588898 */ latitude?: number; /** * <dl> <dt>Тип товара, который принимает склад:</dt> <dd>1 - обычный</dd> <dd>2 - СГТ (Сверхгабаритный товар)</dd> <dd>3 - КГТ+ (Крупногабаритный товар)</dd> </dl> * @example 1 */ cargoType?: 1 | 2 | 3; /** * <dl> * <dt>Тип доставки, который принимает склад:</dt> * <dd>1 - доставка на склад Wildberries</dd> * <dd>2 - доставка силами продавца</dd> * <dd>3 - доставка курьером WB</dd> * </dl> * @example 1 */ deliveryType?: 1 | 2 | 3; /** Признак того, что склад уже выбран продавцом */ selected?: boolean; } /** Данные о складе продавца */ export interface Warehouse { /** * Название склада продавца * @example "ул. Троицкая, Подольск, Московская обл." */ name?: string; /** * ID склада WB * @format int64 * @example 15 */ officeId?: number; /** * ID склада продавца * @format int64 * @example 1 */ id?: number; /** * <dl> <dt>Тип товара:</dt> <dd>1 - стандартный</dd> <dd>2 - СГТ (Сверхгабаритный товар)</dd> <dd>3 - КГТ+ (Крупногабаритный товар)</dd> </dl> * @example 1 */ cargoType?: 1 | 2 | 3; /** * <dl> * <dt>Тип доставки:</dt> * <dd>1 - доставка на склад Wildberries (FBS)</dd> * <dd>2 - доставка силами продавца (DBS)</dd> * <dd>3 - доставка курьером WB (DBW)</dd> * </dl> * @example 1 */ deliveryType?: 1 | 2 | 3; } /** Метаданные заказа */ export interface Meta { /** * IMEI * @example 123456789012345 */ imei?: string | null; /** * УИН * @example 1234567890123456 */ uin?: string | null; /** * GTIN * @example 1234567890123 */ gtin?: string | null; /** * КиЗ (Маркировка честного знака) * @example 1234567890123456 */ sgtin?: string | null; } /** Данные о пропуске продавца */ export interface Pass { /** * Имя водителя * @example "Александр" */ firstName?: string; /** * Дата окончания действия пропуска * @example "2022-07-31T17:53:13.000Z" */ dateEnd?: string; /** * Фамилия водителя * @example "Петров" */ lastName?: string; /** * Марка машины * @example "Lamborghini" */ carModel?: string; /** * Номер машины * @example "A456BC123" */ carNumber?: string; /** * Название склада * @example "Коледино" */ officeName?: string; /** * Адрес склада * @example "г. Подольск, д. Коледино, ул. Троицкая" */ officeAddress?: string; /** * ID склада * @format int64 * @example 15 */ officeId?: number; /** * ID пропуска * @format int64 * @example 1 */ id?: number; } export type QueryParamsType = Record<string | number, any>; export type ResponseFormat = keyof Omit<Body, "body" | "bodyUsed">; export interface FullRequestParams extends Omit<RequestInit, "body"> { /** set parameter to `true` for call `securityWorker` for this request */ secure?: boolean; /** request path */ path: string; /** content type of request body */ type?: ContentType; /** query params */ query?: QueryParamsType; /** format of response (i.e. response.json() -> format: "json") */ format?: ResponseFormat; /** request body */ body?: unknown; /** base url */ baseUrl?: string; /** request cancellation token */ cancelToken?: CancelToken; } export type RequestParams = Omit<FullRequestParams, "body" | "method" | "query" | "path">; export interface ApiConfig<SecurityDataType = unknown> { baseUrl?: string; baseApiParams?: Omit<RequestParams, "baseUrl" | "cancelToken" | "signal">; securityWorker?: (securityData: SecurityDataType | null) => Promise<RequestParams | void> | RequestParams | void; customFetch?: typeof fetch; } export interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response { data: D; error: E; } type CancelToken = Symbol | string | number; export enum ContentType { Json = "application/json", FormData = "multipart/form-data", UrlEncoded = "application/x-www-form-urlencoded", Text = "text/plain", } export class HttpClient<SecurityDataType = unknown> { public baseUrl: string = ""; private securityData: SecurityDataType | null = null; private securityWorker?: ApiConfig<SecurityDataType>["securityWorker"]; private abortControllers = new Map<CancelToken, AbortController>(); private customFetch = (...fetchParams: Parameters<typeof fetch>) => fetch(...fetchParams); private baseApiParams: RequestParams = { credentials: "same-origin", headers: {}, redirect: "follow", referrerPolicy: "no-referrer", }; constructor(apiConfig: ApiConfig<SecurityDataType> = {}) { Object.assign(this, apiConfig); } public setSecurityData = (data: SecurityDataType | null) => { this.securityData = data; }; protected encodeQueryParam(key: string, value: any) { const encodedKey = encodeURIComponent(key); return `${encodedKey}=${encodeURIComponent(typeof value === "number" ? value : `${value}`)}`; } protected addQueryParam(query: QueryParamsType, key: string) { return this.encodeQueryParam(key, query[key]); } protected addArrayQueryParam(query: QueryParamsType, key: string) { const value = query[key]; return value.map((v: any) => this.encodeQueryParam(key, v)).join("&"); } protected toQueryString(rawQuery?: QueryParamsType): string { const query = rawQuery || {}; const keys = Object.keys(query).filter((key) => "undefined" !== typeof query[key]); return keys .map((key) => (Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key))) .join("&"); } protected addQueryParams(rawQuery?: QueryParamsType): string { const queryString = this.toQueryString(rawQuery); return queryString ? `?${queryString}` : ""; } private contentFormatters: Record<ContentType, (input: any) => any> = { [ContentType.Json]: (input: any) => input !== null && (typeof input === "object" || typeof input === "string") ? JSON.stringify(input) : input, [ContentType.Text]: (input: any) => (input !== null && typeof input !== "string" ? JSON.stringify(input) : input), [ContentType.FormData]: (input: any) => Object.keys(input || {}).reduce((formData, key) => { const property = input[key]; formData.append( key, property instanceof Blob ? property : typeof property === "object" && property !== null ? JSON.stringify(property) : `${property}`, ); return formData; }, new FormData()), [ContentType.UrlEncoded]: (input: any) => this.toQueryString(input), }; protected mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams { return { ...this.baseApiParams, ...params1, ...(params2 || {}), headers: { ...(this.baseApiParams.headers || {}), ...(params1.headers || {}), ...((params2 && params2.headers) || {}), }, }; } protected createAbortSignal = (cancelToken: CancelToken): AbortSignal | undefined => { if (this.abortControllers.has(cancelToken)) { const abortController = this.abortControllers.get(cancelToken); if (abortController) { return abortController.signal; } return void 0; } const abortController = new AbortController(); this.abortControllers.set(cancelToken, abortController); return abortController.signal; }; public abortRequest = (cancelToken: CancelToken) => { const abortController = this.abortControllers.get(cancelToken); if (abortController) { abortController.abort(); this.abortControllers.delete(cancelToken); } }; public request = async <T = any, E = any>({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }: FullRequestParams): Promise<HttpResponse<T, E>> => { const secureParams = ((typeof secure === "boolean" ? secure : this.baseApiParams.secure) && this.securityWorker && (await this.securityWorker(this.securityData))) || {}; const requestParams = this.mergeRequestParams(params, secureParams); const queryString = query && this.toQueryString(query); const payloadFormatter = this.contentFormatters[type || ContentType.Json]; const responseFormat = format || requestParams.format; return this.customFetch(`${baseUrl || this.baseUrl || ""}${path}${queryString ? `?${queryString}` : ""}`, { ...requestParams, headers: { ...(requestParams.headers || {}), ...(type && type !== ContentType.FormData ? { "Content-Type": type } : {}), }, signal: (cancelToken ? this.createAbortSignal(cancelToken) : requestParams.signal) || null, body: typeof body === "undefined" || body === null ? null : payloadFormatter(body), }).then(async (response) => { const r = response.clone() as HttpResponse<T, E>; r.data = null as unknown as T; r.error = null as unknown as E; const data = !responseFormat ? r : await response[responseFormat]() .then((data) => { if (r.ok) { r.data = data; } else { r.error = data; } return r; }) .catch((e) => { r.error = e; return r; }); if (cancelToken) { this.abortControllers.delete(cancelToken); } if (!response.ok) throw data; return data; }); }; } /** * @title Описание API Marketplace */ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> { api = { /** * @description Возвращает список всех новых сборочных заданий у продавца на данный момент * * @tags Сборочные задания * @name V3OrdersNewList * @summary Получить список новых сборочных заданий * @request GET:/api/v3/orders/new * @secure */ v3OrdersNewList: (params: RequestParams = {}) => this.request< { /** Список новых сборочных заданий */ orders?: OrderNew[]; }, void | Error >({ path: `/api/v3/orders/new`, method: "GET", secure: true, format: "json", ...params, }), /** * @description Возвращает информацию по сборочным заданиям без их актуального статуса. <br>Можно выгрузить данные за конкретный период, максимум 30 календарных дней * * @tags Сборочные задания * @name V3OrdersList * @summary Получить информацию по сборочным заданиям * @request GET:/api/v3/orders * @secure */ v3OrdersList: ( query: { /** * Параметр пагинации. Устанавливает предельное количество возвращаемых данных. * @min 1 * @max 1000 */ limit: number; /** * Параметр пагинации. Устанавливает значение, с которого надо получить следующий пакет данных. Для получения полного списка данных должен быть равен 0 в первом запросе. Для следующих запросов необходимо брать значения из одноимённого поля в ответе. * @format int64 */ next: number; /** Дата начала периода в формате Unix timestamp. По умолчанию — дата за 30 дней до запроса */ dateFrom?: number; /** Дата конца периода в формате Unix timestamp */ dateTo?: number; }, params: RequestParams = {}, ) => this.request< { /** Параметр пагинации. Содержит значение, которое необходимо указать в запросе для получения следующего пакета данных */ next?: Next; orders?: Order[]; }, Error | void >({ path: `/api/v3/orders`, method: "GET", query: query, secure: true, format: "json", ...params, }), /** * @description Возвращает статусы сборочных заданий по переданному списку идентификаторов сборочных заданий. **supplierStatus** - статус сборочного задания, триггером изменения которого является сам продавец.<br> Возможны следующие значения данного поля: | Статус | Описание | Как перевести сборочное задание в данный статус | | ------- | --------- | --------------------------------------| | new | <b>Новое сборочное задание</b> | | | confirm | <b>На сборке</b> <br> Для доставки силами Wildberries `fbs`<br> Для доставки силами продавца `dbs` | Для `fbs` — [добавить сборочное задание к поставке](https://openapi.wb.ru/marketplace/api/ru/#tag/Postavki/paths/~1api~1v3~1supplies~1%7BsupplyId%7D~1orders~1%7BorderId%7D/patch) <br> Для `dbs` — [перевести сборочное задание на сборку](https://openapi.wb.ru/marketplace/api/ru/#tag/Dostavka-silami-prodavca-(DBS)/paths/~1api~1v3~1orders~1%7Border%7D~1confirm/patch) | complete | <b>В доставке</b> <br> Для доставки силами Wildberries `fbs`<br> Для доставки курьером WB `wbgo` | Для `fbs` — [передать поставку в доставку](https://openapi.wb.ru/marketplace/api/ru/#tag/Postavki/paths/~1api~1v3~1supplies~1%7BsupplyId%7D~1deliver/patch) <br> Для `wbgo` — [перевести сборочное задание в доставку]() | cancel | <b>Отменено продавцом</b> | [Отменить сборочное задание](https://openapi.wb.ru/marketplace/api/ru/#tag/Sborochnye-zadaniya/paths/~1api~1v3~1orders~1%7BorderId%7D~1cancel/patch) | cancel_missed_call | <b>Отмена заказа по причине недозвона.</b><br> <br> Для доставки силами продавца `dbs` | Статус меняется автоматически | | deliver | **В доставке**<br> Для доставки силами продавца `dbs` | [Перевести сборочное задание в доставку](https://openapi.wb.ru/marketplace/api/ru/#tag/Dostavka-silami-prodavca-(DBS)/paths/~1api~1v3~1orders~1%7Border%7D~1deliver/patch) | receive | **Получено покупателем**<br> Для доставки силами продавца `dbs` и курьером WB `wbgo` | Для `dbs` — [Сообщить, что сборочное задание принято покупателем](https://openapi.wb.ru/marketplace/api/ru/#tag/Dostavka-silami-prodavca-(DBS)/paths/~1api~1v3~1orders~1{order}~1receive/patch) <br> Для `wbgo` — статус меняется автоматически | reject | **Отказ покупателя при получении**<br> Для доставки силами продавца `dbs` и курьером WB `wbgo` | Для `dbs` — [Сообщить, что покупательотказался от сборочного задания](https://openapi.wb.ru/marketplace/api/ru/#tag/Dostavka-silami-prodavca-(DBS)/paths/~1api~1v3~1orders~1%7Border%7D~1reject/patch) <br> Для `wbgo` — статус меняется автоматически **wbStatus** - статус сборочного задания в системе Wildberries.<br> Возможны следующие значения данного поля: - **waiting** - сборочное задание в работе - **sorted** - сборочное задание отсортировано - **sold** - сборочное задание получено покупателем - **canceled** - отмена сборочного задания - **canceled_by_client** - покупатель отменил заказ при получении - **declined_by_client** - покупатель отменил заказ в первый чаc <br> Отмена доступна покупателю в первый час с момента заказа, если заказ не переведён на сборку - **defect** - отмена сборочного задания по причине брака - **ready_for_pickup** - сборочное задание прибыло на ПВЗ - **canceled_by_missed_call** - отмена заказа по причине недозвона. Для схемы <b>"Доставка силами продавца `dbs`"</b> - **postponed_delivery** - курьерская доставка отложена * * @tags Сборочные задания * @name V3OrdersStatusCreate * @summary Получить статусы сборочных заданий * @request POST:/api/v3/orders/status * @secure */ v3OrdersStatusCreate: ( data: { /** * Список идентификаторов сборочных заданий * @maxItems 1000 * @minItems 1 */ orders: number[]; }, params: RequestParams = {}, ) => this.request< { orders?: { /** * Идентификатор сборочного задания * @format int64 * @example 5632423 */ id?: number; /** * Статус сборочного задания продавца (устанавливается продавцом) * @example "new" */ supplierStatus?: "new" | "confirm" | "complete" | "cancel"; /** Статус сборочного задания в системе Wildberries */ wbStatus?: "waiting" | "sorted" | "sold" | "canceled" | "canceled_by_client"; }[]; }, Error | void >({ path: `/api/v3/orders/status`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), /** * @description Возвращает все сборочные задания, требующие повторной отгрузки * * @tags Сборочные задания * @name V3SuppliesOrdersReshipmentList * @summary Получить все сборочные задания на повторную отгрузку * @request GET:/api/v3/supplies/orders/reshipment * @secure */ v3SuppliesOrdersReshipmentList: (params: RequestParams = {}) => this.request< { /** Список заказов */ orders?: { /** Идентификатор поставки */ supplyID?: any; /** Идентификатор сборочного задания */ orderID?: any; }[]; }, Error | void >({ path: `/api/v3/supplies/orders/reshipment`, method: "GET", secure: true, format: "json", ...params, }), /** * @description Переводит сборочное задание в статус **cancel** ("Отменено продавцом") * * @tags Сборочные задания * @name V3OrdersCancelPartialUpdate * @summary Отменить сборочное задание * @request PATCH:/api/v3/orders/{orderId}/cancel * @secure */ v3OrdersCancelPartialUpdate: (orderId: number, params: RequestParams = {}) => this.request<void, Error | void>({ path: `/api/v3/orders/${orderId}/cancel`, method: "PATCH", secure: true, ...params, }), /** * @description Метод позволяет закрепить за сборочным заданием маркировку Честного знака. <br> Закрепление маркировки за сборочным заданием возможно только в случае, если это поле возвращается в ответе метода <a href="./#tag/Sborochnye-zadaniya/paths/~1api~1v3~1orders~1{orderId}~1meta/get">Получить метаданные сборочного задания</a>, а сборочное задание находится в статусе `confirm`. <br> <br> Получить загруженные коды можно методом <a href="./#tag/Sborochnye-zadaniya/paths/~1api~1v3~1orders~1{orderId}~1meta/get">Получить метаданные сборочного задания</a> <br> С правилами работы с маркировкой Честного знака можно ознакомиться <a class="link" href="https://честныйзнак.рф">тут</a>: <br> <br> * * @tags Сборочные задания * @name V3OrdersMetaSgtinUpdate * @summary Закрепить за сборочным заданием код маркировки товара * @request PUT:/api/v3/orders/{orderId}/meta/sgtin * @secure */ v3OrdersMetaSgtinUpdate: ( orderId: number, data: { /** * Массив кодов маркировки. Допускается от 16 до 135 символов для кода одной маркировки. * @maxItems 24 * @minItems 1 */ sgtins?: string[]; }, params: RequestParams = {}, ) => this.request<void, Error | void>({ path: `/api/v3/orders/${orderId}/meta/sgtin`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), /** * @description Возвращает список этикеток по переданному массиву сборочных заданий. Можно запросить этикетку в формате svg, zplv (вертикальный), zplh (горизонтальный), png. **Ограничения при работе с методом**: - Нельзя запросить больше 100 этикеток за раз (не более 100 идентификаторов сборочных заданий в запросе). - Метод возвращает этикетки только для сборочных заданий, находящихся на сборке (в статусе **confirm**). - Доступные размеры: <dd>580x400 пикселей, при параметрах width = 58, height = 40</dd> <dd>400x300 пикселей, при параметрах width = 40, height = 30</dd> * * @tags Сборочные задания * @name V3OrdersStickersCreate * @summary Получить этикетки для сборочных заданий * @request POST:/api/v3/orders/stickers * @secure */ v3OrdersStickersCreate: ( query: { /** Тип этикетки */ type: "svg" | "zplv" | "zplh" | "png"; /** Ширина этикетки */ width: 58 | 40; /** Высота этикетки */ height: 40 | 30; }, data: { /** * Массив идентификаторов сборочных заданий * @maxItems 100 * @minItems 1 */ orders?: number[]; }, params: RequestParams = {}, ) => this.request< { stickers?: { /** * Идентификатор сборочного задания * @format int64 * @example 5346346 */ orderId?: number; /** * Первая часть идентификатора этикетки (для печати подписи) * @example 231648 */ partA?: number; /** * Вторая часть идентификатора этикетки * @example 9753 */ partB?: number; /** * Закодированное значение этикетки * @example "!uKEtQZVx" */ barcode?: string; /** * Полное представление этикетки в заданном формате. (кодировка base64) * @format byte * @example "PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0gR2VuZXJhdGVkIGJ5IFNWR28gLS0+Cjxzdmcgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQwMCIgaGVpZQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzE4IiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzI2IiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMzMwIiB5PSIyMCIgd2lkdGg9IjQiIGhlaWdodD0iMTcwIiBzdHlsZT0iZmlsbDpibGFjayIgLz4KPHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjM1MCIgaGVpZ2h0PSI5MCIgc3R5bGU9ImZpbGw6YmxhY2siIC8+Cjx0ZXh0IHg9IjMwIiB5PSIyNDAiIHN0eWxlPSJmaWxsOndoaXRlO2ZvbnQtc2l6ZTozMHB0O3RleHQtYW5jaG9yOnN0YXJ0IiA+MjMxNjQ4PC90ZXh0Pgo8dGV4dCB4PSIzNTAiIHk9IjI3MCIgc3R5bGU9ImZpbGw6d2hpdGU7Zm9udC1zaXplOjUwcHQ7dGV4dC1hbmNob3I6ZW5kIiA+OTc1MzwvdGV4dD4KPC9zdmc+Cg==" */ file?: string; }[]; }, Error | void >({ path: `/api/v3/orders/stickers`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), /** * @description Возвращает метаданные заказа. <br> Возможные метаданные: <br> **imei** <br> **uin** <br> **gtin** <br> **sgtin** <br> В ответе метода возвращаются метаданные, доступные для сборочного задания. Если ответ вернулся с пустой структурой **meta**, значит у сборочного задания нет метаданных, и добавление их не доступно * * @tags Сборочные задания * @name V3OrdersMetaDetail * @summary Получить метаданные сборочного задания * @request GET:/api/v3/orders/{orderId}/meta * @secure */ v3OrdersMetaDetail: (orderId: number, params: RequestParams = {}) => this.request< { /** Метаданные заказа */ meta?: Meta; }, void | Error >({ path: `/api/v3/orders/${orderId}/meta`, method: "GET", secure: true, format: "json", ...params, }), /** * @description Удаляет значение метаданных заказа для переданного ключа. <br> Возможные метаданные: <br> **imei** <br> **uin** <br> **gtin** <br> **sgtin** <br> Передается только одно значение. * * @tags Сборочные задания * @name V3OrdersMetaDelete * @summary Удалить метаданные сборочного задания * @request DELETE:/api/v3/orders/{orderId}/meta * @secure */ v3OrdersMetaDelete: ( orderId: number, query?: { /** Название метаданных для удаления (**imei**, **uin**, **gtin**, **sgtin**). Передается только одно значение. */