Содержание

HTTP сервис для расчета скидок ТП 7

В HTTP сервис KKMTransfer добавлена ф-я DiscountCalculation.

Настройка

В ТП 7 требуется:

  1. Создать и настроить элемент справочника ККМ.
  2. Создать и настроить элемент справочника «Настройки расчета скидок».
  3. Создать запись в регистре сведений «Настройки расчета скидок для ККМ», в которой указать ККМ из п.1 и настройку из п.2.
  4. Опубликовать на веб-сервисе HTTP сервис KKMTransfer.

Метод DiscountCalculation

Для получения рассчитанных скидок нужно отправить POST запрос на адрес «{веб-адрес ТП 7}/hs/KKMTransfer/DiscountCalculation»,
где {веб-адрес ТП 7} - адрес опубликованной базы ТП 7, например, http://localhost:8080/TP7_dev.

В теле запроса нужно передать информацию о чеке, для которого нужно получить рассчитанные скидки.

Авторизация Basic Base64(login:password).

Входные параметры

Тело POST запроса строка JSON:

Пример

{
	"kkm": 1,
	"card": "123456",
	"items": [
		{
			"id": 0,
			"type": 0,     
			"code": 1,    
			"attr": "",
			"pack": "",                
			"q": 2, 
			"price": 50   
		},
		{
			"id": 1,
			"type": 0,     
			"code": 4,    
			"attr": "1",
			"pack": "",                
			"q": 2, 
			"price": 15.3
		}
	],
	"payments": [ 
		{"code": 1, "value": 1000.00}
	]
}

Выходные параметры

В ответ ф-я DiscountCalculation возвращает строку в формате JSON.

Выходные параметры строка JSON:

Пример успешного запроса

{
	"data": {
		"sum_wd": 130.6,
		"sum_total": 81,
		"discount_sum": 0,
		"discount_sum_total": 50,
		"discount_sum_round": -0.4,
		"active_schemes": [
			{
				"code": 2,
				"name": "Акция на чек",
				"discount_sum": 0,
				"bonus_sum": 7,
				"ban": false,
				"details": [
					{
					"code": 2,
					"discount_type": 1,
					"discount_value": 0,
					"discount_sum": 0,
					"bonus_type": 1,
					"bonus_value": 5,
					"bonus_sum": 7,
					"spec_price_code": 0,
					"text": "5% бонус на карту",
					"name": "Начисление бонусов",
					"ban": false
					}
				]
			}
		],
		"items": [
			{
				"id": 0,
				"discount_sum": 50,
				"bonus_sum": 0,
				"spec_price_code": 0,
				"spec_price_value": 0,
				"active_schemes": [
					{
						"code": 1,
						"name": "Акция на позиции",
						"discount_sum": 50,
						"bonus_sum": 0,
						"ban": false,
						"details": [
							{
							"code": 1,
							"discount_type": 1,
							"discount_value": 100,
							"discount_sum": 50,
							"bonus_type": 0,
							"bonus_value": 0,
							"bonus_sum": 0,
							"spec_price_code": 0,
							"text": "Акция 1+1=1",
							"name": "Товарная скидка 2 по цене 1",
							"ban": false
							}
						]
					}
				]
			},
			{
				"id": 1,
				"discount_sum": 0,
				"bonus_sum": 0,
				"spec_price_code": 0,
				"spec_price_value": 0,
				"active_schemes": []
			}
		],
		"bonus_sum": 7,
		"card": {
			"Код": "123456",
			"Наименование": "123456",
			"ТекстДляЧека": "Текст чека ДК",
			"НеВестиНакопление": false,
			"ДеньРождения": "2021-03-19T00:00:00",
			"Накопление": 0,
			"КоличествоЧеков": 0,
			"СуммаБонуса": 0,
			"НомерТелефона": "",
			"АдресЭлектроннойПочты": "dsa@das.com",
			"Группы": [1]
		},
		"card_error": ""
	},
	"result": "ok"
}

Пример неуспешного запроса

{
	"result": "error",
	"msg": "ККМ не найден"
}

Метод PriceChecker

Для получения информации о товаре и/или дисконтной карте нужно отправить POST запрос на адрес «{веб-адрес ТП 7}/hs/KKMTransfer/PriceChecker»,
где {веб-адрес ТП 7} - адрес опубликованной базы ТП 7, например, http://localhost:8080/TP7_dev.

В теле запроса нужно передать штрихкод и/или номер дисконтной карты.

Авторизация Basic Base64(login:password).

Входные параметры

Тело POST запроса строка JSON:

Пример

{
	"kkm": 1,
	"barcode": "12345678",
	"card": "123"
}

Выходные параметры

В ответ ф-я PriceChecker возвращает код ответа 200 и в теле ответа строку в формате JSON.

Выходные параметры строка JSON:

Пример успешного запроса

{
	"result": "ok",
	"good": {
		"code": 1,
		"barcode": "12345678",
		"name": "Товар 1",
		"art": "01",
		"price": 100.00,
		"spec_price": 0,
		"price_d": 95.00,
		"discount_sum": 5.00,
		"measure_unit": "шт.",
		"country": "РФ",
		"description": "описание товара",
		"image": null	
	},
	"card": {
		"Код": "1234",
		"Наименование": "123",
		"ТекстДляЧека": "Текст чека ДК",
		"НеВестиНакопление": false,
		"ДеньРождения": "2021-03-19T00:00:00",
		"Накопление": 0,
		"КоличествоЧеков": 0,
		"СуммаБонуса": 0,
		"НомерТелефона": "",
		"АдресЭлектроннойПочты": "dsa@das.com",
		"Группы": [1]
	}
}

Пример неуспешного запроса

{
	"result": "error",
	"msg": "Товар не найден"
}

Коллекция Postman

discountcalculation.postman_collection.zip