Создание покупки
Создание покупки
Передача на сервер 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.
Updated about 3 years ago