Запрос информации о товарах

Внимание. В конце мая Яндекс.Маркет закрывает программу «Заказ на Маркете». В мае магазины уже не смогут подключиться к этой программе. Подробнее.
  1. Описание
  2. Передаваемые магазину данные
  3. Ответные данные от магазина
  4. Описание ошибок
  5. Примеры

Описание

POST /cart
Внимание. Запрос выполняется Яндекс.Маркетом.

Передает магазину список товаров в корзине покупателя и запрашивает актуальную информацию по товарам в корзине:

  • цену и наличие товаров;

  • опции, даты и интервалы доставки, доступные для указанной корзины товаров и региона;

  • доступные способы оплаты;

  • информацию о налогах.

    Магазин может передать в теле ответа в параметре tax-system систему налогообложения (СНО), по которой он работает, а в параметрах vat — ставки налога на добавленную стоимость (НДС) для каждого товара и услуги доставки. Если магазин не передаст информацию о налогах в ответе, Яндекс.Маркет получит ее из настроек магазина в личном кабинете или из прайс-листа.

URL ресурса:

https://<URL_запроса>/cart
Таймаут на получение ответа: 5,5 секунд.

Передаваемые магазину данные

Структура данных в теле запроса приведена ниже. Порядок следования параметров не гарантируется.

<cart currency="{enum}" delivery-currency="{enum}" isBooked="{boolean}">
  <delivery>
    <address postcode="{string}" country="{string}" city="{string}" subway="{string}" street="{string}" house="{string}" block="{string}" floor="{string}"/>
    <region id="{int32}" name="{string}" type="{enum}">
      <parent id="{int32}" name="{string}" type="{enum}">
        ...
      </parent>
    </region>
  </delivery>
  <items>
    <item count="{int32}" feed-category-id="{string}" feed-id="{int64}" offer-id="{string}" offer-name="{string}"/>
    ...
  </items>
</cart>

Описание параметров:

Параметр для формата XML

Параметр для формата JSON

Тип

Значение

cart cart

Корзина.

Параметры, вложенные в cart

currency currency Enum

Валюта, в которой выражены цены товаров в заказе.

Возможные значения:

  • BYN — белорусский рубль.

  • EUR — евро.

  • KZT — казахстанский тенге.

  • RUR — российский рубль.

  • UAH — украинская гривна.

  • USD — доллар США.

Для формата XML является атрибутом параметра cart.

delivery-currency deliveryCurrency Enum

Валюта цены доставки, которую магазин указал в личном кабинете.

Возможные значения:

  • BYN — белорусский рубль.

  • EUR — евро.

  • KZT — казахстанский тенге.

  • RUR — российский рубль.

  • UAH — украинская гривна.

  • USD — доллар США.

Для формата XML является атрибутом параметра cart.

isBooked isBooked Boolean
Внимание. Параметр устарел и не рекомендуется к использованию.
delivery delivery

Информация об опциях доставки.

items items

Товары в корзине.

Параметры, вложенные в delivery

address address

Адрес доставки.

Указывается, если покупатель уже указал адрес на Яндекс.Маркете.

region region

Регион доставки.

Параметры, вложенные в address

postcode postcode String

Почтовый индекс.

Указывается, если выбрана доставка почтой (delivery type=POST).

Для формата XML является атрибутом параметра address.

country country String

Страна.

Обязательный параметр.

Для формата XML является атрибутом параметра address.

city city String

Город или населенный пункт.

Обязательный параметр.

Для формата XML является атрибутом параметра address.

subway subway String

Станция метро.

Для формата XML является атрибутом параметра address.

street street String

Улица.

Обязательный параметр.

Для формата XML является атрибутом параметра address.

house house String

Дом или владение.

Обязательный параметр.

Для формата XML является атрибутом параметра address.

block block String

Корпус или строение.

Для формата XML является атрибутом параметра address.

floor floor String

Этаж.

Для формата XML является атрибутом параметра address.

Параметры, вложенные в region

id id Int32

Идентификатор региона.

Для формата XML является атрибутом параметра region.

name name String

Название региона.

Для формата XML является атрибутом параметра region.

type type Enum

Тип региона.

Возможные значения:

  • CITY — город.

  • CITY_DISTRICT — район города.

  • CONTINENT — континент.

  • COUNTRY — страна.

  • COUNTRY_DISTRICT — федеральный округ.

  • METRO_STATION — станция метро.

  • MONORAIL_STATION — станция монорельса.

  • OTHERS_UNIVERSAL — другой тип населенного пункта.

  • OVERSEAS_TERRITORY — отдельная территория какого-либо государства, расположенная в другой части света (например, Ангилья, Гренландия, Бермудские острова и т. д.).

  • REGION — регион.

  • SECONDARY_DISTRICT — район города второго уровня (например, для ВАО Москвы районами второго уровня являются Измайлово, Новокосино, Перово и т. д.).

  • SETTLEMENT — поселение.

  • SUBJECT_FEDERATION — субъект федерации.

  • SUBJECT_FEDERATION_DISTRICT — район субъекта федерации.

  • SUBURB — пригород.

  • VILLAGE — село.

Для формата XML является атрибутом параметра region.

parent parent

Родительский регион.

Указываются родительские регионы до уровня страны включительно (type=COUNTRY).

Параметры, вложенные в parent

id id Int32

Идентификатор родительского региона.

Информацию о регионе можно получить с помощью ресурса GET /regions/{regionId}.

Для формата XML является атрибутом параметра parent.

name name String

Название родительского региона.

Для формата XML является атрибутом параметра parent.

type type Enum

Тип родительского региона.

Возможные значения:

  • CITY — город.

  • CITY_DISTRICT — район города.

  • CONTINENT — континент.

  • COUNTRY — страна.

  • COUNTRY_DISTRICT — федеральный округ.

  • METRO_STATION — станция метро.

  • MONORAIL_STATION — станция монорельса.

  • OTHERS_UNIVERSAL — другой тип населенного пункта.

  • OVERSEAS_TERRITORY — отдельная территория какого-либо государства, расположенная в другой части света (например, Ангилья, Гренландия, Бермудские острова и т. д.).

  • REGION — регион.

  • SECONDARY_DISTRICT — район города второго уровня (например, для ВАО Москвы районами второго уровня являются Измайлово, Новокосино, Перово и т. д.).

  • SETTLEMENT — поселение.

  • SUBJECT_FEDERATION — субъект федерации.

  • SUBJECT_FEDERATION_DISTRICT — район субъекта федерации.

  • SUBURB — пригород.

  • VILLAGE — село.

Для формата XML является атрибутом параметра parent.

parent parent

Рекурсивно вложенный элемент для указания родительских регионов более высокого уровня.

Параметры, вложенные в items

item

Информация о товаре в корзине.

Параметры, вложенные в item / items

count count Int32

Количество товара.

Для формата XML является атрибутом параметра item.

feed-category-id feedCategoryId String

Идентификатор категории, указанный в прайс-листе.

Для формата XML является атрибутом параметра item.

feed-id feedId Int64

Идентификатор прайс-листа, в котором указан товар.

Для формата XML является атрибутом параметра item.

offer-id offerId String

Идентификатор товара из прайс-листа.

Для формата XML является атрибутом параметра item.

offer-name offerName String

Название товара.

Для формата XML является атрибутом параметра item.

Ответные данные от магазина

В ответе магазин должен передать актуальные данные для переданной корзины товаров и указанного региона доставки.

Особенности передачи данных по товарам

В корзине присутствуют товары, которые не доставляются в указанный регион либо по указанному адресу

Укажите для соответствующего параметра item параметр delivery со значением false, а опции доставки рассчитайте для остальной части корзины.

Товар отсутствует в продаже (товара нет в наличии и не поставляется на заказ)

Укажите параметр count=0, вложенный в параметр item. Если все товары из корзины отсутствуют в продаже, передайте параметр items пустым.

Внимание. При получении информации о том, что товар отсутствует в продаже, через 10–15 минут соответствующее предложение перестает отображаться на Яндекс.Маркете до следующего обновления данных на сервисе (индексация происходит каждые 3–6 часов).
Товара нет в наличии на данный момент, но он поставляется на заказ

Укажите в параметре count доступное для заказа количество товара.

Особенности передачи данных по пунктам самовывоза и диапазону дат доставки

Укажите в параметре outlets идентификаторы всех пунктов самовывоза, в которых товар уже есть в наличии и в которые вы можете доставить товар, если его там еще нет. Пункты самовывоза должны находиться в регионе, указанном в запросе в параметре region. Сроки доставки заказа в пункт самовывоза укажите в параметрах from-date и to-date.

Структура ответных данных:

<cart delivery-currency="{enum}" tax-system="{enum}">
  <delivery-options>
    <delivery id="{string}" payment-allow="{boolean}" price="{double}" service-name="{string}" type="{enum}" vat="{enum}">
      <dates from-date="{date}" to-date="{date}" reserved-until="{date}">
        <interval date="{date}" from-time="{time}" to-time="{time}"/>
        ...
      </dates>
      <outlets> 
        <outlet code="{string}" id="{int64}"/>
        ...
      </outlets>
      <payment-methods>
        <payment-method>{enum}</payment-method>
        ...
      </payment-methods>
    </delivery>
    ...
  </delivery-options>
  <items>
    <item count="{int32}" delivery="{boolean}" feed-id="{int64}" offer-id="{string}" price="{double}" vat="{enum}"/>
    ...
  </items>
  <payment-methods>
    <payment-method>{enum}</payment-method>
    ...
  </payment-methods>
</cart>

Описание параметров:

Параметр для формата XML

Параметр для формата JSON

Тип

Значение

cart cart

Корзина.

Параметры, вложенные в cart

delivery-currency deliveryCurrency Enum

Валюта, в которой выражена цена доставки товаров в заказе.

Возможные значения:

  • BYN — белорусский рубль.

  • EUR — евро.

  • KZT — казахстанский тенге.

  • RUR — российский рубль.

  • UAH — украинская гривна.

  • USD — доллар США.

Для формата XML является атрибутом параметра cart.

tax-system taxSystem Enum

Система налогообложения (СНО) магазина.

Возможные значения:

  • ECHN — единый сельскохозяйственный налог (ЕСХН).

  • ENVD — единый налог на вмененный доход (ЕНВД).

  • OSN — общая система налогообложения (ОСН).

  • PSN — патентная система налогообложения (ПСН).

  • USN — упрощенная система налогообложения (УСН).

  • USN_MINUS_COST — упрощенная система налогообложения c доходами, уменьшенными на величину расходов (УСН «Доходы минус расходы»).

Используется только совместно с параметром vat.

Для формата XML является атрибутом параметра cart.

delivery-options deliveryOptions

Опции доставки, доступные для корзины.

items items

Товары в корзине.

payment-methods paymentMethods

Способы оплаты, доступные для всех товаров в корзине.

Параметры, вложенные в delivery-options

delivery

Информация о доставке.

Параметры, вложенные в delivery / deliveryOptions

id id String

Идентификатор опции доставки, присвоенный магазином.

Если идентификатор указан, он будет передан обратно магазину в запросе методом POST /order/accept .

Максимальная длина: 50 символов.

Необязательный параметр.

Для формата XML является атрибутом параметра delivery.

payment-allow paymentAllow Boolean

Признак возможности предоплаты заказа через Яндекс.Маркет для доставки почтой (type=POST).

Возможные значения:

  • false — магазин не принимает предоплату для доставки почтой.

  • true — магазин принимает предоплату для доставки почтой.

Значение по умолчанию: true.

Для формата XML является атрибутом параметра delivery.

price price Double

Стоимость доставки в валюте заказа.

Для отделения целой части от дробной используется точка.

Для формата XML является атрибутом параметра delivery.

service-name serviceName String

Наименование службы доставки.

Для формата XML является атрибутом параметра delivery.

type type Enum

Способ доставки заказа.

Возможные значения:

  • DELIVERY — курьерская доставка.

  • PICKUP — самовывоз.

  • POST — почта.

Для формата XML является атрибутом параметра delivery.

vat vat Enum

Ставка налога на добавленную стоимость (НДС) на услугу доставки заказа.

Возможные значения:

  • NO_VAT — НДС не облагается, используется только для отдельных видов услуг.

  • VAT_0 — НДС 0 %. Например, используется при продаже товаров, вывезенных в таможенной процедуре экспорта, или при оказании услуг по международной перевозке товаров.

  • VAT_10 — НДС 10 %. Например, используется при продаже отдельных продовольственных товаров, товаров для детей или медицинских товаров.

    Если пользователь выберет предоплату (payment-method=YANDEX) в качестве способа оплаты заказа, Яндекс.Маркет автоматически преобразует это значение в VAT_10_110.

  • VAT_10_110 — НДС 10 / 110. Расчетная ставка НДС 10 %, применяется только для случая предоплаты (payment-method=YANDEX).

  • VAT_18 — НДС 18 %. Основная ставка НДС, используется для большинства товаров.

    Если пользователь выберет предоплату (payment-method=YANDEX) в качестве способа оплаты заказа, Яндекс.Маркет автоматически преобразует это значение в VAT_18_118.

  • VAT_18_118 — НДС 18 / 118. Расчетная ставка НДС 18 %, применяется только для случая предоплаты (payment-method=YANDEX).

Используется только совместно с параметром tax-system.

Для формата XML является атрибутом параметра delivery.

dates dates

Диапазон дат доставки.

outlets outlets

Пункты самовывоза.

Указывается, если выбран самовывоз (delivery type=PICKUP). Укажите в параметре outlets идентификаторы всех пунктов самовывоза.

Особенности передачи данных по пунктам самовывоза.

payment-methods paymentMethods

Способы оплаты, доступные для указанного вида доставки.

Параметры, вложенные в dates

from-date fromDate Date

Ближайшая возможная дата доставки.

Формат даты: ДД-ММ-ГГГГ.

Дата должна быть не ранее текущей даты и не позднее 92-х календарных дней от текущей даты.

Особенности передачи данных по датам доставки.

Для формата XML является атрибутом параметра dates.

to-date toDate Date

Самая поздняя дата доставки.

Формат: ДД-ММ-ГГГГ.

Дата должна быть не ранее даты, указанной в параметре from-date, и не позднее 92-х календарных дней от текущей даты.

Если параметр to-date не указан, то единственно возможной датой доставки считается дата, указанная в параметре from-date.

Для формата XML является атрибутом параметра dates.

reserved-until reservedUntil Date
Внимание. Параметр устарел и не рекомендуется к использованию.
intervals

Список возможных дат и интервалов времени доставки в указанный день. В параметре можно указать до 7 дат и до 5 интервалов для каждой даты.

Передается только совместно с параметром delivery type=DELIVERY.

Если магазин не передаст интервалы, Яндекс.Маркет будет считать временем доставки весь день (from-time=00:00 to-time=23:59).

Минимальное значение: 2 часа.

Максимальное значение: 8 часов.

Параметр указывается только для формата JSON.

interval

Возможная дата и интервал времени доставки. Можно указать до 7 дат и до 5 интервалов для каждой даты.

Передается только совместно с параметром delivery type=DELIVERY.

Если магазин не передаст интервалы, Яндекс.Маркет будет считать временем доставки весь день (from-time=00:00 to-time=23:59).

Минимальное значение: 2 часа.

Максимальное значение: 8 часов.

Параметр указывается только для формата XML.

Параметры, вложенные в interval / intervals

date date Date

Возможная дата доставки.

Формат даты: ДД-ММ-ГГГГ.

Для формата XML является атрибутом параметра interval.

from-time fromTime Time

Начало интервала времени доставки.

Формат времени: 24-часовой, ЧЧ:ММ. В качестве минут всегда должно быть указано 00 (исключение — 23:59).

Минимальное значение: 00:00.

Для формата XML является атрибутом параметра interval.

to-time toTime Time

Конец интервала времени доставки.

Формат времени: 24-часовой, ЧЧ:ММ. В качестве минут всегда должно быть указано 00 (исключение — 23:59).

Максимальное значение: 23:59.

Для формата XML является атрибутом параметра interval.

Параметры, вложенные в outlets

outlet

Информация о пункте самовывоза.

Особенности передачи данных по пунктам самовывоза.

Параметры, вложенные в outlet / outlets

code code String

Идентификатор пункта самовывоза, присвоенный магазином.

Идентификатор указывается:

Примечание. Если указан несуществующий идентификатор (не совпадает ни с одним идентификатором, заданным в личном кабинете), такой пункт самовывоза не выводится покупателю при оформлении заказа.

Особенности передачи данных по пунктам самовывоза.

Для формата XML является атрибутом параметра outlet.

id id Int64
Внимание. Параметр устарел и не рекомендуется к использованию. Идентификатор пункта самовывоза укажите в параметре code.

Параметры, вложенные в payment-methods

payment-method Enum

Способ оплаты для указанного вида доставки.

Возможные значения, если выбрана постоплата (payment-type=POSTPAID):

  • CARD_ON_DELIVERY — оплата банковской картой при получении заказа.

  • CASH_ON_DELIVERY — наличный расчет при получении заказа.

Возможные значения, если выбрана предоплата (payment-type=PREPAID):

  • YANDEX — оплата при оформлении.

Примечание. Как подключить прием предоплаты по заказам с Яндекс.Маркета, описано в Помощи.

Для формата JSON выводится в виде строки.

Параметры, вложенные в items

item

Информация о товаре в корзине.

Параметры, вложенные в item / items

count count Int32

Количество товара, которое доступно для заказа.

Необязательно указывать точное количество, но важно указать то количество, которое гарантированно доступно для заказа. Если товар полностью отсутствует в ассортименте магазина (товара нет в наличии и не поставляется «на заказ»), то необходимо указывать 0.

Для формата XML является атрибутом параметра item.

delivery delivery Boolean

Признак возможности доставки товара в указанный в запросе регион либо по указанному в запросе адресу.

Возможные значения:

  • false — товар не доставляется в указанный регион либо по указанному адресу.

  • true — значение по умолчанию, товар доставляется в указанный регион либо по указанному адресу.

Для формата XML является атрибутом параметра item.

feed-id feedId Int64

Идентификатор прайс-листа, в котором указан товар.

Для формата XML является атрибутом параметра item.

offer-id offerId String

Идентификатор товара из прайс-листа.

Для формата XML является атрибутом параметра item.

price price Double

Актуальная цена товара в валюте корзины.

Для отделения целой части от дробной используется точка.

Необязательный параметр в случае, если параметр count равен 0.

Для формата XML является атрибутом параметра item.

vat vat Enum

Ставка налога на добавленную стоимость (НДС) на товар.

Возможные значения:

  • NO_VAT — НДС не облагается, используется только для отдельных видов услуг.

  • VAT_0 — НДС 0 %. Например, используется при продаже товаров, вывезенных в таможенной процедуре экспорта, или при оказании услуг по международной перевозке товаров.

  • VAT_10 — НДС 10 %. Например, используется при продаже отдельных продовольственных товаров, товаров для детей или медицинских товаров.

    Если пользователь выберет предоплату (payment-method=YANDEX) в качестве способа оплаты заказа, Яндекс.Маркет автоматически преобразует это значение в VAT_10_110.

  • VAT_10_110 — НДС 10 / 110. Расчетная ставка НДС 10 %, применяется только для случая предоплаты (payment-method=YANDEX).

  • VAT_18 — НДС 18 %. Основная ставка НДС, используется для большинства товаров.

    Если пользователь выберет предоплату (payment-method=YANDEX) в качестве способа оплаты заказа, Яндекс.Маркет автоматически преобразует это значение в VAT_18_118.

  • VAT_18_118 — НДС 18 / 118. Расчетная ставка НДС 18 %, применяется только для случая предоплаты (payment-method=YANDEX).

Используется только совместно с параметром tax-system.

Для формата XML является атрибутом параметра item.

Параметры, вложенные в payment-methods / paymentMethods

payment-method Enum

Способ оплаты для всех товаров в корзине.

Возможные значения, если выбрана постоплата (payment-type=POSTPAID):

  • CARD_ON_DELIVERY — оплата банковской картой при получении заказа.

  • CASH_ON_DELIVERY — наличный расчет при получении заказа.

Возможные значения, если выбрана предоплата (payment-type=PREPAID):

  • YANDEX — оплата при оформлении.

Примечание. Как подключить прием предоплаты по заказам с Яндекс.Маркета, описано в Помощи для магазинов.

Для формата JSON выводится в виде строки.

Описание ошибок

Магазин может вернуть следующие статусы ответов:

Описание

Пояснение

Ошибка 400 Bad Request

Если магазин считает запрос, поступающий от Яндекс.Маркета, некорректным, магазин должен вернуть статус ответа 400 с описанием причины ошибки в теле ответа. Такие ответы будут анализироваться на предмет нарушений и недоработок API со стороны Яндекс.Маркета.

Ошибка 500 Internal Server Error

В случае технической ошибки на стороне магазина он должен вернуть статус ответа 500. Магазины с большим количеством таких ответов могут быть отключены от программы «Заказ на Маркете».

Примеры

Пример запроса от Яндекс.Маркета:

POST /cart

Тело POST-запроса:

<cart currency="RUR" delivery-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"/>
        </parent>
      </parent>
    </region>
    <address postcode="119313" country="Россия" city="Москва" subway="Проспект Вернадского" street="Ленинский проспект" house="90" floor="6"/>
  </delivery>
  <items>
    <item count="3" feed-category-id="35" feed-id="12345" offer-id="4609283881" offer-name="Чайник электрический 100 W"/>
    <item count="1" feed-category-id="41" feed-id="12345" offer-id="4607632101" offer-name="Тостер"/>
  </items>
</cart>

Пример ответа магазина:

HTTP/1.1 200 OK
...

<cart delivery-currency="RUR" tax-system="OSN">
  <delivery-options>
    <delivery price="0" service-name="СПСР" type="PICKUP">
      <dates from-date="02-07-2017" to-date="03-07-2017">
        <interval date="02-07-2017" from-time="09:00" to-time="14:00"/>
        <interval date="02-07-2017" from-time="16:00" to-time="21:00"/>
        <interval date="03-07-2017" from-time="10:00" to-time="20:00"/>
      </dates>
      <outlets>
        <outlet code="9"/>
        <outlet code="10"/>
        <outlet code="11"/>
        <outlet code="12"/>
      </outlets>
    </delivery>
    <delivery price="350" service-name="Собственная служба доставки" type="DELIVERY" vat="VAT_10">
      <dates from-date="02-07-2017"/>
    </delivery>
  </delivery-options>
  <items>
    <item count="3" delivery="true" feed-id="12345" offer-id="4609283881" price="1500" vat="VAT_18"/>
    <item count="1" delivery="false" feed-id="12345" offer-id="4607632101" price="2200" vat="VAT_18"/>
  </items>
  <payment-methods>
    <payment-method>CARD_ON_DELIVERY</payment-method>
    <payment-method>CASH_ON_DELIVERY</payment-method>
    <payment-method>YANDEX</payment-method>
  </payment-methods>
</cart>