Запрос информации о товарах
Модель FBS: не используйте метод POST cart
. Эта возможность отключена.
Модель DBS: не используйте метод POST cart
. Отключите эту возможность в кабинете — в левом нижнем углу нажмите на название своего бизнеса, перейдите на страницу Настройки API во вкладку Получение запросов от Маркета и активируйте опцию Не использовать метод POST cart.
Запросы, с помощью которых нужно передавать информацию:
- Об остатках — PUT campaigns/{campaignId}/offers/stocks.
- О точках продаж магазина — GET campaigns/{campaignId}/outlets.
Маркет проверяет, что товары, которые покупатель сложил в корзину, есть в наличии в магазине. У 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
Коды валют. Возможные значения:
BYR
— белорусский рубль.KZT
— казахстанский тенге.RUR
— российский рубль.UAH
— украинская гривна.
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: OrderItemPromoDTO[] Информация о вознаграждениях партнеру за скидки на товар по промокодам, купонам и акциям. |
shopSku |
Type: string Ваш SKU — идентификатор товара в вашей системе. Разрешена любая последовательность длиной до 255 знаков. Правила использования 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 Информация о родительском регионе. Указываются родительские регионы до уровня страны. |
OrderItemPromoDTO
Информация о вознаграждениях партнеру за скидки на товар по промокодам, купонам и акциям.
Name |
Description |
type* |
Type: OrderPromoType Тип скидки. Enum: |
marketPromoId |
Type: string Идентификатор акции в рамках соглашения на оказание услуг по продвижению сервиса между Маркетом и партнером. Параметр передается, только если параметр |
subsidy |
Type: number<decimal> Вознаграждение партнеру от Маркета за товар, проданный в рамках акции. Передается в валюте заказа. |
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: |
OrderPromoType
Тип скидки:
-
DIRECT_DISCOUNT
— прямая скидка, которую устанавливает продавец или Маркет. -
BLUE_SET
— комплекты. -
BLUE_FLASH
— флеш-акция. -
MARKET_COUPON
— скидка по промокоду Маркета. -
MARKET_PROMOCODE
— скидка по промокоду магазина. -
MARKET_BLUE
— скидка на Маркете. -
YANDEX_PLUS
— бесплатная доставка с подпиской Яндекс Плюс. -
YANDEX_EMPLOYEE
— бесплатная доставка по определенным адресам. -
LIMITED_FREE_DELIVERY_PROMO
— бесплатная доставка по ограниченному предложению. -
FREE_DELIVERY_THRESHOLD
— бесплатная доставка при достижении определенной суммы заказа. -
MULTICART_DISCOUNT
— скидка за то, что оформлена мультикорзина. -
FREE_DELIVERY_FOR_LDI
— бесплатная доставка за то, что один из товаров крупногабаритный. -
FREE_DELIVERY_FOR_LSC
— бесплатная доставка за то, что одна из корзин в мультикорзине крупногабаритная. -
FREE_PICKUP
— бесплатная доставка в пункт выдачи заказов. -
CHEAPEST_AS_GIFT
— самый дешевый товар в подарок. -
CASHBACK
— кешбэк. -
SUPPLIER_MULTICART_DISCOUNT
— скидка за доставку. -
SPREAD_DISCOUNT_COUNT
— скидка за количество одинаковых товаров. -
SPREAD_DISCOUNT_RECEIPT
— скидка от суммы чека. -
ANNOUNCEMENT_PROMO
— информационная акция, скидка не применяется к товарам. -
DISCOUNT_BY_PAYMENT_TYPE
— прямая скидка при оплате картой Плюса. -
PERCENT_DISCOUNT
— прямая скидка в процентах. -
DCO_EXTRA_DISCOUNT
— дополнительная скидка, необходимая для расчета субсидии от Маркета. -
EMPTY_PROMO
— скрытые промокоды. -
BLOCKING_PROMO
— блокирующее промо. -
UNKNOWN
— неизвестный тип.
Устаревшие типы:
-
GENERIC_BUNDLE
. -
MARKET_DEAL
. -
MARKET_PRIME
. -
MARKET_COIN
. -
BERU_PLUS
. -
PRICE_DROP_AS_YOU_SHOP
. -
SECRET_SALE
.
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: OrderPaymentMethodType[] Способ оплаты заказа:
Значение по умолчанию: 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: OrderPaymentMethodType[] Только для модели DBS Способ оплаты заказа:
Значение по умолчанию: Enum: |
price |
Type: number<decimal> Стоимость доставки в валюте заказа. C 1 июля 2021 вводятся единые тарифы на доставку для покупателей. Стоимость доставки будет одинакова независимо от того, кто доставляет заказ: Маркет или сам продавец. Она подставится автоматически из единой тарифной сетки. Данные о стоимости доставки, переданные по API, не будут учитываться. При этом все так же необходимо передавать Маркету информацию о сроках доставки. Подробнее в Справке Маркета для продавцов |
type |
Type: OrderDeliveryType Способ доставки заказа:
Enum: |
CartResponseItemDTO
Name |
Description |
count |
Type: integer Количество товара, которое доступно для заказа. Необязательно указывать точное количество, но важно указать то количество, которое гарантированно доступно для заказа. Если товара нет в наличии, то необходимо указывать 0. |
delivery |
Type: boolean Только для модели DBS Доставка товара в указанный в запросе регион:
|
feedId |
Type: integer<int64> Идентификатор каталога товаров. Нужно указать тот же идентификатор, что и в запросе от Маркета. |
offerId |
Type: string Идентификатор вашего товарного предложения для определенного товара. Описание поля в Справке Маркета для продавцов Min length: Max length: Pattern: |
sellerInn |
Type: string Только для модели DBS ИНН продавца товара. |
OrderPaymentMethodType
Способ оплаты заказа:
-
Значения, если выбрана оплата при оформлении заказа (
"paymentType": "PREPAID"
):-
YANDEX
— банковской картой. -
APPLE_PAY
— Apple Pay. -
GOOGLE_PAY
— Google Pay. -
CREDIT
— в кредит. -
TINKOFF_CREDIT
— в кредит в Тинькофф Банке. -
TINKOFF_INSTALLMENTS
— рассрочка в Тинькофф Банке. -
EXTERNAL_CERTIFICATE
— подарочным сертификатом (например, из приложения «Сбербанк Онлайн»). -
SBP
— через систему быстрых платежей. -
B2B_ACCOUNT_PREPAYMENT
— заказ оплачивает организация.
-
-
Значения, если выбрана оплата при получении заказа (
"paymentType": "POSTPAID"
):-
CARD_ON_DELIVERY
— банковской картой. -
BOUND_CARD_ON_DELIVERY
— привязанной картой при получении. -
CASH_ON_DELIVERY
— наличными. -
B2B_ACCOUNT_POSTPAYMENT
— заказ оплачивает организация после доставки.
-
-
UNKNOWN
— неизвестный тип.
Значение по умолчанию: CASH_ON_DELIVERY
.
Type |
Description |
Enum: |
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. Магазины с большим количеством таких ответов могут быть отключены от Маркета.