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