Расчет акций для корзины

В Sailplay API предусмотрено несколько механизмов расчета акций:

Расчет акций для корзины

Метод /marketing-actions/calc/ является основным инструментом для расчета акций и решает сразу несколько задач:

  • Применяет акции к корзине и обновляет стоимость товаров согласно конфигурациям акций.
  • Отображает список акций, которые могут быть потенциально применены к корзине, при выполнении дополнительных условий.
  • Сохраняет информацию о заказе и примененных акциях в базе данных с возможностью ее последующего использования.

Помимо авторизационных данных запрос обязательно должен содержать JSON-строку с информацией о товарах в корзине (cart): их идентификатор в вашей системе (SKU), стоимость единицы товара и количество.

🚧

Важно

При любых изменениях в составе корзины, необходимо отправлять запрос на пересчет акций.

В результате выполнения запроса вы получите объект состоящий из трех основных массивов:

  • marketing_actions_applied – примененные акции. Содержит информацию о примененных акциях, которую необходимо отобразить на странице оформления заказа в соответствующем поле. Важно! Существует возможность указать - какие именно акции сработали для каждого из товаров. Опционально.
  • possible_marketing_actions – возможные акции. Содержит информацию о тех предложениях, которые могут быть применены для клиента при выполнении дополнительных условий. Например, текст “Закажите фотокнигу и интерьерную печать и напечатайте 100 фотографий бесплатно”.
  • cart – массив корзины. Содержит в себе состав переданной в запросе корзины и модифицированных цен на товары, если были применены какие-либо акции Sailplay.

👍

Полезно

В объекте cart содержится ключ id - идентификатор корзины в базе данных Sailplay. Этот идентификатор в дальнейшем можно передавать в запросах для работы с покупками в параметре cart_id. В этом случае необходимость передавать состав корзины в них отпадает.

Передача идентификатора клиента

Идентификатор клиента не является обязательным для передачи в запросе. Однако, в зависимости от настроек аудитории созданных акций, результат выполнения может отличаться для запроса с идентификатором и без него.

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

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

Передача идентификатора отдела

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

Дополнительные параметры

Опционально, если это предусмотрено бизнес-логикой, для каждой позиции в чеке может быть передан дополнительный параметр min_price - минимальная стоимость товара, которая не может быть снижена при применении акций. Параметр должен быть рассчитан на стороне сайта или кассового ПО.

Размер желаемого списания бонусных баллов в счет скидки передается отдельным параметром dicount_points_writeoff.

Ключ verbose служит для отображения списка ограничений на применение акций, если они были указаны при создании:
Изменение данных касается только массива marketing_actions_applied и вложенного в объект positions массива marketing_actions. Принимает значения 1 (выводить дополнительные данные) или 0 (не выводить). В случае передачи verbose=1 в ответ будут добавлены дополнительные поля:

  • count - Оставшееся кол-во применений акции для пользователя.
  • total_quantity_applied - Оставшееся кол-во товаров на которое может примениться скидка по акции.
  • till_date - Дата окончания действия ограничений для пользователя.
  • total_discount - Оставшаяся сумма, которая может быть получена пользователем в виде скидки.

Ответ в этом случае будет выглядеть так:

"marketing_actions_applied":[
        {
            "count":5,
            "total_quantity_applied":null,
            "service_msg":"6fcc3ebd-b57c-11e7-a265-000c29bf15f9",
            "name":"Процентный прайс от 20.10.2017 (531)",
            "alias":"6fcc3ebd-b57c-11e7-a265-000c29bf15f9",
            "client_msg":"6fcc3ebd-b57c-11e7-a265-000c29bf15f9",
            "till_date":"2017-11-19T19:44:58.489",
            "total_discount":"207894.00"
        }
    ]

promocodes - JSON-массив со списком промокодов, примененных к корзине (заказу).

recomendations - список рекомендаций

Применение акций к корзине без сохранения результата

/marketing-actions/calc/light/ - полностью аналогичен /marketing-actions/calc/ и принимает все те же параметры в запросе. Отличием его работы является то, что ответ не будет сохранен в базе данных Sailplay и будет недоступен для для дальнейшего использования при работе с покупками