Запрос на расчет дисконта

Для расчета дисконта необходимо выполнить 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" 
    }
  ]
}

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

НаименованиеТип данныхОписание
cashcodestringКод кассы
shopcodestringКод магазина
shopLabelsobjectОбъект "коды меток магазина"
identifierstringДля внутреннего использования
positionsobjectОбъект "позиции"
cardsobjectОбъект "карты"
couponsobjectОбъект "купоны"

Параметры объекта shopLabels:

НаименованиеТип данныхОписание
idstringКод метки магазина

Параметры объекта positions:

НаименованиеТип данныхОписание
posnumintНомер позиции в чеке
barcodestringШтрих-код товара
minpricedoubleМинимальная цена товара
pricedoubleЦена товара
quantdoubleКоличество товара

Способ ввода для группы карт должен быть установлен "Удаленно".

При работе с сервисом онлайн-карт группы карт должны быть выгружены в базу данных того магазина, в который отправляется запрос.

Параметры объекта cards:

НаименованиеТип данныхОписание
numberintНомер карты

Параметры объекта coupons:

НаименованиеТип данныхОписание
numberintНомер купона

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

{
    "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": "Акция выходного дня",
                    "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
}
  • No labels