Перейти к основному содержимому

Покупки и основные методы по работе с ними

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

Передача на сервер 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.

Общий процесс работы с возвратами

  1. Получить покупку по order_num с помощью метода
    /api/v2/purchases/get/.
  2. Получить полный состав заказа с нумерацией позиций.
  3. Определить позиции, подлежащие возврату.
  4. Передать запрос на исключение позиций с помощью метода
    /api/v2/purchases/returns/create/, указав JSON‑объект return_cart (номер позиции, признак исключения, количество, комментарий).
  5. Позиции получают признак возвращённости.
  6. Сумма покупки и общая сумма покупок клиента уменьшаются на сумму возвращённых позиций.
Важно
  • Бонусы, начисленные и списанные для позиции, корректируются отдельной транзакцией, если покупка была подтверждена.
  • Если покупка не была подтверждена, редактируется количество баллов за покупку.
  • Если клиент уже потратил баллы, списание производится в пределах доступного баланса (вплоть до нуля).

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

В случае полного отказа клиента от покупки её необходимо удалить с помощью метода
/api/v2/purchases/delete/, передав номер заказа order_num.

Фактического удаления записи из базы Sailplay не происходит. При необходимости покупку можно восстановить методом
/api/v2/purchases/restore/.