С 31 декабря push-API методы будут недоступны. С 1 октября они могут работать нестабильно.
Запросы, с помощью которых нужно передавать информацию:
- Об остатках — PUT campaigns/{campaignId}/offers/stocks.
- О точках продаж магазина — GET campaigns/{campaignId}/outlets.
Чтобы получать информацию о заказах, подключите API-уведомления. Как это сделать
Запрос информации о товарах
Маркет проверяет, что товары, которые покупатель сложил в корзину, есть в наличии в магазине. У DBS-магазинов запрашивается еще и информация о возможности доставки и доступных способах оплаты.
Таймаут на получение ответа: 5,5 секунд.
Request
POST
/cart
Body
application/json
{
"cart": {
"businessId": 0,
"currency": "RUR",
"deliveryCurrency": "RUR",
"buyer": {
"id": "string",
"lastName": "string",
"firstName": "string",
"middleName": "string",
"type": "PERSON"
},
"delivery": {
"region": {
"id": 0,
"name": "string",
"type": "OTHER",
"parent": {
"id": 0,
"name": "string",
"type": "OTHER"
}
},
"address": {
"country": "string",
"postcode": "string",
"city": "string",
"district": "string",
"subway": "string",
"street": "string",
"house": "string",
"block": "string",
"entrance": "string",
"entryphone": "string",
"floor": "string",
"apartment": "string",
"lat": 0,
"lon": 0,
"notes": "string",
"outletPhones": [
"string"
],
"schedule": [
{
"fromDay": "MONDAY",
"toDay": "MONDAY",
"fromTime": "string",
"toTime": "string"
}
]
},
"estimated": false
},
"items": [
{
"id": 0,
"feedId": 0,
"offerId": "string",
"feedCategoryId": "string",
"offerName": "string",
"price": 0,
"subsidy": 0,
"count": 0,
"shopSku": "string",
"warehouseId": 0,
"partnerWarehouseId": "string",
"fulfilmentShopId": 0,
"promos": [
{
"type": "DIRECT_DISCOUNT",
"subsidy": 0,
"marketPromoId": "string"
}
]
}
]
}
}
Name |
Description |
cart* |
Type: CartDTO Корзина. |
CartDTO
Корзина.
Name |
Description |
businessId |
Type: integer<int64> Идентификатор кабинета. |
buyer |
Type: object Информация о покупателе. Параметры |
currency |
Type: CurrencyType Валюта, в которой указаны цены на товары в заказе. Принимает значение Enum: |
delivery |
Type: CartDeliveryDTO Информация о доставке. |
deliveryCurrency |
Type: CurrencyType Только для модели DBS Валюта, в которой указаны цены на товары в заказе. Принимает значение Enum: |
items |
Type: CartItemDTO[] Товары в корзине. |
CurrencyType
Коды валют:
RUR
— российский рубль.UAH
— украинская гривна.BYR
— белорусский рубль.KZT
— казахстанский тенге.UZS
— узбекский сум.
Type |
Description |
Enum: |
CartDeliveryDTO
Информация о доставке.
Name |
Description |
address |
Type: DeliveryAddressWithoutPersonalDataDTO Только для модели DBS Адрес доставки. Передается, если покупатель уже указал адрес на Маркете.
|
estimated |
Type: boolean Только для модели DBS Признак, который показывает, что дата доставки по заказу не подтверждена. Передается для товаров на заказ с долгим сроком доставки (31–60 дней). Окончательную дату доставки нужно передать Маркету в течение 7 дней с даты оформления заказа в запросе PUT campaigns/{campaignId}/orders/{orderId}/delivery/date. |
region |
Type: ShopRegionDTO Регион доставки. |
CartItemDTO
Товары в корзине.
Name |
Description |
count |
Type: integer Количество единиц товара. |
feedCategoryId |
Type: string Идентификатор категории, указанный в каталоге. В ответе магазин не должен передавать этот идентификатор. Оставьте его пустым. |
feedId |
Type: integer<int64> Идентификатор каталога товаров. В ответе магазин должен указать тот же идентификатор. |
fulfilmentShopId |
Type: integer<int64> Только для модели DBS Идентификатор поставщика товара. Чтобы узнать его, войдите в кабинет продавца на Маркете и нажмите на его название. Идентификатор указан в поле ID магазина в строке нужного склада. |
id |
Type: integer<int64> Идентификатор товара в корзине. |
offerId |
Type: string Идентификатор вашего товарного предложения для определенного товара. Описание поля в Справке Маркета для продавцов Min length: Max length: Pattern: |
offerName |
Type: string Только для модели DBS Название товара. |
partnerWarehouseId ⦸
|
Type: string Только для модели FBS Идентификатор склада в системе магазина, на который сформирован заказ. |
price ⦸
|
Type: number<decimal> Цена на товар в валюте заказа без учета вознаграждения продавцу за скидки по промокодам, купонам и акциям (параметр |
promos |
Type: object[] Информация о вознаграждениях продавцу за скидки на товар по промокодам, купонам и акциям. |
shopSku |
Type: string Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Что такое SKU и как его назначать Min length: Max length: Pattern: |
subsidy ⦸
|
Type: number<decimal> Общее вознаграждение продавцу за все скидки на товар:
|
warehouseId |
Type: integer<int64> Только для модели FBS Идентификатор склада на Маркете. |
DeliveryAddressWithoutPersonalDataDTO
Адрес доставки. Передается, если параметр type
имеет значение DELIVERY
.
Name |
Description |
apartment |
Type: string Квартира или офис. |
block |
Type: string Корпус или строение. |
city |
Type: string Город или населенный пункт. Обязательный параметр. |
country |
Type: string Страна. Необязательный параметр, если выбрана доставка заказа в пункт выдачи Маркета. |
district |
Type: string Район. |
entrance |
Type: string Подъезд. |
entryphone |
Type: string Код домофона. |
floor |
Type: string Этаж. |
house |
Type: string Дом или владение. Обязательный параметр. |
lat |
Type: number<decimal> Широта. Параметр указывается, если покупатель выбрал доставку заказа в брендированный пункт выдачи Маркета. Не гарантируем заполнение, так как это опциональное поле. |
lon |
Type: number<decimal> Долгота. Параметр указывается, если покупатель выбрал доставку заказа в брендированный пункт выдачи Маркета. Не гарантируем заполнение, так как это опциональное поле. |
notes |
Type: string Примечание к адресу. Например, Параметр указывается, если покупатель выбрал доставку заказа в брендированный пункт выдачи Маркета. |
outletPhones |
Type: string[] Телефоны пункта выдачи в формате Параметр указывается, если покупатель выбрал доставку заказа в брендированный пункт выдачи Маркета.
|
postcode |
Type: string Почтовый индекс. Указывается, если выбрана доставка почтой ( |
schedule |
Type: ShopOutletScheduleItemDTO[] Расписание работы пункта выдачи. Параметр указывается, если покупатель выбрал доставку заказа в брендированный пункт выдачи Маркета.
|
street |
Type: string Улица. |
subway |
Type: string Станция метро. |
ShopRegionDTO
Регион доставки.
Name |
Description |
name* |
Type: string Название региона. |
type* |
Type: ShopRegionType Тип региона. Enum: |
id |
Type: integer<int64> Идентификатор региона. |
parent |
Type: ShopRegionDTO Информация о родительском регионе. Указываются родительские регионы до уровня страны. |
ShopOutletScheduleItemDTO
Расписание работы точки продаж.
Name |
Description |
fromDay* |
Type: DayOfWeekType День недели, в который пункт выдачи начинает работать:
Обязательный параметр. Enum: |
fromTime* |
Type: string Время начала работы пункта выдачи. Формат времени: 24-часовой, Обязательный параметр. Min length: |
toDay* |
Type: DayOfWeekType День недели, в который пункт выдачи заканчивает работать:
Обязательный параметр. Enum: |
toTime* |
Type: string Время окончания работы пункта выдачи. Формат времени: 24-часовой, Обязательный параметр. Min length: |
ShopRegionType
Тип региона:
-
CITY_DISTRICT
— район города. -
CITY
— крупный город. -
CONTINENT
— континент. -
COUNTRY_DISTRICT
— федеральный округ. -
COUNTRY
— страна. -
REGION
— регион. -
METRO_STATION
— станция метро. -
MONORAIL_STATION
— станция монорельса. -
OVERSEAS_TERRITORY
— отдельная территория какого-либо государства, расположенная в другой части света (например, Ангилья, Гренландия, Бермудские острова и т. д.). -
SECONDARY_DISTRICT
— район города второго уровня (например, для ВАО Москвы районами второго уровня являются Измайлово, Новокосино, Перово и т. д.). -
SETTLEMENT
— поселение. -
SUBJECT_FEDERATION
— субъект федерации. -
SUBJECT_FEDERATION_DISTRICT
— район субъекта федерации. -
VILLAGE
— город. -
SUBURB
— пригород. -
OTHER
— неизвестный регион.
Type |
Description |
Enum: |
DayOfWeekType
День недели:
MONDAY
— понедельник.TUESDAY
— вторник.WEDNESDAY
— среда.THURSDAY
— четверг.FRIDAY
— пятница.SATURDAY
— суббота.SUNDAY
— воскресенье.
Type |
Description |
Enum: |
Responses
200 OK
Актуальные данные о доступности товаров для переданной корзины и указанного региона доставки.
- Как передавать данные по товарам в разных ситуациях
-
Магазин не доставляет заказы в переданный регион или по адресу покупателя (DBS)
Укажите пустые опции доставки:
"deliveryOptions": []
. В параметреitems
для каждого товара параметрdelivery
передавать необязательно.В корзине есть товары, которые магазин не доставляет в переданный регион или по адресу покупателя (DBS)
Для таких товаров укажите
"delivery": false
в параметреitems
.Товар отсутствует в продаже (DBS)
Укажите для товара параметр
"count": 0
. Если все товары из корзины отсутствуют в продаже, передайте параметрitems
пустым.Вы получили информацию, что товар отсутствует в продаже
Через 10–15 минут это предложение перестает отображаться на Маркете по модели DBS до следующего обновления данных на сервисе (индексация происходит каждые 4 часа).
Товара сейчас нет в наличии
Укажите параметр
count="0"
, вложенный в параметрitems
. Если все товары из корзины отсутствуют в продаже, передайте параметрitems
пустым.Пример
Для удобства чтения пример кода приведен в сокращенном формате.
{ "cart": { "items": [ { "feedId": {int64}, "offerId": "{string}", "count": {int32}, "delivery": {boolean} }, ... ] } }
- Как передавать информацию о доставке в пункты самовывоза (DBS)
-
Укажите в параметре
outlets
идентификаторы всех пунктов самовывоза, в которых товар уже есть в наличии и в которые вы можете доставить товар, если его там еще нет. Нужно указать все подходящие пункты самовывоза в регионе, указанном в запросе в параметреregion
(в том числе в случае, если параметр содержит неполный адрес: например, только город или район в области).Если условия доставки для разных пунктов самовывоза отличаются (например, в одни пункты заказ будет доставлен завтра, а в другие — послезавтра), в параметре
deliveryOptions
укажите по одному вложенному параметру для каждой группы пунктов с одинаковыми условиями и в каждом из них перечислите подходящие пункты. - Как передавать данные о цифровых товарах (DBS)
-
Если вы отключили работу с методом
POST cart
, передавать данные не нужно. - Что передавать в качестве цены доставки (DBS)
-
На Маркете действует единый тариф на доставку для покупателей. Стоимость доставки подставляется автоматически из единой тарифной сетки. Можно передавать любое число — данные о стоимости доставки, переданные через API, не учитываются. Подробно о едином тарифе рассказано в Справке Маркета для продавцов.
- Диапазоны дат и интервалы доставки (DBS)
-
Укажите в параметрах
fromDate
иtoDate
, вложенных вdates
, самую раннюю и самую позднюю возможные даты доставки соответственно, а в параметреintervals
— даты и (для курьерской доставки при возможности) интервалы доставки, между которыми сможет выбрать пользователь.Набор параметров, вложенных в
dates
, зависит от способа доставки заказа:- Для заказов со способом доставки курьером (
"type": "DELIVERY"
) следует передавать либо все три параметра (fromDate
,toDate
,intervals
), либо только раннюю дату доставки (fromDate
). - Для заказов со способом доставки самовывозом (
"type": "PICKUP"
) следует передавать только параметрыfromDate
иtoDate
. Параметрintervals
для таких заказов передавать нельзя.
Пример
Для удобства чтения пример кода приведен в сокращенном формате.
Что вы передадите в ответе на
POST cart
Что сможет выбрать пользователь
"type": "DELIVERY", "dates": { "fromDate": "10-03-2021" }
10 марта, 00:00–23:59
"type": "PICKUP", "dates": { "fromDate": "01-03-2021", "toDate": "03-03-2021" }
1 марта, 00:00 — 3 марта, 23:59
- Для заказов со способом доставки курьером (
Body
application/json
{
"cart": {
"paymentMethods": [
"SHOP_PREPAID"
],
"deliveryCurrency": "RUR",
"items": [
{
"feedId": 0,
"offerId": "string",
"count": 0,
"delivery": false,
"sellerInn": "string"
}
],
"deliveryOptions": [
{
"id": "string",
"price": 0,
"serviceName": "string",
"type": "DELIVERY",
"dates": {
"fromDate": "23-09-2022",
"toDate": "23-09-2022",
"intervals": [
{
"date": "23-09-2022",
"fromTime": "string",
"toTime": "string"
}
]
},
"outlets": [
{
"code": "string"
}
],
"paymentMethods": [
"SHOP_PREPAID"
]
}
]
}
}
Name |
Description |
cart* |
Type: CartResponseDTO Корзина. |
CartResponseDTO
Name |
Description |
deliveryCurrency |
Type: CurrencyType Только для модели DBS Валюта, в которой указаны цены на товары в заказе. Принимает значение Enum: |
deliveryOptions |
Type: CartResponseDeliveryOptionDTO[] Только для модели DBS Опции доставки, доступные для корзины.
|
items |
Type: CartResponseItemDTO[] Товары в корзине. |
paymentMethods |
Type: string[] Способ оплаты заказа:
Значение по умолчанию: Enum: |
CartResponseDeliveryOptionDTO
Name |
Description |
serviceName* |
Type: string Наименование службы доставки. Обязательный параметр. Максимальная длина: 50 символов. |
dates |
Type: CartResponseDeliveryDatesDTO Диапазон дат доставки. Максимальное количество дат — 7. Max items: |
id |
Type: string Идентификатор опции доставки, присвоенный магазином. Если идентификатор указан, он будет передан обратно магазину в запросе POST order/accept. Максимальная длина: 50 символов. |
outlets |
Type: CartResponseOutletDTO[] Пункты самовывоза. Указывается, если выбран самовывоз ( |
paymentMethods |
Type: string[] Способ оплаты заказа:
Значение по умолчанию: Enum: |
price |
Type: number<decimal> Стоимость доставки в валюте заказа. C 1 июля 2021 вводятся единые тарифы на доставку для покупателей. Стоимость доставки будет одинакова независимо от того, кто доставляет заказ: Маркет или сам продавец. Она подставится автоматически из единой тарифной сетки. Данные о стоимости доставки, переданные через API, не будут учитываться. При этом все так же необходимо передавать Маркету информацию о сроках доставки. Подробнее в Справке Маркета для продавцов |
type |
Type: OrderDeliveryType Способ доставки заказа:
Enum: |
CartResponseItemDTO
Name |
Description |
count |
Type: integer Количество товара, которое доступно для заказа. Какое значение передавать: В запросе в параметре В зависимости от наличия верните:
Если вы подключали через поддержку опцию игнорирования остатков, верните любое значение, в том числе |
delivery |
Type: boolean Только для модели DBS Доставка товара в указанный в запросе регион:
|
feedId |
Type: integer<int64> Идентификатор каталога товаров. Нужно указать тот же идентификатор, что и в запросе от Маркета. |
offerId |
Type: string Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Что такое SKU и как его назначать Min length: Max length: Pattern: |
sellerInn |
Type: string Только для модели DBS ИНН продавца товара. |
CartResponseDeliveryDatesDTO
Name |
Description |
fromDate |
Type: string<date-dd-MM-yyyy> Ближайшая возможная дата доставки. Формат даты: Дата должна быть не ранее текущей даты и не позднее 31 календарного дня от текущей даты. Example: |
intervals |
Type: CartResponseDeliveryIntervalDTO[] Список возможных дат и интервалов времени доставки в указанный день. В параметре можно указать до 7 интервалов для каждой даты. Параметр обязателен для курьерской доставки ( Max items: |
toDate |
Type: string<date-dd-MM-yyyy> Самая поздняя дата доставки. Формат: Example: |
CartResponseOutletDTO
Name |
Description |
code* |
Type: string Идентификатор пункта самовывоза, присвоенный магазином. Если указан несуществующий идентификатор, такой пункт самовывоза не выводится покупателю при оформлении заказа. |
OrderDeliveryType
Способ доставки заказа:
-
DELIVERY
— курьерская доставка. -
PICKUP
— самовывоз. -
POST
— почта. -
DIGITAL
— для цифровых товаров. -
UNKNOWN
— неизвестный тип.
Type |
Description |
Enum: |
CartResponseDeliveryIntervalDTO
Name |
Description |
fromTime* |
Type: string<time> Начало интервала времени доставки. Обязательный параметр.
Формат времени: 24-часовой, |
toTime* |
Type: string<time> Конец интервала времени доставки. Обязательный параметр.
Формат времени: 24-часовой, |
date |
Type: string<date-dd-MM-yyyy> Возможная дата доставки. Формат даты: Example: |
400 Bad Request
Если магазин считает запрос, поступающий от Маркета, некорректным, магазин должен вернуть статус ответа 400 с описанием причины ошибки в теле ответа. Такие ответы будут анализироваться на предмет нарушений и недоработок API со стороны Маркета.
500 Internal Server Error
В случае технической ошибки на стороне магазина он должен вернуть статус ответа 500. Магазины с большим количеством таких ответов могут быть отключены от Маркета.
No longer supported, please use an alternative and newer version.