Состав АПИ для интеграции по заказам1) Файл "API Orders для ПЭР”.АПИ, которое реализуется на стороне аптеки для того, чтобы ПЭР
подключился к нему:
- Метод создания заказа на стороне ФИСа
- Метод обновления статуса заказа на стороне ФИСа
2) Файл “API Orders для подключения ФИС к ПЭР”.АПИ к которому подключается аптека для отправки информации по
изменениям в заказах и получению заказов по параметрам (при
необходимости):
- Метод получения заказа от ПЭР
- Метод обновления заказа в ПЭР
Последовательность работы по заказам (позитивный сценарий):1) Корзина собирается пользователем в приложении “Мой рецепт” на основе остатков, которые передаются через выгрузку каталогов.
2) Формирование и синхронизация каталогов аптек, препаратов и остатков.
3) Пользователь выбирает аптеку из списка подключенных к заказам
Пользователь нажимает кнопку оформить заказ.
4) ПЭР отправляет в ФИС аптеки запрос на создание заказа методом: ‘POST /api/v1/orders Формирование заказа в аптеке’.
ФИС создает сущность заказа на своей стороне в соответствии с
переданными данными по товарам (в запросе присутствуют идентификаторы аптечной сети для аптеки и товаров, которые
передаются в заказе).
- Если заказ пришел в статусе ‘AWAITS_PAYMENT - Заказ ожидает оплаты пользователем’, то по такому заказу нельзя производить изменения, так как ожидается оплата со стороны пользователя. ФИС ожидает передачу статуса ‘PROCESSING - Заказ передан на обработку в аптеку’ для продолжения работы с ним (заказ будет оплачен или изменен тип оплаты на ‘ON_RECEPTION - При получении’).
5) После создания заказа ФИС отвечает на запрос идентификатором заказа ПЭР (id), идентификатором заказа на стороне аптеки (externalId) и
человекочитаемым номером заказа (number).
6) Аптека проверяет заказ на своей стороне и переводит его в статус
‘PACKAGING - Собирается’ методом: ‘PATCH /api/v3/orders Обновление
заказа’.
- Если заказ не соответствует наличию ЛП в аптеке на момент проверки, то в заказ вносятся изменения. Изменение доступно в статусах ‘PROCESSING - Заказ передан на обработку в аптеку’, ‘PACKAGING - Собирается’ и ‘AWAITS_RECEPTION - Готов к выдаче’. Используется идентичный метод: ‘PATCH /api/v3/orders Обновление заказа’.
Доступные изменения в позициях заказа:
- Исключение позиций из заказа
- Уменьшение количества упаковок в меньшую сторону
- Изменение стоимости позиции в меньшую сторону
- ФИС передает информацию об изменениях в позициях заказа в соответствии с пунктом 7.а с передачей нового статуса заказа, либо только изменение позиций.
7) Аптека собирает заказ и переводит его в статус ‘AWAITS_RECEPTION -
Готов к выдаче’ методом: ‘PATCH /api/v3/orders Обновление заказа’.
8) Пользователь получает уведомление о том, что заказ готов к выдаче и
приходит в аптеку для получения.
9) Аптека проверяет заказ по номеру (number) или по своему внутреннему идентификатору (externalId), который содержится в QR-коде заказа.
- При необходимости используется метод получения заказа ‘GET /api/v3/orders Получение списка заказов’
- Если в заказе ‘paymentType - Тип оплаты заказа’ в значении ‘ONLINE - Онлайн’ значит заказ оплачен пользователем. Данным методом можно дополнительно проверить статус оплаты заказа при необходимости.
10) Аптека переводит заказ в статус ‘RECEIVED - Получен’ методом: ‘PATCH /api/v3/orders
Обновление заказа’.
- При выдаче заказа проверяется ‘paymentType - Тип оплаты заказа’. Важно дополнительно проверять данный статус именно на моменте выдачи, так как в процессе работы с заказом может измениться тип оплаты с ‘ONLINE - Онлайн’ на ‘ON_RECEPTION - При получении’.
- Если статус ‘ONLINE - Онлайн’, то заказ оплачен онлайн и пациенту нужно выдать заказ.
- Если статус ‘ON_RECEPTION - При получении’, то нужно, чтобы пользователь оплатил заказ и потом отправлять статус заказа ‘RECEIVED - Получен’.
Сценарии при передачи статусов от ПЭР:1) При создании заказа с оплатой сначала в аптеку передается статус
‘AWAITS_PAYMENT - Заказ ожидает оплаты пользователем’ методом:
‘POST/api/v1/orders
Формирование заказа в аптеке’.
В данном статусе ожидается оплата от пользователя или смена типа
оплаты на ‘ON_RECEPTION - При получении’. Когда заказ будет оплачен
или поменяется тип оплаты, то будут отправлены соответствующие
данные в запросе и измененный статус заказа на ‘PROCESSING - В
обработке’ методом: ‘PATCH /api/v3/orders Обновление заказа’.
В данном статусе нельзя изменять заказ (переходы по статусам и прочие
действия заблокированы)
2) Пользователь может отменить заказ. Тогда в аптеку отправляется статус ‘CANCELLED -
Заказ отменен’. Дальнейшая работа по заказу приостанавливается.
3) Система ПЭР может отправить статусы отмены заказа по таймауту, такие как ‘NOT_PROCESSED - Заказ не обработан’ и ‘NOT_RECEIVED - Заказ не получен’.
Заказ отменяется автоматически в статусах:
- ‘PROCESSING - В обработке’ и ‘PACKAGING - Собирается’ на
- ‘NOT_PROCESSED - Заказ не обработан’ в течении 2 часов в промежутке с 8 до 20 и в течении 12 часов вне данного промежутка.
- ‘AWAITS_RECEPTION - Готов к выдаче’ на ‘NOT_RECEIVED - Заказ не получен’ в течении 48 часов после перехода в данный статус.
4) Если у заказа был указан ‘paymentType - Тип оплаты заказа’ в значении ‘ONLINE - Онлайн’ и только состав заказа изменен со стороны аптеки, то изменится тип оплаты заказа без изменения
статуса.
Т.е. со стороны ПЭР будет отправлен запрос методом ‘PATCH
/api/v1/orders Обновление ранее сформированного заказа’ с ‘paymentType
- Тип оплаты заказа’ в значении ‘ON_RECEPTION - При получении’.
5) Аптека может отправить отмену заказа отправив статус ‘DECLINED -
Отклонен’. Дальнейшая работа по заказу приостанавливается.
6) Список статусов в которых дальнейшие изменения со стороны ФИС
недоступны:
- ‘AWAITS_PAYMENT - Заказ ожидает оплаты пользователем’
- RECEIVED - Получен’
- ‘CANCELLED - Заказ отменен’
- ‘NOT_PROCESSED - Заказ не обработан’
- ‘NOT_RECEIVED - Заказ не получен’
- ‘DECLINED - Отклонен’