Ручной вариант работы с программой Спасибо
В статье описаны необходимые настройки системы, для выбора способа оплаты баллами вручную, при работе на кассовой станции
Настройки в системе
Добавьте скрипт в группу Операции:
procedureProcessOperation1001320(Parameter:integer);vared: TObject;a, minprice:double;beginminprice :=10;ifRKCheck.Valid =falsethenbeginGUI.CmdExec('sb_merci.exe');Exit;end;ifRKCheck.CurrentOrder.ToPaySum < minpricethenbeginGUI.ShowMessage('Сумма заказа должна быть больше '+ floattostr(minprice) +' рублей');Exit;end;ed := GUI.FindComponentByName('Editor');ifSYS.ObjectInheritsFrom(ed,'TGEditor')thenbegina := StrToFloatDef(TGEditor(ed).Text,0);if(a >0)and(a < minprice)thenbeginGUI.ShowMessage('Сумма платежа должна быть больше '+ floattostr(minprice) +' рублей');Exit;end;end;GUI.CmdExec('sb_merci.exe');end;
Здесь minprice := 10 — это минимальная сумма заказа и оплаты, зависит от договора с отделом Спасибо от Сбербанка.
- Добавьте созданный скрипт пользовательской операции, для этого перейдите в меню Сервис > Операции > Пользовательские операции

- Создайте функциональную клавишу, которая будет использована в селекторе для вызова авторизации Спасибо от Сбербанка.
Для этого перейдите в меню Настройки > Графический интерфейс > Функциональные клавиши > Операции с заказом > Селектор операций > Вкладка Функциональные клавиши > нажмите в свободном поле правой кнопкой мыши > Новая функциональная клавиша - Назначьте ей созданную ранее операцию

- Добавьте созданную функциональную клавишу, как вариант, в селектор операций. Для этого: перейдите в меню Настройки > Графический интерфейс > Селекторы.
- Создайте копию предустановленного селектора Чек: Контекстное меню, выберите вставить с подэлементами в селектор Чек: Контекстное меню. Переименуйте копию.

- В результате получите:

- Созданный и измененный селектор добавьте в использование селекторов. Сохраните изменения

Для прекращения просмотра информации о карте установите параметр ПДС показывать инфо о карте в значение False.
Так же для исключения вопроса об уверенности выбора валюты:

Установите параметр Оплата платежной картой в значение Только в режиме расчета
Начисление бонусов через банк
Начисление дополнительных бонусов Спасибо в ручном режиме не работает, если не произвести авторизацию карты (первое прикладывание). Если такое поведение не устраивает, то можно настроить начисление бонусов через банк (без участия farcards+extspasibo.dll). Для этого:
- Обновите extspasibo.dll на версию 7.0.29.16+
- Отключите начисление бонусов запросами от r_keeper прописав в extSpasibo.ini в секции [Config] ToAddPoints=0
- Передайте список терминалов и мерчантов менеджеру СберСпасибо для настройки начислений.
Важно: ограничение начисления на отдельные товары временно недоступны.
Пользовательский сценарий работы на станции
- Наполните заказ позициями меню
- Выборе оплату по настроенной клавише — For Spasibo
- Стоимость заказа меньше значения minprice := 10, — будет получено информационное сообщение о том, что использование оплаты балами системы лояльности Спасибо невозможно, так как сумма меньше минимально разрешенной, в нашем случае это 10 рублей

- Сумма больше 10 рублей — будет получено сообщение:

- При подтверждении оплаты, в заказ добавится сумма:
- Оплата баллами
- Оплата валютой, у которой в качестве интерфейса выбран интерфейс Спасибо. В данном случае, при настройке Extspasibo.ini выбрана валюта с кодом 126
- Остаток доплаты — в нашем случае 1 рубль, регулируется параметром MinPayOtherLimit=100 в extspasibo.ini.

- Стоимость заказа меньше значения minprice := 10, — будет получено информационное сообщение о том, что использование оплаты балами системы лояльности Спасибо невозможно, так как сумма меньше минимально разрешенной, в нашем случае это 10 рублей
Ручной вариант работы с программой "Спасибо" от Сбербанка с возможностью просмотра баланса бонусов перед оплатой
Настройки в системе
Настройки те же, что и в предыдущем варианте с 2 исключениями:
- В параметре Оплата платежной картой выбираем значение Не создавать платёж.

- В скрипте на кнопке "For Spasibo" добавьте перед последним "end;" строку RK7.PerformRefObject(RK7.FindItemByCode(rkrefCurrencyTypes, <GroupCode> ));
где <GroupCode> — код группы валют с валютой Спасибо, например 94.procedureProcessOperation1001320(Parameter:integer);vared: TObject;a, minprice:double;beginminprice :=10;ifRKCheck.Valid =falsethenbeginGUI.CmdExec('sb_merci.exe');Exit;end;ifRKCheck.CurrentOrder.ToPaySum < minpricethenbeginGUI.ShowMessage('Сумма заказа должна быть больше '+ floattostr(minprice) +' рублей');Exit;end;ed := GUI.FindComponentByName('Editor');ifSYS.ObjectInheritsFrom(ed,'TGEditor')thenbegina := StrToFloatDef(TGEditor(ed).Text,0);if(a >0)and(a < minprice)thenbeginGUI.ShowMessage('Сумма платежа должна быть больше '+ floattostr(minprice) +' рублей');Exit;end;end;GUI.CmdExec('sb_merci.exe');RK7.PerformRefObject(RK7.FindItemByCode(rkrefCurrencyTypes, 94 ));end;
Пользовательский сценарий работы на станции
- Наполните заказ позициями меню.
- Нажмите кнопку "For Spasibo" и приложите карту. Выполнится запрос баланса бонусов и откроется группа валют с валютой "Спасибо". На валюте отобразится, сколько бонусов можно списать.

- Либо введите сумму перед выбором валюты, либо нажмите на валюту "Спасибо" для списания всех доступных бонусов.

- Остаток оплатите другой валютой.