Плагин кассы
Страница для того, кто ставит плагин на кассу iikoFront. Разработчику сайта она не нужна: сайт работает с API и с кассой напрямую не общается.
Что это
AploLoyalFront — один плагин для iikoFront, в котором работают две части:
- доставка AploDelivery — касса забирает заказы сайта, создаёт их в iiko и сообщает сайту статусы;
- лояльность AploCard — расчёт скидок и бонусов, QR гостя на экране заказа.
Обе части ставятся одной папкой и запускаются вместе с iikoFront.
Скачать
| Параметр | Значение |
|---|---|
| Версия | 1.4.0 + сертификаты (171f237) |
| Дата | 15.10.2026 |
| Файл | AploLoyalFront-1.4.0-certificates-20261015.zip |
| Размер | 956205 байт |
| SHA-256 | a589db68a15850bd4ee63bca99ba1296ffc894ea3bd7e285f82bd870d53ee89a |
Та же контрольная сумма отдельным файлом: SHA256SUMS.
Новые Core/Worker DLL установлены и проверены на кассе Боброво. Приём сертификатов разрешён сервером только для точки 3; выкладка на остальные кассы выполняется отдельно.
Проверьте архив после скачивания. В PowerShell:
Get-FileHash .\AploLoyalFront-1.4.0-certificates-20261015.zip -Algorithm SHA256
Значение должно совпасть со строкой SHA-256 из таблицы.
В архиве нет ключей и файлов настроек. Ключи выдаёт Aplo — см. Ключи и связь.
Сборка поддерживает полное покрытие сертификатом с нулевой доплатой. На Боброво настроены точный GUID типа SERT и IikoCard51PaymentCodes: ["SERT"]. Для других точек нужны отдельная проверка типа оплаты и включение на сервере.
Состав архива
В архиве 11 файлов, все лежат в корне.
| Файл | SHA-256 |
|---|---|
AploDelivery.Core.dll | 07e639af475876bd836361954ec6b26a39d452ee556fdd3b815abb450230a7e8 |
AploDelivery.Infrastructure.dll | 891eb5ce77b3e329d03c28ac878d02fe87f290e10dd37c676a70aa3cfe399266 |
AploDelivery.Worker.dll | 90e3eb74c7277ffe53bc1f3df04272366af64cd59479079a407f28082097d67c |
AploLoyalFront.dll | b8702ec62be7578a6b29d6b21bd0126538787c59f9a939b13aa3ebdc4a891880 |
Manifest.xml | f9347cc8e452ff3856fa5b483a081897b0b72e2a7b905e7eb3e183e6641edb69 |
Newtonsoft.Json.dll | e1e27af7b07eeedf5ce71a9255f0422816a6fc5849a483c6714e1b472044fa9d |
System.Drawing.Common.dll | 0b1e23603f49613b623a82a2b04260642ab8b118d138726dda6556bead77b966 |
System.Reactive.dll | cfe5144ff628c1f5f0a2b8c5a8b89e327a0b71d0c6c1653f8fd16ea074b37d76 |
System.Runtime.CompilerServices.Unsafe.dll | 1ad2dd7225d5162a0fd3a3b337a1949448520e3130a4bc8e010ec02f76097500 |
System.Threading.Tasks.Extensions.dll | 1f54718bbab6e7a649e460f5097ed444f33452b1451841f67e2e194641d5fccd |
System.ValueTuple.dll | e905d102585b22c6df04f219af5cbdbfa7bc165979e9788b62df6dcc165e10f4 |
Три файла AploDelivery.*.dll и AploLoyalFront.dll меняйте только вместе, из одного архива.
Требования
- iikoFront 9.2 или 9.4 — плагин проверен на кассах обеих версий.
- Plugin API V8.
- .NET Framework 4.7.2.
- Лицензия iiko на модуль
21016318. Без неё iikoFront плагин не загрузит. - Доступ с кассы по HTTPS к
https://api.aplosnab.ruи к серверу лояльности, адрес которого выдаёт Aplo.
Что нового с 27.09.2026
Доставка, версия 2
- Комментарий к заказу виден в заказе на кассе.
- Онлайн-оплата, ВкусКоины и промокоды доходят до кассы: предоплата, вторая строка оплаты и скидка появляются в заказе.
- Оплаченный заказ можно отменить через API: касса снимает запись об оплате и отменяет заказ. Деньги и ВкусКоины гостю возвращают сайт и AploCard.
- Остановлена зацикленная переотправка событий: если сервер окончательно отклонил событие по заказу, касса закрывает запись в журнале один раз и больше её не отправляет.
Лояльность
- QR гостя на экране заказа: кассир сканирует код гостя, плагин находит гостя в AploCard.
- Исправления режима наблюдения: одна запись журнала на заказ; коды купонов в журнал не пишутся.
Установка вручную
- Сохраните копию текущей папки плагина, если она есть. Скопируйте папку
AploLoyalFrontцеликом в место внеPlugins, например вC:\ProgramData\Aplo\rollback\<дата>\AploLoyalFront. Копия внутриPluginsне подходит: iikoFront попробует загрузить её как второй плагин. - Распакуйте архив в папку
AploLoyalFrontвнутри папкиPluginsiikoFront. ПапкаPluginsлежит рядом с исполняемым файлом iikoFront; обычный путь —C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\AploLoyalFront. Файлы должны лежать прямо в этой папке, без вложенной. - Положите в ту же папку, рядом с
AploLoyalFront.dll, два файла настроек с точно такими именами:aplo-delivery-config.json(доставка) иaplo-loyalty-config.json(лояльность). - Дайте пользователю Windows, под которым работает касса, право на изменение папки плагина и папки журнала доставки
C:\ProgramData\Aplo\AploDeliveryFront\journal. Если папки журнала нет — создайте её. - Перезапустите iikoFront один раз под обычным пользователем кассы. Перезагружать компьютер не нужно.
- Откройте журнал плагина
%APPDATA%\iiko\CashServer\Logs\plugin-AploLoyalFront.log(профиль пользователя кассы) и найдите строки последнего запуска.
Что должно быть в журнале:
AploLoyalFront: initialized (mode=shadow)или(mode=live)— плагин загрузился;AploDelivery: embedded delivery worker initialized.— доставка работает.
Если вместо второй строки в журнале AploDelivery: disabled by safe-install gate — файл настроек доставки отсутствует или в нём "enabled": false. Строка AploDelivery: isolated startup failed означает ошибку в файле настроек доставки; лояльность при этом продолжает работать. Если нет файла aplo-loyalty-config.json, плагин не запустится совсем.
Файлы настроек
Примеры с заполнителями вместо настоящих значений:
Скопируйте пример, уберите .example из имени и замените заполнители: <API_KEY>, <SECRET>, <POINT_ID> и нулевые идентификаторы 00000000-0000-0000-0000-000000000000. Значения для вашей кассы выдаёт Aplo.
Доставка: aplo-delivery-config.json
| Поле | Что это |
|---|---|
enabled | true включает доставку. В примере false: плагин загружается, но заказы не забирает |
hostTerminalGroupId | идентификатор группы терминалов iiko, к которой относится касса |
hostTerminalId | идентификатор терминала iiko — этой кассы |
backend.baseUrl | адрес API: https://api.aplosnab.ru |
backend.apiKey, backend.secret | ключ и секрет этой кассы |
backend.nodeId | идентификатор узла точки; не совпадает с terminalGroupId |
backend.terminalGroupId | то же значение, что в hostTerminalGroupId |
backend.externalPointId | номер точки в AploDelivery |
backend.organizationId | идентификатор организации iiko |
backend.leaseSeconds | на сколько секунд касса берёт заказ в работу, 10–300 |
backend.timeoutSeconds | таймаут запроса к API, 1–60 |
journalDirectory | папка журнала доставки |
pollSeconds | как часто касса спрашивает новые заказы, 1–300 |
streetSyncHours | как часто касса передаёт справочник улиц, 1–168 |
cancelCauseId | причина отмены доставки в iiko — см. предупреждения |
paymentTypeCodes | типы оплаты iiko для онлайн-оплаты и ВкусКоинов — см. предупреждения |
Блок diagnostics оставьте как в примере ("enabled": false).
Лояльность: aplo-loyalty-config.json
| Поле | Что это |
|---|---|
keyId, secret | ключ и секрет этой кассы |
baseUrl | адрес сервера лояльности, только HTTPS |
organizationId | идентификатор организации iiko; нулевой не принимается |
mode | shadow — режим наблюдения, плагин считает, но чек не меняет; live — боевой режим. Любое другое значение считается shadow |
discountTypeId | тип скидки iiko для скидки программы; можно оставить пустым |
loyaltyCardPrefixes | с каких символов начинаются номера карт лояльности, не короче 4 символов; пустой список — карты не читаются |
shadowAutoGuestFromCustomerId | искать гостя по клиенту заказа iiko в режиме наблюдения; по умолчанию false |
guestQr | QR гостя на экране заказа — см. предупреждения |
Предупреждения по настройкам
То, на чём мы ошибались сами:
- Строгий JSON в настройках доставки. Повторяющийся ключ в
aplo-delivery-config.json— ошибка: доставка не запустится (AploDelivery: isolated startup failed). Проверяйте файл после ручной правки. cancelCauseIdнужен для отмены через API. С нулевым значением плагин запускается, но каждая отмена заказа через API получает отказ. Укажите идентификатор причины отмены доставки из справочника iiko вашей организации.- Коды типов оплаты свои у каждой точки. В
paymentTypeCodesкод оплаты (ECARD— онлайн-оплата,VKUS2— ВкусКоины) сопоставляется с идентификатором типа оплаты iiko. Идентификаторы у точек разные: не копируйте блок с другой кассы. Нулевой идентификатор не принимается — либо настоящий, либо пустой блок{}. Без нужного кода заказ с такой оплатой касса отклонит.
"paymentTypeCodes": {
"ECARD": "<идентификатор типа оплаты iiko>",
"VKUS2": "<идентификатор типа оплаты iiko>"
}
guestQrв режиме наблюдения включён по умолчанию. Если блокаguestQrв файле нет иmode—shadow, касса уже распознаёт QR гостя и создаёт новых гостей в AploCard. Чтобы поставить плагин без этого, заранее добавьте"guestQr": {"enabled": false}. В режимеliveбез явного"enabled": trueQR выключен.- У каждой кассы свои ключ и секрет. Ключи доставки и лояльности — разные пары. Не переносите файлы настроек с кассы на кассу.
- Файлы настроек — секрет. Не отправляйте их в чаты и не кладите в общие папки.
Откат
- Закройте iikoFront.
- Удалите папку
AploLoyalFrontизPluginsи верните на её место сохранённую копию. Если плагина раньше не было — просто удалите папку. - Запустите iikoFront один раз под обычным пользователем кассы.
Журнал доставки в C:\ProgramData\Aplo\AploDeliveryFront\journal при откате не трогайте.
Ключи и связь
Ключи, секреты и идентификаторы для файлов настроек выдаёт Aplo — отдельно на каждую кассу. Напишите в поддержку: укажите точку и число касс. Туда же — вопросы по установке.