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

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

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

Передача на сервер 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 допускается настройка, позволяющая при передаче запроса на создание покупки сразу делать ее подтвержденной, однако в такой логике отложенное подтверждение покупки не получится реализовать.

подсказка

В настройках отдельного аккаунта в Sailplay допускается настройка, позволяющая автоматически делать отложенное подтверждение покупки (минимальный период - начало следующего календарного дня). Настройка может работать как для всех отделов, так и только для определенных (например, можно выделить автоматическое подтверждение покупок на следующий день для розницы, но не делать его для покупок отдела, который используется для онлайна)


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

После оформления заказа клиент может отказаться от части позиций без добавления новых.
В этом случае соответствующие позиции необходимо отметить как возвращённые в 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/.