В статье описаны необходимые настройки системы, для выбора способа оплаты баллами вручную, при работе на кассовой станции 

Настройки в системе

  1. Добавьте скрипт в группу Операции

    procedure ProcessOperation1001320(Parameter: integer);
    var ed: TObject;
        a, minprice: double;
    begin
      minprice := 10;
      if RKCheck.Valid = false then begin
        GUI.CmdExec('sb_merci.exe');
        Exit;
      end;
      if RKCheck.CurrentOrder.ToPaySum < minprice then begin
        GUI.ShowMessage('Сумма заказа должна быть больше ' + floattostr(minprice) + ' рублей');
        Exit;
      end;
      ed := GUI.FindComponentByName('Editor');
      if SYS.ObjectInheritsFrom(ed, 'TGEditor') then begin
        a := StrToFloatDef(TGEditor(ed).Text, 0);
        if (a > 0) and (a < minprice) then begin
          GUI.ShowMessage('Сумма платежа должна быть больше ' + floattostr(minprice) + ' рублей');
          Exit;
        end;    
      end;
      GUI.CmdExec('sb_merci.exe');
    end;

               

    Здесь minprice := 10 — это минимальная сумма заказа и оплаты, зависит от договора с отделом Спасибо от Сбербанка.
  2. Добавьте созданный скрипт пользовательской операции, для этого перейдите в меню Сервис > Операции > Пользовательские операции

  3. Создайте функциональную клавишу, которая будет использована в селекторе для вызова авторизации Спасибо от Сбербанка.
    Для этого перейдите в меню Настройки > Графический интерфейс > Функциональные клавиши > Операции с заказом > Селектор операций > Вкладка Функциональные клавиши > нажмите в свободном поле правой кнопкой мыши > Новая функциональная клавиша
  4. Назначьте ей созданную ранее операцию
  5. Добавьте созданную функциональную клавишу, как вариант, в селектор операций. Для этого: перейдите в меню Настройки > Графический интерфейс > Селекторы
  6. Создайте копию предустановленного селектора Чек: Контекстное меню, выберите вставить с подэлементами в селектор Чек: Контекстное меню. Переименуйте копию.
  7. В результате получите:

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

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

Так же для исключения вопроса об уверенности выбора валюты:

Установите параметр Оплата платежной картой в значение Только в режиме расчета

Начисление бонусов через банк

Начисление дополнительных бонусов Спасибо в ручном режиме не работает, если не произвести авторизацию карты (первое прикладывание). Если такое поведение не устраивает, то можно настроить начисление бонусов через банк (без участия farcards+extspasibo.dll). Для этого:

  1. Обновите extspasibo.dll на версию 7.0.29.16+
  2. Отключите начисление бонусов запросами от r_keeper прописав в extSpasibo.ini в секции [Config] ToAddPoints=0
  3. Передайте список терминалов и мерчантов менеджеру СберСпасибо для настройки начислений.

    Важно: ограничение начисления на отдельные товары временно недоступны.

Пользовательский сценарий работы на станции

  1. Наполните заказ позициями меню
  2. Выборе оплату по настроенной клавише — For Spasibo
    • Стоимость заказа меньше значения minprice := 10, — будет получено информационное сообщение о том, что использование оплаты балами системы лояльности Спасибо невозможно, так как сумма меньше минимально разрешенной, в нашем случае это 10 рублей
    • Сумма больше 10 рублей — будет получено сообщение:
    • При подтверждении оплаты, в заказ добавится сумма:
      1. Оплата баллами
      2. Оплата валютой, у которой в качестве интерфейса выбран интерфейс Спасибо. В данном случае, при настройке Extspasibo.ini выбрана валюта с кодом 126
      3. Остаток доплаты — в нашем случае 1 рубль, регулируется параметром MinPayOtherLimit=100 в extspasibo.ini.

Ручной вариант работы с программой "Спасибо" от Сбербанка с возможностью просмотра баланса бонусов перед оплатой

Настройки в системе

Настройки те же, что и в предыдущем варианте с 2 исключениями:

  1. В параметре Оплата платежной картой выбираем значение Не создавать платёж.
  2. В скрипте на кнопке "For Spasibo" добавьте перед последним "end;" строку RK7.PerformRefObject(RK7.FindItemByCode(rkrefCurrencyTypes, <GroupCode> ));
    где <GroupCode> —  код группы валют с валютой Спасибо, например 94.

    procedure ProcessOperation1001320(Parameter: integer);
    var ed: TObject;
        a, minprice: double;
    begin
      minprice := 10;
      if RKCheck.Valid = false then begin
        GUI.CmdExec('sb_merci.exe');
        Exit;
      end;
      if RKCheck.CurrentOrder.ToPaySum < minprice then begin
        GUI.ShowMessage('Сумма заказа должна быть больше ' + floattostr(minprice) + ' рублей');
        Exit;
      end;
      ed := GUI.FindComponentByName('Editor');
      if SYS.ObjectInheritsFrom(ed, 'TGEditor') then begin
        a := StrToFloatDef(TGEditor(ed).Text, 0);
        if (a > 0) and (a < minprice) then begin
          GUI.ShowMessage('Сумма платежа должна быть больше ' + floattostr(minprice) + ' рублей');
          Exit;
        end;    
      end;
      GUI.CmdExec('sb_merci.exe');

      RK7.PerformRefObject(RK7.FindItemByCode(rkrefCurrencyTypes, 94 ));

    end;


Пользовательский сценарий работы на станции

  1. Наполните заказ позициями меню.
  2. Нажмите кнопку "For Spasibo" и приложите карту. Выполнится запрос баланса бонусов и откроется группа валют с валютой "Спасибо". На валюте отобразится, сколько бонусов можно списать.

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

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