onlinerby / onliner-cart-api

Onliner Cart API Documentation
3 stars 6 forks source link

Onliner Cart API

Адрес API - https://cart.api.onliner.by.

Ресурс доступен только по протоколу HTTPS.

Все информация о временных отметках передается в виде строки в формате ATOM RFC3339 (пример: 2005-08-15T15:52:01+00:00).

Для всех запросов следует указывать HTTP заголовок Accept. По умолчанию его необходимо передавать со значением application/json.

Если происходит передача данных от клиента на сервер (например, при выполнении запросов типа POST, PATCH, DELETE), необходимо указывать заголовок Content-Type со значением application/json.

При выполнении каждого запроса в заголовках запроса необходимо передавать заголовок Authorization cо значением Bearer %AUTH_TOKEN%, где %AUTH_TOKEN% - авторизационный токен, полученный после авторизации на стороне b2bapi.

Примечание: авторизационный токен для работы с cart.api несколько длиннее, чем токен для работы с b2b-api. Это нормально.

Для работы с cart.api необходимо зарегистрировать новое приложение на странице настройки API.

Для получения уведомлений об изменениях в API нажмите кнопку Watch вверху страницы. Полный список изменений вы сможете увидеть в файле CHANGELOG

В случае превышения лимита времени, заказ будет переведен в статус "Отменен системой".

Временные лимиты могут быть изменены, но информация об этом будет опубликована заранее. Временные лимиты будут доступны позднее, на странице с описанием Корзины. Актуальная информация о текущем временном лимите на обработку по прежнему будет передаваться в полях process_deadline и process_time_left в зависимости от текущего статуса заказа.

Покупатель может отменить заказ в любой момент.

Статус "Упущен" назначается системой автоматически, если магазин не успел отменить или подтвердить заказ в течение отведенного времени на обработку заказов.

Онлайн-оплата

Если в Вашей тарифной сетке указана оплата картой онлайн (либо Халвой онлайн), то пользователи могут оформить заказ с использованием данного способа оплаты. Контроль за проведением оплаты происходит на стороне Сart API. В случае положительного сценария для онлайн оплаты не требуется никаких дополнительных действий на стороне магазина в случае взаимодействия с нашим API. Если онлайн-оплата по каким либо причинам не прошла, то магазин может изменить способ оплаты на оффлайн (подразумевается, что данная операция согласована с покупателем).

Онлайн оплата происходит в 2 этапа. При оформлении заказа денежные средства блокируются на счету покупателя (статус оплаты authorized) Окончательное списание происходит только после доставки заказа покупателю.

Для завершения заказа Ваш курьер должен отсканировать QR-код, связанный с заказом, который предоставит покупатель в момент доставки. Для сканирования QR-кодов у курьера должно быть установлено специальное приложения для смартфона.

В случае отмены заказа с онлайн-оплатой, авторизованные у покупателя денежные средства будут возвращены покупателю. Время возврата зависит от банка-эмитента.

Статусы оплаты authorizing, auth_cancelling_failed и capturing являются техническими и используются для блокировки заказа на время выполнения операций с банком. В случае корректно работающей системы заказ может находится в каждом из них в течении нескольких минут. Изменение заказа в данных статусах невозможно ни покупателем, ни магазином.

Статусы заказа и жизненный цикл заказа

Код статуса Название статуса Описание статуса
new Новый Заказ оформлен покупателем и ожидает реакции магазина
processing В обработке Заказ принят в обработку магазином
confirmed Подтвержден Заказ подтвержден магазином и готовится к доставке покупателю
shipping Передан в доставку Заказ передан в доставку к покупателю, находится в пути
delivered Доставлен Заказ выполнен и доставлен покупателю
shop_canceled Отменен магазином Заказ отменен магазином и не может быть выполнен
user_canceled Отменен покупателем Заказ отменен покупателем
expired Упущен Магазин не успел принять в работу новый заказ или обработать существующий в течение отведенного времени
system_canceled Отменен системой Магазин не успел перевести заказ в последующий статус (кроме обработки новых заказов)
moderator_canceled Отменен модератором Заказ отменен модератором
bank_canceled Отменен банком Заказ отменен банком (в случае оплаты Minipay)

Контактная информация пользователя и адрес доставки для магазина будут доступны, когда заказ находится в статусах:

Внутренние комментарии магазина

Предусмотрена возможность добавления внутренних комментариев магазина к заказу, эти комментарии видны только операторам самого магазина. Добавление комментария к заказу возможно только пока заказ находится в статусах "Новый", "В обработке", "Подтвержден", "Передан в доставку". Максимальная длина комментария - 255 символов, максимальное количество комментариев - 50.

Статусы онлайн оплаты

Код статуса Название статуса
unknown Статус оплаты по умолчанию для старых заказов
authorizing В процессе авторизации средств
auth_failed Авторизация средств не удалась
not_paid Не оплачен
authorized Средства авторизованы
auth_cancelling В процессе отмены авторизации средств
auth_cancelling_failed Отмена авторизации средств не удалась
auth_canceled Авторизация средств отменена
capturing В процессе списания средств
captured Средства списаны
capture_failed Списание средств не удалось
by_parts_approved Заявка Minipay утверждена
by_parts_canceled Заявка Minipay отклонена
by_parts_completing Заявка Minipay в процессе заведения сделки
by_parts_completed Заявка Minipay в состоянии "Сделка"
by_parts_rejected Заявка Minipay аннулирована

Способы оплаты

Код способа оплаты Название способа оплаты
online Оплата банковской картой онлайн
halva Оплата Халвой онлайн
cash Оплата наличными при получении
terminal Оплата картой при получении
cashless Оплата безналичным переводом для юрлиц
by_parts Оплата посредством Minipay
for_national_goods Оплата посредством кредита «На родныя тавары»

Доступные методы API

Ресурс Описание
GET /orders Список заказов магазина
GET /orders/{orderKey} Получение информации о заказе
PATCH /orders/{orderKey} Изменить заказ
PUT /orders/{orderKey} Задать дату доставки заказа
POST /orders/{orderKey}/change-payment-type Изменить способ оплаты заказа
POST /orders/{orderKey}/pickup-point-delivered Подтвердить доставку заказа в пункт выдачи
POST /orders/{orderKey}/shop-comments Добавить к заказу внутренний комментарий магазина
GET /orders/{orderKey}/shop-comments Получить список внутренних комментариев для магазина по заказу
GET /resources/shop-cancel-reasons Cписок доступных причин для отмены заказа магазином

В случае возникновения проблем либо технических вопросов по работе с API, создавайте Issue в данном репозитории.