Loyalty

  1. Домой
  2. Документация
  3. Loyalty
  4. API процессинга покупок
  5. confirm

confirm

Метод передает данные о покупке в систему лояльности, выполняет начисление и оплату бонусами.

Начисление бонусных баллов производится на сумму оплаты деньгами. При расчете бонусов сумма берется из поля Amount.
Пример 1. Совершили покупку на 1000 рублей ( в покупке: Продукт 1= 1000*1). Вы оплатили бонусами 30% от стоимости покупки, то есть 300 руб. бонусами и остальные 700 руб. — наличными. Вы участвуете в акции «Начислить 10 % от стоимости покупки». Вам, как участнику ПЛ будет начислено = 10%* 700=70  бонусных баллов.

Принимаемые справочные значения

  • Параметр «paymentForm» принимает значения:

«InstallmentPlan»
«Credit»
«FullPayment»

  • Параметр «isTesting» принимает значения:

«true»(Тестовый режим. Изменений в базе не происходит)
«false»

Массив «Payments»:

  • Параметр «type» принимает значения:

«Cash»
«Bonus»
«GiftCard»

Запрос

URL: https://<адрес сервиса процессинга>/purchase/confirm
Метод: POST

Заголовки

Authorization: Bearer <token>
Content-Type: application/json

Пример запроса

{
	"id": "070",
        "number": "140",
	"client": {
		"mobilePhone": "+79291234567",
		"brandCode": "default"
	},
	"date": "2019-04-03T12:00:43.201",
	"shopCode": "3",
        "cashdeskCode": "156",
	"products": [
		{
			"index": 1,
			"price": 10990.00,
			"productCode": "NB996",
			"quantity": 1.000,
			"amount": 10990.00
		},
		{
			"index": 2,
			"price": 5000.00,
			"productCode": "M335",
			"quantity": 1.000,
			"amount": 5000.00
		}
	],
	"promoCodes": [
		"LETO2019"
 	],
	"payments": [
		{
			"type": "Cash",
			"amount": 15990.00
		},
                {
			"type": "Bonus",
                        "bonusType": "main",
			"amount": 200
		}
	],
        "paymentForm": "FullPayment",
        "customFields": {
                "property1": null,
                "property2": null
},
	"isTesting": true
}

Описание параметров

ПараметрТипОписание
idstring Идентификатор покупки
Длина строки должна быть меньше или равна 50
numberstringЧитаемый номер заказа для клиента
Длина строки должна быть меньше или равна 50
clientobject Данные клиента для авторизации
В зависимости от способа идентификации клиента может содержать либо номер карты, либо номер телефона
mobilePhone string Мобильный телефон клиента
Значение должно быть в формате «телефон»
cardNumber string Номер карты клиента
Длина строки должна быть меньше или равна 50
brandCodestringКод бренда в котором зарегистрирован клиент
idGuidid клиента
datestring Дата и время покупки
Длина строки должна быть больше или равна 1
Значение должно иметь формат «дата-время»
shopCode string Код точки продажи
Длина строки должна быть меньше или равна 50
cashdeskCodestringКод кассы
Длина строки должна быть меньше или равна 50
products arrayСписок продуктов
indexnumberПорядковый номер товара в покупке
Число должно быть меньше или равно 10000
Значение должно быть в формате ‘int32’
productCode string Код товара
Длина строки должна быть меньше или равна 50
pricenumber Цена товара
Число должно быть меньше или равно 100000000
Значение должно иметь формат ‘double’
quantitynumber Количество товара в позиции
Число должно быть меньше или равно 1000000
Значение должно иметь формат ‘double’
amount number Сумма позиции
Число должно быть меньше или равно 100000000
Значение должно иметь формат ‘double’
promoCodesarray Код промокода
paymentsarrayОплаты
typestringТип оплаты
Длина строки должна быть больше или равна 1
Возможные значения: Cash(0), CreditCard(1), Bonus(2), GiftCard(3), PromoGiftCard(4), PaymentOrder(5)
*Если выбран тип оплаты: Bonus, необходимо заполнять параметр bonusType
amountnumberСумма оплаты
Число должно быть меньше или равно 1000000000
Значение должно иметь формат ‘double’
paymentFormnumberФорма оплаты : Fullpayment (Оплата полностью), Credit (Кредит), InstallmentPlan (Рассрочка)
customFieldsobjectДополнительные параметры, которые необходимо передать в покупке
isTestingbooleanТестовый режим
Если значение «true», то изменения в БД не сохраняются

Ответ

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

{
  "data": {
    "chargedBonuses": [
      {
        "promotion": {
	    "name": "Бонусы на кроссовки",
	    "description": "Получи дополнительные 20% бонусов на кроссовки за покупки в мае"
	},
        "amount": 549.5
      }
    ]
  },
  "success": true
}

Описание параметров

Параметр
Тип Описание
data
object Данные ответа на запрос
chargedBonuses array Начисления бонусных баллов
promotion object
Акция
name string
Название акции
description string
Описание акции
amount number Начислено бонусных баллов
Значение должно иметь формат ‘double’
success boolean Результат запроса

Примечания

*Для заполнения справочного значения на стороне creatio, в атрибуте customFields необходимо указать значение колонки «Code» записи, которую необходимо присвоить.

*Если продукт не найден в системе, будет получен соответствующий ответ на запрос и создан продукт с именем «unknown product» с указанным параметром Code.

{
  "success": true,
  "warnings": [
    "Product with code 344 is unknown",
    "Product with code 345 is unknown"
  ]
}

*При выполнении метода Purchase/confirm:

1. Указанные значения в параметре amount массива payments

«payments»: [
{
«type»: «Cash»,
«amount»: 300
},

будут записаны в поле покупки [Оплачено] на стороне creatio

2. В поле покупки [Итог] на стороне creatio будет записано общее значение суммы всех продуктов по параметру amount

«products»: [
{
«index»: 1,
«productCode»: «001»,
«price»: 36.50,
«quantity»: 2,
«amount»: 200
},
{
«index»: 2,
«productCode»: «002»,
«price»: 100,
«quantity»: 2,
«amount»: 200
}

3. В поле покупки [Итог до вычета скидок] на стороне creatio будет записана сумма продуктов по формуле: Цена * количество

«products»: [
{
«index»: 1,
«productCode»: «001»,
«price»: 36.50,
«quantity»: 2,
«amount»: 200
}

Материал был полезен? Да 3 Нет 1