Доставки
Мы работаем только через POST-запросы
Обратите внимание, что цены в webhook доставки не передаются. При необходимости подсчетов ориентируйтесь на ваши идентификаторы товара.
Для подключения вебхука доставок обратитесь к вашему менеджеру в IMSHOP.IO
IMSHOP.IO передаёт состав корзины, город (и страну), а также промокод и идентификатор пользователя, если они есть; в ответ IMSHOP.IO ожидает список доступных способов доставки.
Этот запрос отправляется не только в тех случаях, когда список доставок нужно вывести пользователю. Список доставок также нужен (повторно) перед финальным запросом оформления заказа.
Формат запроса и пример
Пример
POST
https://api-imshop.store.ru/v1/deliveries
Описание формата
externalUserId
— идентификатор покупателя на стороне клиента, если тот авторизован в мобильном приложении,null
по умолчаниюcountry
— ISO код страны,RU
bonusesSpent
- списанные бонусыhasPreorderItems
— в случае если в запросе товары с предзаказомpromocode
— прикрепленный промокод,null
по умолчаниюposition
— источник вызова хука, (checkout, deliveryWidget), можно использовать для определения где вызван хук и передавать в карточку товара уменьшенную выборку или отсортировав по другомуskipPickupLocations
— если этот параметр передан, и он равенtrue
, то в ответе достаточно передать только способ самовывоза, и не передавать все доступные точки получения заказаlegalEntityMode
– передается и имеет значениеtrue
, если при оформлении заказа выбрано юридическое лицоitems
- список товаров в корзинеid
— идентификатор товара в системе клиента (group_id
из фида)configurationId
— идентификатор товарного предложения в системе клиента (идентификаторid
из фида)privateId
— идентификатор товарного предложения в системе клиента (идентификаторid
из фида)quantity
— количество
addressData
— полная информация о адресе, прошедшая валидацию DaDatakladr
— Классификатор адресов Российской Федерации, определяющий город и улицуapt
— номер квартирыhouseKladr
— не ориентируйтесь на это поле Классификатор адресов Российской Федерации, определяющий конкретный дом, по умолчаниюnull
, ситуативно DaData может передавать данное поле заполненнымregion
— регионfias
— ФИАС города и улицыvalue
— адрес полностьюcityFias
— ФИАС городаareaFias
— ФИАС-код районаstreetKladr
— Классификатор адресов Российской Федерации, определяющий улицуregionKladr
— Классификатор адресов Российской Федерации, определяющий регионregionFias
— ФИАС определяющий регионcity_kladr
— Классификатор адресов Российской Федерации, определяющий городstreetFias
— ФИАС определяющий улицуzip
— индекс домаsettlement
— населенный пунктsettlementFias
— ФИАС-код населенного пунктаbeltwayDistance
— расстояние от кольцевой в км (только если заполненbeltwayHit
)lat
— широтаlon
— долготаsettlementKladr
— Классификатор адресов Российской Федерации, определяющий населенный пунктhouse
— номер домаcity
— название городаcityKladr
— Классификатор адресов Российской Федерации, определяющий городbeltwayHit
— внутри кольцевой ( INMKAD - на территории МКАД, OUT_MKAD - за территорией МКАД)area
— район в регионеfias_code
— не заполняется, используйтеfias_id
street
— название улицыareaKladr
— Классификатор адресов Российской Федерации, определяющий районsettlementWithType
— улица с типомfias_id
— ФИАС-код адреса (идентификатор адреса)
Для маркетплейсов.
В полях запроса для каждого товара могут быть переданы идентификаторы магазина/ООО (в разработке).
warehouseId
— (опционально) идентификатор склада/магазина/аутлета/ООО из фида наличия для маркетплейсов.
В запросе может приходить гораздо больше информации. Например, для товаров могут приходить названия.
Дополнительные поля могут облегчить процесс отладки, но не являются частью спецификации, на них нельзя базировать программную логику.
Формат ответа и пример
Если в ответе не будут отданы ВСЕ ❗обязательные поля - в приложении не отобразятся доставки
Описание формата
deliveries
— список доступных способов доставки, массив❗
id
— идентификатор, строка (обязательное поле)❗
title
— название, строка (обязательное поле)description
— описание, строка❗
type
— тип (delivery
,pickup
— доставка или самовывоз) (обязательное поле)❗
hasPickupLocations
— способ доставки требует выбора пункта самовывоза (особенно важно при ответе на запросы соskipPickupLocations
=true
) (обязательное поле)❗
price
— минимальная цена, цифра (обязательное поле)priceLabel
— цена в свободной форме; строка; приоритетнее поляprice
❗
min
— минимальный срок доставки (0
- сегодня,1
- завтра,2
-послезавтра,3
- от 3 дней) (обязательное поле)max
— максимальный срок доставки (0
- сегодня,1
- завтра итд)timeLabel
— время доставки в виде текста (отображается на экране выбора способа доставки)locations
— список ПВЗ (еслиtype
=pickup
и требуется выбор пункта самовывоза, и в запросе не переданskipPickupLocations
=true
)❗
id
— идентификатор самовывоза, строка (обязательное поле)❗
title
— название, строка (обязательное поле)❗
address
— адрес, строка (обязательное поле)❗
city
— город, строка (обязательное поле)time
— расписание / время работы, строкаsubway
— ближайшая станция метро, строкаmall
— название ТЦ, если не указывается в полеtitle
❗
lat
— широта для отображения на карте, строка (обязательное поле)❗
lon
— долгота для отображения на карте, строка (обязательное поле)❗
price
— цена доставки в этот ПВЗ, цифра (обязательное поле)❗
min
— ожидаемое время доставки (0
- сегодня), цифра (обязательное поле)timeLabel
— время доставки в виде текста (отображается на экране выбора пункта получения заказа и на экране описания пункта самовывоза), строкаnotice
- (в разработке) опционально, выделенный текстовый блок, например, чтобы уведомить покупателя, что не все товары доступны в данном ПВЗtags
— список тэгов у ПВЗ. Можно использовать тип пункта (пункт выдачи, постомат и т.д.), так и наименования (СДЭК, Boxberry, 5post)mapIcon
— кастомная иконка пункта выдачиinfoTags
— информационные теги, например: "Только по паспорту" и т.п.❗
title
— название тегаmodal
— (опционально) активируется возможность нажать на тег чтобы открыть модалку с пояснением.❗
title
— заголовок❗
description
— описание/пояснение
groupName
— (опционально) идентификатор для группировки, строка (способы доставки, у которых значение группы совпадает, схлопываются в один пункт; после его выбора, пользователь увидит все пункты, входящие в эту группу)
Пример
Кастомное сообщение если доставка недоступна
message - (опционально) текст который вы хотите отобразить юзеру если доставка недоступна
Интервалы доставки
Могут быть добавлены в любой из элементов списка доставок, имеющих тип delivery
dateIntervals
— список доступных интервалов, привязанных к датам.id
— идентификатор в вашей системе, число или строка.title
— название (конкретная дата), строка.subTitle
— пояснение (день недели), строка.timeIntervals
— список доступных интервалов, привязанных ко времени.id
— идентификатор в вашей системе, число или строка.title
— название (отрезок времени), строка.price
— (опционально) цена доставки в определенный интервал, число; используется в случае, когда таймслоты варьируются по стоимости (напр. вечерняя доставка - дороже).
Фильтрация точек получения
Для отображения фильтров, у каждого пункта выдачи (в списке locations) необходимо передать список тэгов (tags)
tags
— список тэгов у ПВЗ. Можно использовать тип пункта (пункт выдачи, постомат и т.д.), так и наименования (СДЭК, Boxberry, 5post)
Пример:
Last updated