Для интеграции с системой Mace Loyalty потребуется установленная система r_keeper_7, PDS интерфейса на кассовом сервере, FarCards со специальной DLL от Mace Loyalty и системная служба обработки карт Mace Loyalty.
Перед тем как перейти к настройке, установите Microsoft Visual C++ 2015 (x86). Файл установки входит в архив с модулем, предоставляемый Mace Loyalty.
Настройка в менеджере RK7
В созданном в ресторане MIDSERVER (Сервис → Станции и Устройства) в устройствах подключите драйвер интерфейса PDS interface (PDS интерфейсов может быть несколько, каждый может ссылаться на свою систему лояльности). Обязательно у драйвера укажите PDS Server Name. Остальные настройки драйвера можно оставить по-умолчанию.

Привяжите драйвер к интерфейсу (Сервис → Интерфейсы). Интерфейс можно использовать существующий (например, "Персональная дисконтная система (ПДС)") или создать свой MACELOYALTY как на картинке. У интерфейса включите следующие параметры:
Общее имя DLL: pdsempty.dll

Создайте MCR алгоритм (Сервис → Обработка сигналов с устройств → MCR алгоритмы) для обработки считываемого QR-кода с WEB-камеры. Тип MCR алгоритма указать как "Скрипт вер. 7.0". В свойствах указать типы устройств "Бесконтактный", т.к. этот тип используется как по-умолчанию при считывании с WEB-камеры. В свойствах MCR-алгоритма указать:
Тип алгоритма: Скрипт вер. 7.0
Бесконтактный: True
Область: Интерфейс
Тип устройства в соответствии с типом устройства для считывания (как правило, камера имеет тип "Бесконтактный", а сканер штрих-кодов - "Штрих код")
Объект: MACELOYALTY (указываем ранее нами созданный интерфейс)

Внутри MCR-алгоритма впишите следующий скрипт:
function MCR1001725(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var SCode: integer;
BaseUrl, QueryUrl, ResultQuery: string;
begin
if pos('ML', Parameter) = 1 then
begin
delete(Parameter, 1, 2);
result:=true;
end;
end;Создайте MCR алгоритм для обработки ручного ввода карт с клавиатуры. Тип MCR алгоритма указать как "Префикс". В свойствах указать типы устройств "Клавиатура". В свойствах MCR-алгоритма указать:
- Клавиатура: True
- Область: Интерфейс
- Объект: MACELOYALTY (указываем ранее нами созданный интерфейс)
- Префикс: “ML”.

Настройте валюту (Деньги -> Валюты) для списания бонусов с карт Mace Loyalty. Создайте валюту с типом "Платежная карта". Валюту назовите "Валюта MaceLoyalty" или просто "MaceLoyalty". У Валюты обязательно укажите следующие свойства:
Название: Валюта MaceLoyalty
Класс ставок: Национальный
Макс. процент: максимальный процент от общей суммы заказа, доступный для оплаты баллами (рекомендуется установить такой же, как и в Mace Loyalty).
Предоплаты: True
Не в сдаче: True
Без сдачи: True
Код транзакции: 119
Субсчет FarCards: 1 (или любое число от 1 до 8)
Интерфейс: MACELOYALTY (ранее созданный вами интерфейс)
Не учитывать в потратах ПДС: True


Для отображения название системы лояльности на интерфейсе и в чеке необходимо:
Добавить скидку (Деньги -> Скидка и Наценки), указав:
Комб. с любой скидкой: true
На вручную: true
Код: должен совпадать с Cards.DiscountNumber из файла FARCARDS.INI. (см. пункт Настройка FarCards ниже).
Название: MaceLoyalty (будет отображаться в чеке и на кассе).
Интерфейс: MaceLoyalty.

Для считывания QR кода необходимо на кассовой станции добавить драйвер для работы с WEB камерой. Настройку свойств драйвера можно оставить по-умолчанию.

Чтобы система не открывала информацию о карте при каждом добавлении в заказ:
- Перейдите: Настройки → Параметры
- В открывшемся окне выберите:
Все → Установочные → Связь с другими системами → Персональные карты → ПДС показывать инфо о карте - В свойствах снимите галочку с пункта «Логический»

Чтобы при добавлении карты к заказу появлялось окно выбора «Списывать бонусы» или «Накапливать бонусы»:
- Перейдите: Настройки → Параметры
- В открывшемся окне выберите:
Все → Установочные → Параметры рабочей станции → Редактирование заказа → Расчёт/оплата заказа → Оплата платежной картой - В свойствах в поле «Значение» установите «Спрашивать»
Теперь при добавлении карты система будет запрашивать действие, что исключит ошибки и упростит работу персонала.

Настройка FarCards
Настройка модуля
У компании Mace Loyalty необходимо получить файлы для сборки сервиса FARCARDS. Основным файлом запросов к системе лояльности является файл http_ext_dll.dll, который подгружается программой ретранслятором FARCARDS.EXE. Все запросы DLL логируются в автоматически создаваемом каталоге "./Logs" откуда запускается Mace Loyalty.
Пропишите настройки в файле FARCARDS.ini для работы с сервисом Mace Loyalty.
[FarServer]
Type = 1
DLL = http_ext_dll.dll
Gate = 1
XMLCP = 1251
Log = 10
[LinkDLL]
1 = pds_netk
[pds_netk]
NetServerName = YOUR_PDS_SERVER_NAME
ininame = netk.ini
DebugMessages = 1
[MaceLoyaltyCRMWebAPI]
GetCardInfo = https://maceloyalty.ru/public/api/v1/cards
TransactionEx = https://maceloyalty.ru/public/api/v1/card-operations
TransactionExCancell = https://maceloyalty.ru/public/api/v1/cancel-card-operation
[Headers]
CompanyId = YOUR_COMPANY_ID
Secret = YOUR_SECRET
[Cards]
DiscountNumber = 4
[Logs]
LogLevel = 1Где:
[FarServer]
Type = 1. Режим запуска Farcards, Тип 1 указывает что FARCARDS работает в режиме ретранслятора в стороннюю DLL.
DLL = http_ext_dll.dll. Подгружаемая DLL, которая предоставляется Mace Loyalty
Gate = 1. Настройка для подключения к RK7. Должная соответствовать разделу LinkDLL
XMLCP=1251. Кодировка XML запросов выдаваемой для сторонней DLL.
Log = 3. Уровень логирования FARCARDS от 1 до 10.
[LinkDLL]
1 = pds_netk. Подгружаемая DLL и линк-ссылка на раздел с настройками для работы с RK7. Pds_netk и комплект рабочих файлов берется со сборки RK7.
[pds_netk]
NetServerName = YOUR_PDS_SERVER_NAME. Имя PDS интерфейса из настроек в менеджерской RK7 (PDS Server Name)
ininame = netk.ini. Наименование файла для настройки pds_netk.dll
[MaceLoyaltyCRMWebAPI]
GetCardInfo = https://maceloyalty.ru/public/api/v1/cards. Ссылка на API Mace Loyalty для получения информации о карте.
TransactionEx = https://maceloyalty.ru/public/api/v1/card-operations. Ссылка на API Mace Loyalty для проведения транзакций по карте.
TransactionExCancell = https://maceloyalty.ru/public/api/v1/cancel-card-operation. Ссылка на API Mace Loyalty для отмены транзакции по карте.
[Headers]
CompanyId = YOUR_COMPANY_ID. Идентификатор компании для подключения к API Mace Loyalty. Передается менеджером Mace Loyalty при подключении.
Secret = YOUR_SECRET. Секретный ключ Mace Loyalty для подключения к API Mace Loyalty. Передается менеджером Mace Loyalty при подключении.
[Cards]
DiscountNumber = 4. Код нулевой скидки из RK7. Используется по-умолчанию если другие скидки не были созданы в менеджере RK7. Проверьте чтобы этот код также был прописан в созданной скидке Деньги -> Скидка и Наценки
[Logs]
LogLevel = 1. Уровень логгирования DLL от 0 до 5
Запуск модуля FarCards
Для запуска Farcards:
Создайте ярлык от Farcards.exe
Откройте свойства ярлыка и добавьте “/desktop” в поле “объект” через пробел

Запустите FarCards и проверьте, что настройки применились верно. Сделать это можно двумя способами:
- Просмотреть статус через интерфейс Farcards. После запуска в трее появится иконка. По двойному клику по ней откроется интерфейс, нас интересует поле Status (должно быть OK)
- По логам. После запуска Farcards в папке будет создан файл "Farcards.LOG". Содержание логов должно быть следующее:
12.09.25 11:08:03.406 ** Start Card Retranslator 6.04 **
12.09.25 11:08:03.406 Log = 10
12.09.25 11:08:03.421 Type: 1
12.09.25 11:08:03.421 External DLL: http_ext_dll.dll
12.09.25 11:08:04.343 call ExtD11. Init()...
12.09.25 11:08:04.343 ...completed
12.09.25 11:08:04.437 Loading Link DLL: pds_netk (pds_netk(7.45).NetKern v209)
12.09.25 11:08:04.641 Link modules loaded.Добавление модуля в автозагрузку
Для удобства на случай перезапуска терминала, добавьте модуль в автозагрузку, для этого:
1. Нажимите Win + R
2. Введите shell:common startup
3. Добавьте ярлык Farcards (с флагом)
После чего он будет стартовать вместе с операционной системой