Запрос на расчет дисконта
Для расчета дисконта необходимо выполнить POST-запрос на URL:
http://<host>:<port>/calculatediscount
Пример запроса через curl:
curl -i -X POST -d @check.json http://localhost:8090/calculatediscount --header "Content-Type: application/json"
, где localhost:8090 – это <host>:<port> виртуальной кассы, а check.json – это файл с содержимым чека.
Структура запроса
Начиная с версии 4.6.228 реализована возможность использования массива объектов для параметра shopLabels.
Структура запроса в формате json:
Запрос с добавлением карты и купона
{
"cashCode": "1",
"shopCode": "1",
"shopLabels": [
{
"id": "61fb8bcf81021504bbd255be"
},
{
"id": "628db2d7742703049d07cf8a"
}
],
"identifier": "c4h1k7vnw56psuv8fz12",
"positions": [
{
"posnum": 1,
"barcode": "4600605000991",
"minprice": 30,
"price": 38,
"quant": 5
}
],
"cards": [
{
"number": "1010"
}
],
"coupons": [
{
"number": "2232"
}
]
}
Параметры тела запроса:
| Наименование | Тип данных | Описание |
|---|---|---|
| cashcode | string | Код кассы |
| shopcode | string | Код магазина |
| shopLabels | object | Объект "коды меток магазина" |
| identifier | string | Для внутреннего использования |
| positions | object | Объект "позиции" |
| cards | object | Объект "карты" |
| coupons | object | Объект "купоны" |
Параметры объекта shopLabels:
| Наименование | Тип данных | Описание |
|---|---|---|
| id | string | Код метки магазина |
Параметры объекта positions:
| Наименование | Тип данных | Описание |
|---|---|---|
| posnum | int | Номер позиции в чеке |
| barcode | string | Штрих-код товара |
| minprice | double | Минимальная цена товара |
| price | double | Цена товара |
| quant | double | Количество товара |
Способ ввода для группы карт должен быть установлен "Удаленно".
При работе с сервисом онлайн-карт группы карт должны быть выгружены в базу данных того магазина, в который отправляется запрос.
Параметры объекта cards:
| Наименование | Тип данных | Описание |
|---|---|---|
| number | int | Номер карты |
Параметры объекта coupons:
| Наименование | Тип данных | Описание |
|---|---|---|
| number | int | Номер купона |
Пример ответа
{
"cards": [
{
"bonusbalance": 105141.86,
"cardmode": 1,
"idcardgroup": 1,
"namecardgroup": "Карта клиента",
"number": "1010"
}
],
"coupons": [
{
"number": "2232",
"type": 1
}
],
"identifier": "c4h1k7vnw56psuv8fz12",
"pointsForEarn": 15.0,
"pointsForSpend": 75.0,
"positions": [
{
"barcode": "4600605000991",
"code": "105",
"dept": 1,
"discounts": [
{
"campaigncode": 99,
"campaignname": "Акция выходного дня",
"couponnumber": "2232",
"discountcode": 1,
"discountmode": 2,
"discountname": "Акция выходного дня",
"discountrate": 13.0,
"discountsum": 13.0,
"discounttype": 2,
"ispositiondiscount": 0,
"minpriceignored": false,
"posnum": 1
},
{
"campaigncode": 100,
"campaignname": "Спасибо за покупку",
"discountcode": 1,
"discountmode": 1,
"discountname": "Спасибо за покупку",
"discountrate": 200.0,
"discountsum": 27.0,
"discounttype": 2,
"ispositiondiscount": 0,
"minpriceignored": false,
"posnum": 1
}
],
"earnedbonuses": [
{
"amount": 15.0,
"assettimebeg": "",
"assettimeend": "",
"campaigncode": 104,
"campaignname": "1",
"cardnumber": "1010",
"ispositionbonus": 0,
"weight": 0
}
],
"isallowbonusspend": true,
"measure": 1,
"measurename": "шт",
"minprice": 30.0,
"name": "МОЛОЧНЫЙ ДЕСЕРТ ДАНОН ДАНИССИМО С ТВОРОЖНЫМ КРЕМОМ ЧЕРНИКА 130Г",
"paymentmethod": 0,
"paymentobject": 0,
"posnum": 1,
"price": 38.0,
"quant": 5.0,
"sum": 150.0,
"sumWithoutDiscounts": 190.0,
"taramode": 0,
"tmc": {
"minprice": 22.41,
"price": 24.9
},
"vatcode": -1,
"vatrate": 0.0,
"vatsum": 0.0
}
],
"sum": 150.0
}