История заказов
IMSHOP Retail Protocol (IRP) является объектом интеллектуальной собственности ООО «АЙ ЭМ СОЛЮШНЗ» (IMSHOP) и защищён как объект авторского права. Свидетельство о депонировании произведения № 023-014461 от 16 января 2023 г. подтверждает исключительные права ООО «АЙ ЭМ СОЛЮШНЗ» на данные технологии.
IMSHOP Retail Protocol создан по заказу ООО «АЙ ЭМ СОЛЮШНЗ». Использование IMSHOP Retail Protocol допустимо только при взаимодействии с ООО "АЙ ЭМ СОЛЮШНЗ" и наличии действующего лицензионного договора. Более подробно можно ознакомиться здесь.
Для авторизованного пользователя доступна синхронизация истории заказов в мобильном приложении с его общей историей заказов.
Запрос
APP SERVER → INFRASTRUCTURE
От вас потребуется URL, на который наш сервер будет слать POST-запрос. Да, мы запрашиваем данные через POST, а не через GET.
В вашу систему будут приходить вот такие данные:
userIdentifier
— идентификатор пользователя (обязательное поле), полученный от системы клиента на этапе авторизацииpage
– номер текущей страницы. Вы сами определяете размер отдаваемой страницы
Ответ:
id
— идентификатор заказа в вашей системе (обязательное поле)publicId
— идентификатор заказа, видимый пользователю (опционально); будет отображаться вместо id, если передан в ответеtypeOrder
— Тип заказа. Отображается на экране заказов перед номером и в расширенной истории заказа. По-умолчанию "Заказ" (опционально)createdOn
— дата создания заказа (обязательное поле, unix time stamp)status
— статус заказа (обязательное поле)statusMessage
— подробное описание статуса заказа (опционально)updatedOn
- время последнего обновления заказа (unix timestamp в секундах) (опционально)inProgress
- true / false - активность заказа. последний активный заказ будет отображен на главном экране приложения (опционально)price
— цена заказа (обязательное поле)receiptUrl
- ссылка на pdf файл для передачи чека или ссылка на ОФД-чекdeliveryPrice
- стоимость доставки (опционально)itemsPrice
- цена товаров в заказе без учета скидок, бонусов и предложений (опционально)retryPaymentMethod
— отдавать id оплаты если оплата возможна, если нет то null и повторная оплата будет недоступна, также чтобы кнопка повторной оплаты работала обязательно нужно передать объектpublicDeliveryDetails
(описание ниже) с заполненными полямиtitle
,buyerName
,buyerPhone
.trackingUrl
— ссылка на страницу отслеживания почтового или курьерского отправления (необязательное поле); отображается на экране списка заказовcancellable
- необязательно, заказ можно отменять, например, по кнопке "Отмена заказа", по-умолчниюfalse
items
— набор товаров в заказе (обязательное поле; массив может быть пустым)privateId
— идентификатор товара в системе клиента (обязательное поле)configurationId
—идентификатор товарного предложения (необязательное поле)name
— название товара (обязательное поле)image
— URL фото товара (обязательное поле)price
— цена за одну позицию (необязательное поле)quantity
— количество (обязательное поле)discount
— общая скидка (необязательное поле)subtotal
— итоговая стоимость (обязательное поле)removed
— был удалён из заказа (напр., покупатель отказался от не подошедших размеров при вручении)если товар был принят частично (напр., куплено 2 из 3 единиц), необходимо передать две одинаковые конфигурации, с
quantity
2 и 1 соответственно, и во второй установить"removed": true
при нажатии "Повторить заказ", товары, от которых покупатель отказался, в корзину добавлены не будут
usedBonuses
- количество использованных бонусов (опционально)appliedDiscount
- примененная скидка (опционально)publicDeliveryDetails
- детали доставки (опционально)title
- название свособа доставкиdetails
- подробное описание доставкиbuyerName
- имя получателяbuyerPhone
- телефон получателяbuyerEmail
- email получателяdeliveryDate
- ожидаемая дата доставки в форматеYYYY-MM-DD
deliveryTime
- ожидаемое время доставки в человекочитаемом видеtrackingUrl
— ссылка на страницу отслеживания почтового или курьерского отправления (необязательное поле); отображается на экране просмотра детальной информации о заказеdeliveryDateISO
- опционально, "2022-09-26T08:12:32.940Z" время в формате date time iso, например moment().toISOString()courierPhone
- опционально, Номер телефона доставщикаcourierName
- опционально, Имя доставщикаstorageDateDeadline
- опционально, срок хранения в форматеYYYY-MM-DD
canExtendStorageTime
- можно ли продлить срок хранения
publicPaymentDetails
- детали оплатыpaid
- true если заказ оплаченpaymentComment
- коментарий к платежуreceiptUrl
- ссылка на чек
ratingRequired
- true/false в зависимости нужно ли собрать оценку с пользователяrating
- Значение оценки обслуживания пользователя от 1 до 5 с ендпоинта оценки качества обслуживанияratingComment
- Сохраненный комментарий пользователя с ендпоинта оценки качества обслуживания
Обратите внимание на параметр nextPage. Это номер следующей страницы истории заказов. nextPage должен быть целым числом. Если параметр nextPage отсутствует или является, например, false
, null
, undefined
, то запрос на получение следующей страницы выполнен не будет.
Минимальный набор полей необходимый для отображения расширенной истории заказов
Идентификатор заказа может понадобиться пользователю для уточнения деталей в службе поддержки. Статус заказа — читаемый (в процессе, доставлен и пр), демонстрируется пользователю.
Дата создания заказа будет учитываться при сортировке во время слияния с локальной историей заказов.
Следует помнить, что этот запрос будет приходить из нашего доверенного, авторизованного сервера, это — не публичный API.
Любой другой ответ API будет расцениваться как отсутствие истории заказов.
Изменение заказа
От вас потребуется URL, на который наш сервер будет слать POST-запрос. Да, мы запрашиваем данные через POST, а не через GET.
Запрос на изменение срока хранения заказа
Описание формата
id
- номер заказа в системе клиентаextendStorageTime
- указание на то, что нужно продлить срок хранения
Пример
Ответ на изменение срока хранения заказа
Описание формата
success
- флаг успешного выполненияstorageDateDeadline
- новый срок хранения в форматеYYYY-MM-DD
canExtendStorageTime
- можно ли еще продлевать срок хранения
Пример ответа
Last updated