/api/lite/settings/promocode
Получить список промокодов аккаунта (/api/lite/settings/promocode)
/api/lite/settings/promocode
Загрузка списка неудаленных промокодов аккаунта
Результат запроса:
{
"success": true,
"promocodes": [
{
"code": "leto",
"isActive": true,
"discountType": "PERCENT",
"discountValue": 20,
"conditions": null,
'useCount":20
},
{
"code": "test",
"isActive": true,
"discountType": "FIX",
"discountValue": 12,
"conditions": [ //Условия действия (опционально). null для промокода без условий.
{
"type": "TIME_LIMIT",
"name": "Срок действия промокода",
"num": 0,
"mandatory": true,
"unsuccessMessage": "Срок действия акции истёк",
"applyDiscount": false,
"applyDeliveryDiscount": false,
"fromDate": "2018-10-08 16:21:57",
"toDate": "2019-10-08 16:21:57",
"maxNumberOfUse": 0
},
{
"type": "USE_LIMIT",
"name": "Максимальное кол-во использований промокода",
"num": 1,
"mandatory": true,
"unsuccessMessage": "Промокод более недействителен",
"applyDiscount": false,
"applyDeliveryDiscount": false,
"maxNumberOfUse": 100
},
{
"type": "ORDER_SUM",
"name": "Бесплатная доставка курьером при заказе от 5000 р",
"num": 2,
"mandatory": true,
"unsuccessMessage": "Сумма заказа меньше 5000 рублей",
"applyDiscount": false,
"applyDeliveryDiscount": true,
"deliveryDiscountType": "PERCENT",
"deliveryDiscountValue": 100,
"deliveryCodes": [
"GLOBAL_DELIVERY"
],
"maxNumberOfUse": 0,
"fromSum": 5000,
"toSum": -1
},
{
"type": "ORDER_SUM",
"name": "Скидка 200р при заказе от 2000 р",
"num": 3,
"mandatory": true,
"unsuccessMessage": "Сумма заказа меньше 2000 рублей",
"applyDiscount": true,
"discountType": "FIX",
"discountValue": 200,
"applyDeliveryDiscount": false,
"maxNumberOfUse": 0,
"fromSum": 2000,
"toSum": -1
},
{
"type": "DELIVERY_LOCATION",
"name": "Скидка 10% на доставку по Москве при оплате онлайн",
"num": 4,
"mandatory": false,
"unsuccessMessage": "Данный промокод недействителен",
"applyDiscount": false,
"applyDeliveryDiscount": true,
"deliveryDiscountType": "PERCENT",
"deliveryDiscountValue": 10,
"paymentMethodCodes": [
"online"
],
"maxNumberOfUse": 0,
"cityFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
"regionFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
},
{
"type": "SKU_COMBINATION",
"name": "2 + 1 Купи 2 товара, 3й в подарок",
"num": 5,
"mandatory": true,
"unsuccessMessage": "Промокод не применён. В корзине отсутствуют товары, соответствующие условию акции.",
"applyDiscount": true,
"discountType": "FIX",
"discountValue": 250,
"applyDeliveryDiscount": false,
"bonusSkus": {
"1000": 1
},
"maxNumberOfUse": 0,
"requiredSkus": {
"1000": 2
}
},
{
"type": "MULTI",
"name": "",
"num": 6,
"mandatory": false,
"applyDiscount": true,
"discountType": "PERCENT",
"discountValue": 13,
"applyDeliveryDiscount": false,
"maxNumberOfUse": 1
}
],
'useCount":100
}
]
}
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/settings/promocode?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=15
Поиск по коду
параметр: code (наименование промокода , если передано, возвращается найденный промокод)
например /api/lite/settings/promocode?code=LETO
Положительный результат запроса:
{
"success": true,
"code": "leto20",
"isActive": true,
"useCount": 241,
"discountType": "FIX",
"discountValue": 0,
"conditions": [
{
"type": "SKU_COMBINATION",
"name": "Танк в подарок",
"num": 1,
"mandatory": true,
"unsuccessMessage": "В корзине отсутствует волшебный дрон.",
"applyDiscount": true,
"discountType": "FIX",
"discountValue": 399,
"applyDeliveryDiscount": false,
"bonusSkus": {
"1013": 1
},
"anyOfSkus": {
"1041": 1,
"1040": 1
},
"minSkuCount": 1
},
{
"type": "PAYMENT_METHOD",
"name": "Способ оплаты",
"num": 2,
"mandatory": true,
"unsuccessMessage": "Промокод не применён. Способ оплаты не соответствует правилам акции",
"applyDiscount": false,
"applyDeliveryDiscount": false,
"paymentMethodCodes": [
"online",
"cod-card"
]
}
]
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Создать/изменить промокод (/api/lite/settings/promocode)
/api/lite/settings/promocode
Создать / изменить промокод.
Ключ для изменения - поле code - уникальное.
Регистр поля не имеет значения
все поля обязательны
Пример запроса:
{
"code": "leto",
"isActive": true,
"discountType": "PERCENT",
"discountValue": 20,
"conditions": [ //Условия действия (опционально). null для промокода без условий.
{
"type": "SKU_COMBINATION",
"name": "Рюкзак URBAN BACKPACK",
"num": 0,
"mandatory": true,
"unsuccessMessage": "Промокод не применён. В корзине отстутствует товар: Рюкзак URBAN BACKPACK",
"applyDiscount": true,
"discountType": "FIX",
"discountValue": 1500,
"applyDeliveryDiscount": false,
"maxNumberOfUse": 0,
"requiredSkus": { //Товары, каждый из которых должен присутствовать в заказе в заданном кол-ве (т1 и т2 и т3)
"djburbanbackpack": 1
}
"anyOfSkus": { //Товары, хотя бы одни из которых должен присутствовать в заказе в заданном кол-ве (т1 || т2 || т3)
"1002": 2,
"1003": 1,
"1000": 1
},
"unwantedSkus": { //Товары, присутствие хотя бы одного из которых в заданном кол-ве не подходит под условие (!т1 || !т2 || !т3)
"1005": 1
},
"bonusSkus": { //Бонусные товары, добавляемые к заказу
"1000": 1
},
"minSkuCount" : 2 //Минимальное общее кол-во товаров, удовлетворяющих условию акции (сумма [товар • кол-во] всех позиций заказа)
},
{
"type": "PAYMENT_METHOD",
"name": "Обязательный способ оплаты",
"num": 5,
"mandatory": true,
"unsuccessMessage": "Промокод действителен только по предоплате картой на сайте",
"applyDiscount": false,
"applyDeliveryDiscount": false,
"maxNumberOfUse": 0,
"paymentMethodCodes": [
"online"
]
}
]
}
Результат запроса:
{
"success": true
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "текст ошибки"
}
]
}
Удалить промокод (/api/lite/settings/promocode)
/api/lite/settings/promocode
Удаление одного промокода. Использовать параметр в url вида ?code=test
Результат запроса:
{
"success": true
}
Проверить действие промокода (публичный) (/api/lite/pub/promocode)
/api/lite/pub/promocode
Проверка переданного промокода на активность
параметр: code
например /api/lie/pub/promocode?code=test
Положительный результат запроса:
{
"success": true,
"code": "test",
"isActive": true,
"discountType": "FIX", // FIX/PERCENT
"discountValue": 13
}
Ошибка, если у промокода заданы условия:
{
"success":false,
"errors":[
{
"code":1,
"message":"У промокода заданы условия применения. Для валидации, воспользуйтесь методом /api/lite/pub/check-promocode-conditions/"
}
]
}
Отрицательный результат запроса:
{
"success": false,
"errors": []
}
Проверить действие промокода С УСЛОВИЯМИ (публичный)
/api/lite/pub/check-promocode-conditions
Для валидации условий промокода, необходимо передать весь заказ целиком, с заполненным промокодом (аналогично /api/lite/pub/order)
Пример запроса:
{
"comment":"",
"confirmStatus":"APPROVED",
"paymentStatus":"NOT_PAID",
"paymentMethodCode":"no-cod",
"totalOrderSum":1590,
"delivery":{
"receiver":{
"name":"",
"phone":"",
"alternativePhone":"",
"email":"",
"surname":"",
"patronymic":""
},
"deliveryCode":"RUSSIAN_POST_TEMPOLINE",
"timeFrom":"09:00",
"timeTo":"20:00",
"desiredDeliveryDate":null,
"deliveryComment":"",
"address":{
"region":"Московская",
"area":"Пушкинский",
"city":"Пушкино",
"settlement":null,
"street":"",
"house":"",
"block":"",
"building":"",
"flat":"",
"fullAddress":"",
"zip":"",
"regionFias":"29251dcf-00a1-4e34-98d4-5c47484a36d4",
"areaFias":"2f88bc57-5096-4aee-bcfc-fe26d4dd3a26",
"cityFias":"7f22cfa4-34fa-4fa0-bcb0-620cd8402cfa",
"settlementFias":null,
"country":"RU"
},
"pickupPointId":""
},
"items":[
{
"num":1,
"id":"1000",
"quantity":1,
"variants":[
]
},
{
"num":2,
"id":"delivery"
}
],
"promocode":"CODE"
}
Результат запроса:
{
"success":true,
"code":"code",
"isActive":true,
"discountType":"FIX",
"discountValue":836,
"hasConditions":true,
"deliveryDiscountValue":50, //Скидка на доставку в %
"bonusSkus":{
"1000":1 //Бонусные товары по промокоду в формате id : количество
}
}