Запрос информации о товарах
- Описание
- Передаваемые магазину данные
- Ответные данные от магазина
- Как передавать данные по товарам в разных ситуациях
- Как передавать информацию о доставке в пункты самовывоза (DBS)
- Как передавать данные о цифровых товарах (DBS)
- Что передавать в качестве цены доставки (DBS)
- Диапазоны дат и интервалы доставки (DBS)
- Параметры, вложенные в cart
- Параметры, вложенные в items
- Параметры, вложенные в deliveryOptions
- Параметры, вложенные в dates
- Параметры, вложенные в intervals
- Параметры, вложенные в outlets
- Описание ошибок
- Примеры
Описание
POST cart
С помощью этого запроса Маркет убеждается, что товары, которые покупатель сложил в корзину, в самом деле в наличии в магазине. У DBS-магазинов запрашивается не только наличие, но и информация о возможностях доставки и доступных способах оплаты.
⚠️ Если вы продаете цифровые товары, обязательно прочтите инструкцию.
URL ресурса:
https://<URL_запроса>/cart
Таймаут на получение ответа: 5,5 секунд.
Передаваемые магазину данные
Структура данных в теле запроса приведена ниже. Порядок следования параметров не гарантируется.
{
"cart":
{
"businessId": {int64},
"currency": "{enum}",
"delivery":
{
"region":
{
"id": {int32},
"name": "{string}",
"type": "{enum}",
"parent":
{
"id": {int32},
"name": "{string}",
"type": "{enum}",
"parent":
{
...
}
}
}
},
"items":
[
{
"count": {int32},
"feedId": {int64},
"offerId": "{string}",
"warehouseId": {int64},
"partnerWarehouseId": "{string}",
"categoryId": {int64},
"feedCategoryId": "{string}"
},
...
]
}
}
{
"cart":
{
"businessId": {int64},
"currency": "{enum}",
"deliveryCurrency": "{enum}",
"delivery":
{
"estimated": {boolean},
"region":
{
"id": {int32},
"name": "{string}",
"type": "{enum}",
"parent":
{
"id": {int32},
"name": "{string}",
"type": "{enum}",
"parent":
{
...
}
}
},
"address":
{
"country": "{string}",
"city": "{string}",
"subway": "{string}",
"street": "{string}",
"house": "{string}",
"block": "{string}",
"floor": "{string}"
}
},
"items":
[
{
"feedId": {int64},
"offerId": "{string}",
"count": {int32},
"offerName": "{string}",
"feedCategoryId": "{string}",
"fulfilmentShopId": {int64}
},
...
]
}
}
|
Параметр |
Тип |
Значение |
|
|
Корзина. |
Параметры, вложенные в cart
|
Параметр |
Тип |
Значение |
|
|
Int64 |
Идентификатор бизнеса-аккаунта. |
|
|
Enum |
Валюта, в которой выражены цены товаров в заказе:
|
|
DBS |
Enum |
Валюта, в которой выражены цены товаров в заказе:
|
|
|
Информация о доставке. |
|
|
|
Товары в корзине. |
Параметры, вложенные в delivery
|
Параметр |
Тип |
Значение |
|
|
Регион доставки. |
|
|
DBS |
Адрес доставки. Передается, если покупатель уже указал адрес на Маркете. |
|
|
DBS |
Boolean |
Признак, показывающий, что дата доставки по заказу не подтверждена. Передается для товаров на заказ с долгим сроком доставки (31-60 дней). Окончательную дату доставки нужно передать Маркету в течение 7 дней с даты оформления заказа в запросе PUT campaigns/{campaignId}/orders/{orderId}/delivery/date. |
Параметры, вложенные в region
|
Параметр |
Тип |
Значение |
|
|
Int32 |
Идентификатор региона. |
|
|
String |
Название региона. |
|
|
Enum |
Тип региона. Возможные значения:
|
|
|
|
Родительский регион. Указываются родительские регионы до уровня страны включительно ( |
Параметры, вложенные в address
|
Параметр |
Тип |
Значение |
|
|
String |
Страна |
|
|
String |
Город или населенный пункт |
|
|
String |
Станция метро |
|
|
String |
Улица |
|
|
String |
Дом или владение |
|
|
String |
Корпус или строение |
|
|
String |
Этаж |
|
|
Double |
Широта. Не гарантируем заполнение, так как это опциональное поле. |
|
|
Double |
Долгота. Не гарантируем заполнение, так как это опциональное поле. |
Параметры, вложенные в items
|
Параметр |
Тип |
Значение |
|
|
Int64 |
Идентификатор каталога товаров. В ответе магазин должен указать тот же идентификатор |
|
|
String |
Идентификатор вашего товарного предложения для определенного товара. Описание в Справке для продавцов |
|
|
Int32 |
Количество товара. |
|
|
Int64 |
Идентификатор склада на Маркете. |
|
|
String |
Идентификатор склада в системе партнера. Параметр устарел, временно поддерживается, но не доступен для ввода и редактирования. |
|
|
Int64 |
Идентификатор товарной категории Маркета. В ответе магазин не должен передавать этот идентификатор. Оставьте его пустым. |
|
|
String |
Идентификатор товарной категории из прайс-листа. В ответе магазин не должен передавать этот идентификатор. Оставьте его пустым. |
|
Параметр |
Тип |
Значение |
|
|
Int64 |
Идентификатор каталога товаров. В ответе магазин должен указать тот же идентификатор |
|
|
String |
Идентификатор вашего товарного предложения для определенного товара. Описание в Справке для продавцов |
|
|
String |
Название товара. |
|
|
String |
Идентификатор категории, указанной в каталоге. |
|
|
Int64 |
Идентификатор поставщика товара. Чтобы узнать его, войдите в личный кабинет магазина и нажмите на его название. Идентификатор указан в поле ID магазина в строке нужного склада. |
|
|
Int32 |
Количество товара. |
Ответные данные от магазина
В ответе магазин должен передать актуальные данные для переданной корзины товаров и указанного региона доставки.
{
"cart":
{
"items":
[
{
"feedId": {int64},
"offerId": "{string}",
"count": {int32}
},
...
]
}
}
{
"cart":
{
"deliveryCurrency": "{enum}",
"deliveryOptions":
[
{
"id": "{string}",
"price": {double},
"serviceName": "{string}",
"type": "{enum}",
"dates":
{
"fromDate": "{date}",
"toDate": "{date}",
"intervals":
[
{
"date": "{date}",
"fromTime": "{time}",
"toTime": "{time}"
},
...
]
},
"outlets":
[
{
"code": "{string}"
},
...
],
"paymentMethods":
[
"{enum}",
...
]
},
...
],
"items":
[
{
"feedId": {int64},
"offerId": "{string}",
"delivery": {boolean},
"count": {int32}
"sellerInn": "{string}"
},
...
],
"paymentMethods":
[
"{enum}",
...
]
}
}
Как передавать данные по товарам в разных ситуациях
В переданный регион или адрес покупателя магазин не доставляет заказы (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)
В ответе на запрос от Маркета укажите следующие значения для параметров, вложенных в deliveryOptions:
- Тип доставки
"type": "DIGITAL". Это единственный доступный тип доставки для цифровых товаров. - Дата доставки – текущий день. (Параметр
fromDate, вложенный вdates). - Наименование службы доставки – «Доставка на электронную почту». (Параметр
serviceName). - Способ оплаты – предоплата (
YANDEX,APPLE_PAY,GOOGLE_PAY,TINKOFF_CREDIT,TINKOFF_INSTALLMENTS,SBP).
Для удобства чтения пример кода приведен в сокращенном формате.
{
...
"deliveryOptions":
[
{
"id": "{string}",
"price": 0,
"serviceName": "Доставка на электронную почту",
"type": "DIGITAL",
"dates": {
"fromDate": "{date}",
},
"paymentMethods": [
"YANDEX",
"APPLE_PAY",
"GOOGLE_PAY",
"TINKOFF_CREDIT",
"TINKOFF_INSTALLMENTS",
"SBP"
]
}
],
...
}
Что передавать в качестве цены доставки (DBS)
На Маркете действует единый тариф на доставку для покупателей. Стоимость доставки подставляется автоматически из единой тарифной сетки. Можно передавать любое число — данные о стоимости доставки, переданные по API, не учитываются. Подробно о едином тарифе рассказано в Справке для продавцов.
Диапазоны дат и интервалы доставки (DBS)
Укажите в параметрах fromDate и toDate, вложенных в dates, самую раннюю и самую позднюю возможные даты доставки соответственно, а в параметре intervals — даты и (для курьерской доставки при возможности) интервалы доставки, между которыми сможет выбрать пользователь.
Набор параметров, вложенных в dates, зависит от способа доставки заказа:
- Для заказов со способом доставки курьером (
"type": "DELIVERY") следует передавать либо все три параметра (fromDate,toDate,intervals), либо только раннюю дату доставки (fromDate). - Для заказов со способом доставки самовывозом (
"type": "PICKUP") следует передавать только параметрыfromDateиtoDate. Параметрintervalsдля таких заказов передавать нельзя.
Для удобства чтения пример кода приведен в сокращенном формате.
|
Что вы передадите в ответе на |
Что сможет выбрать пользователь |
|
10 марта, 00:00–23:59 |
|
1 марта, 00:00 — 3 марта, 23:59 |
Описание параметров:
|
Параметр |
Тип |
Значение |
|
|
Корзина. |
Параметры, вложенные в cart
|
Параметр |
Тип |
Значение |
|
|
Товары в корзине. |
|
|
DBS |
Enum |
Валюта, в которой выражены цены товаров в заказе:
|
|
DBS |
Опции доставки, доступные для корзины. |
|
|
DBS |
Enum |
Способы оплаты, доступные для всех товаров в корзине:
|
Параметры, вложенные в items
|
Параметр |
Тип |
Значение |
|
|
Int64 |
Идентификатор каталога товаров. Нужно указать тот же идентификатор, что и в запросе от Маркета. |
|
|
String |
Идентификатор вашего товарного предложения для определенного товара. Описание в Справке для продавцов |
|
|
Int32 |
Количество товара, которое доступно для заказа. Необязательно указывать точное количество, но важно указать то количество, которое гарантированно доступно для заказа. Если товара нет в наличии, то необходимо указывать 0. |
|
DBS |
Boolean |
Доставка товара в указанный в запросе регион:
|
|
sellerInn DBS |
String |
ИНН продавца товара |
Параметры, вложенные в deliveryOptions
|
Параметр |
Тип |
Значение |
|
|
String |
Идентификатор опции доставки, присвоенный магазином. Если идентификатор указан, он будет передан обратно магазину в запросе POST order/accept. Максимальная длина: 50 символов. |
|
|
Double |
Стоимость доставки в валюте заказа. Для отделения целой части от дробной используется точка. C 1 июля 2021 вводятся единые тарифы на доставку для покупателей. Стоимость доставки будет одинакова независимо от того, кто доставляет заказ: Маркет или сам продавец. Она подставится автоматически из единой тарифной сетки. Данные о стоимости доставки, переданные по API, не будут учитываться. При этом все так же необходимо передавать Маркету информацию о сроках доставки. Подробнее в Справке для продавцов. |
|
|
String |
Наименование службы доставки. Обязательный параметр. Максимальная длина: 50 символов. |
|
|
Enum |
Способ доставки заказа. Возможные значения:
|
|
|
Диапазон дат доставки. |
|
|
|
Пункты самовывоза. Указывается, если выбран самовывоз ( |
|
|
|
Enum |
Способы оплаты, доступные для указанного вида доставки:
|
Параметры, вложенные в dates
|
Параметр |
Тип |
Значение |
|
|
Date |
Ближайшая возможная дата доставки. Формат даты: |
|
|
Date |
Самая поздняя дата доставки. Формат: |
|
|
Список возможных дат и интервалов времени доставки в указанный день. В параметре можно указать до 5 интервалов для каждой даты. Параметр обязателен для курьерской доставки ( |
Параметры, вложенные в intervals
|
Параметр |
Тип |
Значение |
|
|
Date |
Возможная дата доставки. Формат даты: |
|
|
Time |
Начало интервала времени доставки. Обязательный параметр. Формат времени: 24-часовой, |
|
|
Time |
Конец интервала времени доставки. Обязательный параметр. Формат времени: 24-часовой, |
Параметры, вложенные в outlets
|
Параметр |
Тип |
Значение |
|
|
String |
Идентификатор пункта самовывоза, присвоенный магазином. Если указан несуществующий идентификатор, такой пункт самовывоза не выводится покупателю при оформлении заказа. |
Описание ошибок
Магазин может вернуть следующие статусы ответов:
|
Описание |
Пояснение: |
|
Ошибка |
Если магазин считает запрос, поступающий от Маркета, некорректным, магазин должен вернуть статус ответа 400 с описанием причины ошибки в теле ответа. Такие ответы будут анализироваться на предмет нарушений и недоработок API со стороны Маркета. |
|
Ошибка |
В случае технической ошибки на стороне магазина он должен вернуть статус ответа 500. Магазины с большим количеством таких ответов могут быть отключены от Маркета. |
Примеры
Запрос
{
"cart":
{
"businessId": 8085591,
"currency": "RUR",
"delivery":
{
"region":
{
"id": 213,
"name": "Москва",
"type": "CITY",
"parent":
{
"id": 1,
"name": "Москва и Московская область",
"type": "SUBJECT_FEDERATION",
"parent":
{
"id": 3,
"name": "Центральный федеральный округ",
"type": "COUNTRY_DISTRICT",
"parent":
{
"id": 225,
"name": "Россия",
"type": "COUNTRY"
}
}
}
}
},
"items":
[
{
"feedId": 12345,
"offerId": "4609283881",
"count": 3,
"warehouseId": 12345,
"partnerWarehouseId": "67890"
},
{
"feedId": 12346,
"offerId": "4607632101",
"count": 1,
"warehouseId": 12345,
"partnerWarehouseId": "67890"
}
]
}
}
Ответ
HTTP/1.1 200 OK
...
{
"cart":
{
"items":
[
{
"feedId": 12345,
"offerId": "4609283881",
"count": 3
},
{
"feedId": 12346,
"offerId": "4607632101",
"count": 1
}
]
}
}
Запрос
{
"cart":
{
"businessId": 8085591,
"currency": "RUR",
"deliveryCurrency": "RUR",
"delivery":
{
"region":
{
"id": 213,
"name": "Москва",
"type": "CITY",
"parent":
{
"id": 1,
"name": "Москва и Московская область",
"type": "SUBJECT_FEDERATION",
"parent":
{
"id": 3,
"name": "Центральный федеральный округ",
"type": "COUNTRY_DISTRICT",
"parent":
{
"id": 225,
"name": "Россия",
"type": "COUNTRY"
}
}
}
},
"address":
{
"country": "Россия",
"city": "Москва",
"subway": "Проспект Вернадского",
"street": "Ленинский проспект",
"house": "90",
"floor": "6"
}
},
"items":
[
{
"feedId": 12345,
"offerId": "4609283881",
"offerName": "Чайник электрический 100 W",
"feedCategoryId": "35",
"fulfilmentShopId": 1234567,
"count": 1
},
{
"feedId": 12346,
"offerId": "4607632101",
"offerName": "Тостер",
"feedCategoryId": "35",
"fulfilmentShopId": 1234567,
"count": 1
}
]
}
}
Ответ
HTTP/1.1 200 OK
...
{
"cart":
{
"deliveryCurrency": "RUR",
"deliveryOptions":
[
{
"id": "1",
"price": 100,
"serviceName": "DPD",
"type": "DELIVERY",
"dates":
{
"fromDate": "15-09-2020",
"toDate": "17-09-2020",
"intervals":
[
{
"date": "15-09-2020",
"fromTime": "09:00",
"toTime": "21:00"
},
{
"date": "16-09-2020",
"fromTime": "09:00",
"toTime": "21:00"
},
{
"date": "17-09-2020",
"fromTime": "09:00",
"toTime": "21:00"
}
]
}
},
{
"price": 0,
"serviceName": "PickPoint",
"type": "PICKUP",
"dates":
{
"fromDate": "15-09-2020",
"toDate": "18-09-2020"
},
"outlets":
[
{
"code": "9"
},
{
"code": "10"
},
{
"code": "12"
}
]
},
{
"price": 0,
"serviceName": "PickPoint",
"type": "PICKUP",
"dates":
{
"fromDate": "16-09-2020",
"toDate": "19-09-2020"
},
"outlets":
[
{
"code": "11"
}
]
}
],
"items":
[
{
"feedId": 12345,
"offerId": "4609283881",
"delivery": true,
"count": 1,
"sellerInn ": "0123456789"
},
{
"feedId": 12346,
"offerId": "4607632101",
"delivery": true,
"count": 1,
"sellerInn ": "0123456789"
}
],
"paymentMethods":
[
"YANDEX",
"CARD_ON_DELIVERY",
"CASH_ON_DELIVERY",
"TINKOFF_CREDIT",
"TINKOFF_INSTALLMENTS",
"SBP"
]
}
}