Покупки и основные методы по работе с ними
Создание покупки
Передача на сервер Sailplay информации о клиенте и покупке осуществляется с помощью метода
/api/v2/purchases/new/.
Помимо авторизационных данных в запросе необходимо передать:
- JSON-объект
cartс составом корзины или - идентификатор корзины
cart_id, полученный на этапе расчёта акций
(см. страницу «Расчёт акций для корзины»), - ваш уникальный внутренний номер заказа —
order_num.
Если бизнес‑логика предполагает совершение анонимных покупок, передавать идентификатор клиента в запросе не требуется.
Количество бонусных баллов для списания в покупке передаётся в параметре discount_points_writeoff.
Если в запросе на создание покупки передается идентификатор клиента со значением, которого нет в базе, то клиент будет создан при создании покупки только с этим идентификатором. Аналогично произойдет и с товаром: если в запросе на создание покупки будет sku товара, которого нет в базе, то товар будет создан с покупкой по этому sku
Создание покупки в другом отделе
Метод /api/v2/purchases/new/ позволяет создать покупку в отделе, отличном от указанного в store_department_id.
Для этого в запросе необходимо передать один из параметров:
target_dep_id— идентификатор отдела в Sailplay;target_dep_origin_id— ваш внутренний идентификатор отдела, указанный при его создании.
Получение покупки
Для получения информации о созданных покупках используется метод
/api/v2/purchases/get/.
Ответ содержит:
- состав корзины;
- информацию о применённых акциях;
- данные клиента;
- сведения о начислении и списании бонусных баллов.
Метод можно использовать как для получения списка покупок, так и для последующего редактирования или частичного возврата.
Редактирование покупки
В случае изменения заказа после его оформления (например, добавление новых позиций) покупку необходимо отредактировать в Sailplay с помощью метода
/api/v2/purchases/edit/.
Метод также позволяет:
- привязать анонимную покупку к клиенту;
- перепривязать покупку от одного клиента к другому.
Для этого в запросе необходимо передать идентификатор клиента без параметров cart или cart_id.
Подтверждение покупки
Sailplay API поддерживает два состояния покупок:
- неподтверждённая;
- подтверждённая.
Фактическое начисление и списание бонусных баллов происходит в момент подтверждения покупки.
Для подтверждения необходимо вызвать метод
/api/v2/purchases/confirm/.
Частичный возврат заказа
После оформления заказа клиент может отказаться от части позиций без добавления новых.
В этом случае соответствующие позиции необходимо отметить как возвращённые в Sailplay.
Общий процесс работы с возвратами
- Получить покупку по
order_numс помощью метода
/api/v2/purchases/get/. - Получить полный состав заказа с нумерацией позиций.
- Определить позиции, подлежащие возврату.
- Передать запрос на исключение позиций с помощью метода
/api/v2/purchases/returns/create/, указав JSON‑объектreturn_cart(номер позиции, признак исключения, количество, комментарий). - Позиции получают признак возвращённости.
- Сумма покупки и общая сумма покупок клиента уменьшаются на сумму возвращённых позиций.
- Бонусы, начисленные и списанные для позиции, корректируются отдельной транзакцией, если покупка была подтверждена.
- Если покупка не была подтверждена, редактируется количество баллов за покупку.
- Если клиент уже потратил баллы, списание производится в пределах доступного баланса (вплоть до нуля).
Удаление и восстановление покупки
В случае полного отказа клиента от покупки её необходимо удалить с помощью метода
/api/v2/purchases/delete/, передав номер заказа order_num.
Фактического удаления записи из базы Sailplay не происходит. При необходимости покупку можно восстановить методом
/api/v2/purchases/restore/.