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

/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 : количество
   }
}