Skip to main content

/api/lite/settings/promocode

Получить список промокодов аккаунта (/api/lite/settings/promocode)

/api/lite/settings/promocode

Загрузка списка неудаленных промокодов аккаунта

 

Результат запроса:

{ 
  "success": true,
  "recordsTotal": 2,
  "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,
                  	"fullAddress": "Москва" //В этом поле хранится текстовый адрес для отображения в ЛК
                    "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": [
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ],
                    "maxNumberOfUse": 0,
                    "requiredSkus": [
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ]
                },
      			{
					"type": "MULTI",
				    "anyOfSkus": [ //true, если пристутствует хотя бы 1 товар из списка (sku1 || sku2 || sku3)
                        {
                            "variantId": "1042",
                            "quantity": 1
                        },
                        {
                            "variantId": "1043",
                            "quantity": 1
                        }
                    ],
				    "applyDeliveryDiscount": false,	//Применять ли скидку на доставку
				    "applyDiscount": true,	//Применять ли скидку на товары
                  	"fullAddress": "Москва" //В этом поле хранится текстовый адрес для отображения в ЛК
				    "areaFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "bonusSkus": [ 
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ],
				    "cityFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "deliveryCodes": [	//Коды служб доставки
				        "GLOBAL_DELIVERY"
				    ],
				    "deliveryDiscountType": "PERCENT", //FIX
				    "deliveryDiscountValue": 100,
				    "discountType": "PERCENT",
				    "discountValue": 13,
				    "fromDate": "2018-10-08 16:21:57",	//Дата, с которой действует промокод
				    "fromSum": 5000,	//Сумма, с которой действует промокод
				    "mandatory": false, //Обязательность условия. В случае MULTI не проверяется
				    "maxNumberOfUse": 100,	//Максимальное кол-во применений промокода
				    "minSkuCount": 2,	//Минимальное общее кол-во товаров в корзине 
                  	"maxSkuCount": 4	//Максимальное общее кол-во товаров в корзине 
				    "name": "",
				    "num": 6,
				    "paymentMethodCodes": [ //Коды способов оплаты
				        "online"
				    ],
				    "regionFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "requiredSkus": [ //true, если пристутствуют все товары из списка  (sku1 && sku2 && sku3)
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ],
				    "toDate": "2019-10-08 16:21:57", //Дата, до которой действует промокод
				    "toSum": -1,    //Сумма, с которой действует промокод. Отрицательное значение - без ограничений
				    "unwantedSkus": [ //true, если отсутствуют все товары из списка (!sku1 && !sku2 && !sku3)
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ],
      				 "skusToApplyDiscount": [ //Товары, к которым примеяется скидка
                       {
                            "variantId": "1066",
                            "quantity": 1
                        }
                    ],
				}
            ],
      'useCount":100 //Счётчик использований
    }
]
}

 

Пейджинация

Для пейджинации используются параметры page и size: size - промокодов на странице, page - номер страницы.

Пример: /api/lite/settings/promocode?page=0&size=200

Если параметры не переданы, то дефолтные значения page=0&size=15

Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).

 

Поиск по коду(неполное соответствие, регистронезависимый)

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

например /api/lite/settings/promocode?codeSearch=ET

Поиск производится sql запросом вида: code LIKE '%et%'

Если параметр не задан(или пустой), возвращается полный список промокодов.

Пейджинация также есть.

 

Поиск по коду(точное значение, регистронезависимый)

параметр: code (наименование промокода , если передано, возвращается найденный промокод)

например /api/lite/settings/promocode?code=LETO

Возвращается всегда либо 1 промокод с подробными списками товаров (anyOfskus, bonusSkus, requiredSkus, unwantedSkus), либо ошибка "Не найден промокод со значением: %сcode%"

Является приоритетным по отношению к параметру codeSearch. Если  параметр code задан, поиск происходит только по его точному значению.

Положительный результат запроса: 

{
   "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":[
            {
               "variantId":"1041",
               "quantity":1,
               "product":{
                  "id":"1030",
                  "extId":"955-2",
                  "extId2":null,
                  "shortName":"волшебный дрон (синий)",
                  "description":"волшебный дрон (синий)",
                  "available":true,
                  "deleted":false,
                  "brandName":null,
                  "countryOfOrigin":null,
                  "tnvedCode":null,
                  "internationalDescription":null,
                  "additionalDescriptions":null,
                  "isBestseller":null,
                  "isNovelty":null,
                  "type":"SKU",
                  "vat":"NO_VAT",
                  "reviewScore":null,
                  "options":null,
                  "images":[
                     {
                        "success":true,
                        "url":"https://storage.yandexcloud.net/images-k2c/1ed9d2ee-1c3e-49cc-a798-2dfc93f30f79.jpg",
                        "id":"1ed9d2ee-1c3e-49cc-a798-2dfc93f30f79.jpg",
                        "pos":"0.000000000000000"
                     }
                  ],
                  "variants":[
                     {
                        "id":"1041",
                        "extId":"955-2",
                        "extId2":null,
                        "article":"",
                        "price":1390.00,
                        "oldPrice":null,
                        "stock":[
                           {
                              "warehouseCode":"8b57ff7a-e63f-ecf4-2adf-8cdb093cb2c3",
                              "stockTotal":553,
                              "stockAvailable":552,
                              "stockReserved":1
                           }
                        ],
                        "ordering":null,
                        "defaultImage":null,
                        "weight":300,
                        "dimensions":{
                           "height":15,
                           "width":16,
                           "depth":7
                        },
                        "barcodes":[
                           {
                              "value":"6900000138113",
                              "isDefault":false
                           },
                           {
                              "value":"6900000138129",
                              "isDefault":false
                           }
                        ],
                        "vat":"NO_VAT",
                        "type":"SKU",
                        "optionsUsed":null
                     }
                  ],
                  "collections":[
                     "1001"
                  ],
                  "attributes":null,
                  "collectionPos":null,
                  "anyPublicCollections":null
               }
            }
         ],
         "requiredSkus":[
            
         ],
         "anyOfSkus":[
            {
               "variantId":"1041",
               "quantity":1,
               "product":{
                  "id":"1030",
                  "extId":"955-2",
                  "extId2":null,
                  "shortName":"волшебный дрон (синий)",
                  "description":"волшебный дрон (синий)",
                  "available":true,
                  "deleted":false,
                  "brandName":null,
                  "countryOfOrigin":null,
                  "tnvedCode":null,
                  "internationalDescription":null,
                  "additionalDescriptions":null,
                  "isBestseller":null,
                  "isNovelty":null,
                  "type":"SKU",
                  "vat":"NO_VAT",
                  "reviewScore":null,
                  "options":null,
                  "images":[
                     {
                        "success":true,
                        "url":"https://storage.yandexcloud.net/images-k2c/1ed9d2ee-1c3e-49cc-a798-2dfc93f30f79.jpg",
                        "id":"1ed9d2ee-1c3e-49cc-a798-2dfc93f30f79.jpg",
                        "pos":"0.000000000000000"
                     }
                  ],
                  "variants":[
                     {
                        "id":"1041",
                        "extId":"955-2",
                        "extId2":null,
                        "article":"",
                        "price":1390.00,
                        "oldPrice":null,
                        "stock":[
                           {
                              "warehouseCode":"8b57ff7a-e63f-ecf4-2adf-8cdb093cb2c3",
                              "stockTotal":553,
                              "stockAvailable":552,
                              "stockReserved":1
                           }
                        ],
                        "ordering":null,
                        "defaultImage":null,
                        "weight":300,
                        "dimensions":{
                           "height":15,
                           "width":16,
                           "depth":7
                        },
                        "barcodes":[
                           {
                              "value":"6900000138113",
                              "isDefault":false
                           },
                           {
                              "value":"6900000138129",
                              "isDefault":false
                           }
                        ],
                        "vat":"NO_VAT",
                        "type":"SKU",
                        "optionsUsed":null
                     }
                  ],
                  "collections":[
                     "1001"
                  ],
                  "attributes":null,
                  "collectionPos":null,
                  "anyPublicCollections":null
               }
            },
            {
               "variantId":"1040",
               "quantity":1,
               "product":{
                  "id":"1029",
                  "extId":"955-1",
                  "extId2":null,
                  "shortName":"волшебный дрон (красный)",
                  "description":"волшебный дрон (красный)",
                  "available":true,
                  "deleted":false,
                  "brandName":null,
                  "countryOfOrigin":null,
                  "tnvedCode":null,
                  "internationalDescription":null,
                  "additionalDescriptions":null,
                  "isBestseller":null,
                  "isNovelty":null,
                  "type":"SKU",
                  "vat":"NO_VAT",
                  "reviewScore":null,
                  "options":null,
                  "images":[
                     {
                        "success":true,
                        "url":"https://storage.yandexcloud.net/images-k2c/99eec60a-a8a8-4393-9a72-0ea990e86114.jpg",
                        "id":"99eec60a-a8a8-4393-9a72-0ea990e86114.jpg",
                        "pos":"0.000000000000000"
                     }
                  ],
                  "variants":[
                     {
                        "id":"1040",
                        "extId":"955-1",
                        "extId2":null,
                        "article":"",
                        "price":1390.00,
                        "oldPrice":null,
                        "stock":[
                           {
                              "warehouseCode":"8b57ff7a-e63f-ecf4-2adf-8cdb093cb2c3",
                              "stockTotal":283,
                              "stockAvailable":283,
                              "stockReserved":0
                           }
                        ],
                        "ordering":null,
                        "defaultImage":null,
                        "weight":300,
                        "dimensions":{
                           "height":16,
                           "width":15,
                           "depth":7
                        },
                        "barcodes":[
                           {
                              "value":"6900000138120",
                              "isDefault":false
                           }
                        ],
                        "vat":"NO_VAT",
                        "type":"SKU",
                        "optionsUsed":null
                     }
                  ],
                  "collections":[
                     "1001"
                  ],
                  "attributes":null,
                  "collectionPos":null,
                  "anyPublicCollections":null
               }
            }
         ],
         "unwantedSkus":[
            
         ],
         "minSkuCount":1
      },
      {
         "type":"PAYMENT_METHOD",
         "name":"Способ оплаты",
         "num":2,
         "mandatory":true,
         "unsuccessMessage":"Промокод не применён. Способ оплаты не соответствует правилам акции",
         "applyDiscount":false,
         "applyDeliveryDiscount":false,
         "bonusSkus":[
            
         ],
         "requiredSkus":[
            
         ],
         "anyOfSkus":[
            
         ],
         "unwantedSkus":[
            
         ],
        "skusToApplyDiscount": [
        ],
         "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": "MULTI",
				    "anyOfSkus": [ //true, если пристутствует хотя бы 1 товар из списка (sku1 || sku2 || sku3)
                        {
                            "variantId": "1042",
                            "quantity": 1
                        },
                        {
                            "variantId": "1043",
                            "quantity": 1
                        }
                    ],
				    "applyDeliveryDiscount": false,	//Применять ли скидку на доставку
				    "applyDiscount": true,	//Применять ли скидку на товары
                  	"fullAddress": "Москва" //В этом поле хранится текстовый адрес для отображения в ЛК
				    "areaFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "bonusSkus": [ 
                        {
                            "variantId": "1042",
                            "quantity": 1
                        }
                    ],
				    "cityFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "deliveryCodes": [	//Коды служб доставки
				        "GLOBAL_DELIVERY"
				    ],
				    "deliveryDiscountType": "PERCENT", //FIX
				    "deliveryDiscountValue": 100,
				    "discountType": "PERCENT",
				    "discountValue": 13,
				    "fromDate": "2018-10-08 16:21:57",	//Дата, с которой действует промокод
				    "fromSum": 5000,	//Сумма, с которой действует промокод
				    "mandatory": false, //Обязательность условия. В случае MULTI не проверяется
				    "maxNumberOfUse": 100,	//Максимальное кол-во применений промокода
				    "minSkuCount": 2,	//Минимальное общее кол-во товаров в корзине 
                  	"maxSkuCount": 4	//Максимальное общее кол-во товаров в корзине 
				    "name": "",
				    "num": 6,
				    "paymentMethodCodes": [ //Коды способов оплаты
				        "online"
				    ],
				    "regionFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
				    "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
                  },
				    "toDate": "2019-10-08 16:21:57", //Дата, до которой действует промокод
				    "toSum": -1,    //Сумма, с которой действует промокод. Отрицательное значение - без ограничений
				   
      				 "skusToApplyDiscount": ["1066", "1067"], //Товары, к которым применяется скидка(например, скидка 20% только на товар 1066)
			},  
      		{
            "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
            },
			"skusToApplyDiscount": ["1066", "1067"], //Товары, к которым применяется скидка(например, скидка 20% только на товар 1066)
            "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 : количество
   }
}