Создание покупки

Создание покупки

Передача на сервер Sailplay информации о клиенте и покупке осуществляется при помощи метода /api/v2/purchases/new/.
Помимо авторизационых данных в запросе также необходимо передать JSON объект cart с составом корзины или ее идентификатор, полученный на этапе расчета акций и ваш уникальный внутренний номер заказа - order_num.

Если бизнес-логика предполагает совершение "анонимных" покупок, то передавать идентификатор клиента в запросе не требуется.

Количество бонусных баллов для списания в покупке требуется передавать в параметре discount_points_writeoff.

Создание покупки в другом отделе

Метод /api/v2/purchases/new/ также позволяет создать покупку в другом отделе, отличном от указанного в store_department_id. Для этого в запросе необходимо передать идентификатор отдела в одном из двух параметров: target_dep_id или target_dep_origin_id. В первом случае передается идентификатор Sailplay, во втором - ваш внутренний идентификатор, который был указан при создании отдела.

Получение покупки

Для получения информации о созданных покупках используется метод /api/v2/purchases/get/. Ответ будет содержать информацию о составе корзины, примененных акциях, данные клиента, а также начисление / списание бонусных баллов.
Метод можно применять для получения списка покупок или для дальнейшего ее редактирования или частичного возврата.

Редактирование покупки

В случае изменения заказа после его оформления (добавление новых позиций) его также необходимо отредактировать в Sailplay, отправив запрос к /purchases/edit/.
Также данный метод позволяет привязать анонимную покупку к конкретному клиенту или перепривязать от одного клиента другому.
Для этого в запросе необходимо передать идентификатор клиента без параметра cart/cart_id.

Подтверждение покупки

Sailplay API предусматривает возможность создания покупок в двух состояниях - подтвержденные и неподтвержденные. Фактическое списание и начисление бонусных балов клиенту происходит в момент подтверждения покупки. Для подтверждения покупки необходимо отправить запрос к методу /purchases/confirm/

Частичный возврат заказа

После оформления заказа клиент может решить отказаться от части позиций, без добавления новых позиций. В этом случае необходимо отметить позиций как возвращенные в Sailplay.

Общий процесс работы с возвратами выглядит следующим образом:

  • Нужная покупка запрашивается по order_num запросом к /api/v2/purchases/get/
  • Система интеграции забирает весь состава заказа с нумерацией каждой позиции
  • Пользователь отмечает те позиции, которые необходимо отметить как возвращенные
  • Система интеграции передает запрос на исключение позиций к методу /purchases/returns/create/ с определенным комментарием в JSON-объект return_cart (номер позиции, признак исключения, количество, комментарий).
  • Позиция получает признак возвращенности
  • Сумма конкретной покупки и общей суммы покупок клиента уменьшается на сумму возвращенных позиций

🚧

Важно

Бонусы начисленные и списанные для позиции корректируются отдельной транзакцией, если транзакция была подтверждена, и редактируется количество баллов за покупку, если она была не подтверждена
Если клиент уже потратил баллы - списывается меньше баллов, до нулевого баланса клиента.

Удаление и восстановление покупки

В случае полного отказа от покупки клиентом – покупку необходимо удалить из Sailplay методом /purchases/delete, передав в него номер заказа order_num. При этом фактического удаления покупки из базы Sailplay не происходит и, при необходимости, ее можно восстановить запросом к методу /purchases/restore.