Методы

  • /api/v2/points/add/ - начисление бонусных баллов
  • /api/v2/points/calc/ - расчет допустимого

/api/v2/points/add/ - начисление бонусных баллов

Назначение метода

Метод служит для начисления пользователю бонусных баллов.

Параметры запроса

Параметр обязательный? Имя параметра Описание параметра
да user_phone или email или origin_user_id Идентификатор клиента. Более подробно см. здесь.
да token  См. здесь
да store_department_id  См. здесь
да points  Количество бонусных баллов, которые необходимо начислить данному пользователю
нет comment  Комментарий к начислению бонусных баллов. Будет отображаться в popup’е пользователя во вкладке со списком действий. Комментарий должен иметь следующий формат: “Начисление бонусных баллов за XXX”.
нет order_num  Уникальный идентификатор запроса. В случае, если запрос с таким идентификатором уже был обработан сервер SailPlay вернет ошибку. Использоуание этого параемтра позволит избежать повторного начисления баллов в условиях нестабильного соединения с интернет и упростит сопоставление действий в вашей системе и системе SailPlay.”.

Ответ сервера

Название параметра Описание параметра
status  
points Параметр из запроса
public_key Ключ, для подстановки в JS-код.
receipt_date Дата и время начисления бонусных баллов

Пример запроса

http://sailplay.ru/api/v2/points/add/?store_department_id=111&token=da32f321d2516c8e56142f2430bea4f72a80a6ae&points=1170&comment=Начисление%20бонусных%20баллов%20за%20комментарий%20на%20сайте&origin_user_id=dbsajfbjk12bjb12112321&order_num=239

/api/v2/points/calc/ - расчет допустимого количества начисляемых и списываемых баллов

Назначение метода

Метод служит для расчета максимального количества баллов, которые можно получить или списать в счет скидки с учетом состава корзины и статуса клиента. Этот метода помогает определить точно прогнозировать объем начислений и списаний, а так же избежать дублирования логики на клиенте в случае сложной логики работы с бонусными баллами.

Так же этот метод можно использовать для проверки регистрации клиента в программе лояльности.

Параметры запроса

Параметр обязательный? Имя параметра Описание параметра
да user_phone или email или origin_user_id Идентификатор клиента. Более подробно см. здесь.
да token  См. здесь
да store_department_id  См. здесь
да positions   Массив товаров внутри данной покупки (состав корзины). Имеет формат “positions=1899,13,200:101,10,379” - в группах, разделенных двоеточиями, передается ID-товаров в вашей системе, ID группы товара (опционально) и его стоимость. Если покупок с данным ID товара несколько - передавать этот ID нужно несколько раз. Важно: суммы должны иметь тип int.
нет max_discount  Максимальный процент скидки, которую можно получить в счет списываемых баллов. Указывается целое количество процентов. При отсутствии данного параметра, используется значение, указанное в настройках
нет points_rate  Коэффициент конвертации местной валюты в баллы. Может принимать значение из полуинтервала (0,1]. При отсутствии данного параметра, используется значение, указанное в настройках. Формат points_rate=0.45
нет reverse_conversion_rate  Коэффициент обратной конфертации конвертации баллы в местную валюту. Формат points_rate=1.2. Обозначает количество баллов, необходимых для получения скидки в 1 рубль. Например, при коэффициенте 3 для получения скидки в 100 рублей понадобится 300 баллов. При отсутствии данного параметра, используется значение, указанное в настройках. 
нет current_discount_value  Актуальное значение размера скидки в местной валюте. Если параметр не указан, размер скидки считается равным 0. Если значение параметра превышает допустимое, выставляется максимально доступный размер скидки.

Ответ сервера

Название параметра Описание параметра
status  
user_points  Количество накопленных на данный момент подтвержденных бонусных баллов.
max_points_receive  Максимальное количество бонусных баллов, которое можно получить при переданном составе покупки. Такое количество баллов будет начислено, если не будет списания баллов в счет скидки.
min_points_receive  Минимальное количество бонусных баллов, которое можно получить при переданном составе покупки. Такое количество баллов будет начислено, если в счет скидки будет списано максимально доступное количество баллов.
max_discount_value  Максимальная доступная сумма скидки в местной валюте.
max_points_result  Количество бонусных баллов клиента после начисления максимального количества бонусных баллов.
min_points_result  Количество бонусных баллов клиента после списания максимального количества бонусных баллов в счет скидки.
min_price_result  Итоговая стоимость заказа при списании в счет скидки максимального доступного количества баллов.
current_price_result  Итоговая стоимость заказа при списании в счет скидки указанного в запросе количества баллов.
current_points_result  Количество бонусных баллов клиента после списания указанного в запросе бонусных баллов в счет скидки.
current_points_receive  Количество бонусных баллов, которое будет начислено за покупку при указанном размере скидки.
positions  Объект, содержащий в себе информацию о максимально возможных и текущих размере скидки и количестве начисляемых за покупку бонусных баллов.

Описание элементов positions

Название параметра Описание параметра
sku  Идентификатор товара на стороне магазина.
max_points_receive  Максимальное количество бонусных баллов, которое можно получить за покупку указанного товара. Такое количество баллов будет начислено, если не будет списания баллов в счет скидки.
min_points_receive   Минимальное количество бонусных баллов, которое можно получить за покупку указанного товара. Такое количество баллов будет начислено, если в счет скидки будет списано максимально доступное количество баллов.
max_discount_value  Максимальный размер скидки по указанному товару.
value  Текущая стоимость товара.
value_after_max_discount  Стоимость товара после начисления максимальной скидки.
current_points_receive  Количество бонусных баллов, начисляемых за покупку товара после списания указанного количества бонусных баллов в счет скидки.
current_discount_value  Текущий размер скидки по товару.

Пример запроса

http://sailplay.ru/api/v2/points/calc/?store_department_id=111&token=da32f321d2516c8e56142f2430bea4f72a80a6ae&&origin_user_id=dbsajfbjk12bjb12112321&positions=1899,200:101,300&max_discount=20

Пример ответа

{
"status": "ok",
"min_points_receive": 75,
"user_points": 50,
"current_points_receive": 85,
"current_points_result": 135,
"max_points_receive": 85,
"current_price_result": 579,
"max_discount_value": 50,
"positions": [
{
"sku": "1899",
"max_points_receive": 10,
"min_points_receive": 7,
"max_discount_value": 50,
"value": 200,
"value_after_max_discount": 150,
"current_points_receive": 10,
"current_discount_value": 0
},
{
"sku": "101",
"max_points_receive": 75,
"min_points_receive": 75,
"max_discount_value": 0,
"value": 379,
"value_after_max_discount": 379,
"current_points_receive": 75,
"current_discount_value": 0
}
],
"min_price_result": 529,
"min_points_result": 75,
"max_points_result": 135
}