Оформление заказа
Мы работаем только через POST-запросы
Для подключения вебхука передачи заказа обратитесь к вашему менеджеру в IMSHOP.IO. Передайте менеджеру URL.
IMSHOP.IO передаёт состав корзины, полный адрес, идентификаторы выбранных способов оплаты и доставки, а также промокод и идентификатор пользователя, если они есть; в ответ IMSHOP.IO ожидает отбивку об удачно зарегистрированном заказе.
Вебхук оформления заказа обязан быть максимально толерантным ко входящим данным.
Местоположение пользователя, email, номер телефона, имя и пр. данные проходят валидацию на стороне IMSHOP.IO.
Есть вероятность, что проверки на корректность на вашей стороне предъявляют больше требований. Например, имя пользователя обязательно должно начинаться с большой буквы.
Следует помнить, что если в запросе присутствуют некорректные данные — их всегда можно уточнить на этапе подтверждения заказа по телефону.
Если заказ с некорректными данными не был принят — это уже потерянные деньги.
Формат запроса и пример
Пример
POST
https://api-imshop.store.ru/v1/orders
Описание формата
device
— информация об устройстве пользователяplatform
—ios
илиandroid
installId
— идентификатор установки приложенияhasPreorderItems
— в случае если в запросе товары с предзаказомearlyAccess
-если заказ с ранним доступомorders
— список заказов (за 1 запрос может выгружаться более 1 заказа)uuid
— идентификатор заказа на стороне IMSHOP.IOexternalUserId
— идентификатор покупателя на стороне клиента, если тот авторизован в мобильном приложении,null
по умолчаниюgroupId
— идентификатор группировки заказа (Если один заказ был разбит на несколько дочерних заказов, они будут иметь одинаковыйgroupId
)createdOn
— время создания заказаupdatedOn
— время изменения заказаstatus
— статус заказа в IMSHOP.IO. Возможные значения:placed
— созданprocessing
— в обработкеready_to_dispatch
— готов к отправкеdispatched
— отправлен в доставкуready_for_pickup
— готов к выдачеdelivered
— доставленclosed
— завершен без выкупаcanceled
— отмененdone
— выполнен. выкуплен.
name
— имя покупателяphone
— телефонemail
— электронная почтаanotherRecipientData
– данные получателя, если заказ был оформлен на другого человекаname
– имя получателяphone
– телефон получателя
country
— ISO код страны,RU
city
— стандартизированное имя города из системы ФИАС (или UUID ФИАС, в зависимости от настроек)address
— адрес в виде текстаaddressData
— подробные данные об адресе для доставки курьером, включая идентификаторы из КЛАДР и ФИАС, объект «Местоположение». Передается только при доставке до двери (курьером). При самовывозе / доставки до ПВЗ поле либо не передается, либо заполнено частично (например: только город).addressComponents
— данные об адресе доставки по полям как ввел пользователь. Передается только при доставке до двери (курьером). При самовывозе / доставки до ПВЗ поле либо не передается, либо заполнено частично (например: только город).price
— цена корзиныdeliveryPrice
— рассчитанная цена доставкиauthorizedBonuses
— запрос на списание баллов (если у клиента есть бонусная ПЛ)promocode
— прикрепленный промокод в виде строки.null
если промокод не был примененappliedDiscount
— общая скидка на заказ включая промокод и все маркетинговые акцииloyaltyCard
— идентификатор или номер карты лояльности (если есть, иначеnull
)delivery
— идентификатор способа доставки в формате<источник>/<идентификатор>
. Например:webhook/a1
для доставки с идентификаторомa1
, полученной из вебхук - интеграции доставокdeliveryName
— название способа доставкиpickupLocationId
— идентификатор выбранного пункта самовывоза (ПВЗ, постамат или магазин, в зависимости отdelivery
). Только для заказов с самовывозом, доставкой до ПВЗ.pickupLoactionSnapshot
— снимок метадаты о пункте самовывоза на момент заказа (берется из API службы доставки)payment
— выбранный способ оплатыpaymentName
— название способа оплатыpaymentProcessed
— флаг того, что заказ оплаченpaymentId
— идентификатор платежаpaymentGateway
— использованный эквайрингexternalIds
— список идентификаторов этого же заказа в других системахdeliveryComment
— комментарий к заказуlegalEntity
– информация о юридическом лице, появляется, если заказ оформляется на юридическое лицоcontactPersonPosition
– должность контактного лицаlegalEntityName
– полное название юридического лицаtaxpayerIdentificationNumber
– ИННtaxRegistrationReasonCode
– КППbusinessAddress
– юридический адрес
items
— список товаров в корзинеid
— идентификатор товара в IMSHOP.IOconfigurationId
— идентификатор товарного предложения в системе клиентовprivateId
— идентификатор товарного предложения в системе клиентаname
— наименование,price
— цена товара за 1 позициюquantity
— количествоdiscount
— скидка на всю позициюsubtotal
— итого за позицию (subtotal
= (price
*quantity
) -discount
)itemKitId
– id товарного набора, передается только если товар был добавлен из товарного набора
В полях заказа также может быть передана выбранная группа маркетинговых акций:
promoGroup
- (опционально) группа маркетинговых акций, выбранная покупателем. Поля каждой акции:id
- идентификатор акцииgifts
- список товаров, выбранных в качестве подарка. Если акция подразумевает только скидку, это поле не будет заполненоid
- идентификатор товарного предложенияquantity
- количество единиц товара
В полях заказа могут быть переданы идентификаторы даты/времени интервала доставки.
deliveryDateIntervalId
- (опционально) идентификатор, привязанный к датам, полученный в полеdateIntervals[<index>].id
вебхука доставокdeliveryTimeIntervalId
- (опционально) идентификатор, привязанный ко времени, полученный в полеdateIntervals[<index>].timeIntervals[<index>].id
вебхука доставок
extraServices
- дополнительные услуги, как реализовать *клик
Формат ответа и пример
Описание формата
orders
— cписок принятых / не принятых заказовsuccess
—true
илиfalse
(boolean
). флаг успеха.true
если заказ принятerrorCode
— код ошибки еслиsuccess
=false
errorMessage
— описание ошибки еслиsuccess
=false
id
— (строка) идентификатор созданного заказа в системе клиентаpublicId
— (строка) отображаемый публичный номер заказа (опционально, если не совпадает сid
)message
— (опционально) сообщение для клиента, отображаемое на странице "спасибо за заказ" после оформления заказаuuid
— (строка) идентификатор заказа в IMSHOP.IO, полученный в запросеprice
— (опционально, но обязательно, если возвращается больше одного заказа/группировка заказов) цена заказаdeliveryPrice
— (опционально) цена доставкиitems
— список товаров в корзине (опционально, но обязательно, если возвращается больше одного заказа)id
— идентификатор товара в IMSHOP.IOconfigurationId
— идентификатор товарного предложения в системе клиентаprivateId
— идентификатор товарного предложения в системе клиентаname
— наименованиеprice
— цена товара за 1 позициюquantity
— количествоdiscount
— скидка на всю позициюsubtotal
— итого за позицию (subtotal
= (price
*quantity
) -discount
)itemKitId
– id товарного набора, передается только если товар был добавлен из товарного набора
Пример ответа
Оформление заказов одним запросом для разделенной корзины (включается по запросу)
Оформление заказов одним запросом включается настройкой с помощью запроса продукт менеджеру, после этого заказы будут оформляться и отправляться в бекенд клиента одним запросом.
Нет отличия в структуре передаваемых данных от обычного оформления заказа кроме количества заказов в массиве orders передаваемом в запросе
Пример запроса
Пример ответа
в ответе бекенд клиента обязательно должен вернуть uuid каждого заказа, который был передан в запросе, это нужно для того, чтобы сопоставить заказы и они не перепутались при обработке
Last updated