Обновление плагина

Есть два способа: автообновление из канала SLP (основной) и ручная замена файлов (запасной, для случая когда касса отрезана от интернета).

Что при обновлении не теряется#

  • Файл настроек slp-plugin.json лежит в папке конфигураций фронта, а не в папке плагина — обновление его не трогает.
  • Очередь неотправленных чеков лежит в папке данных плагина — обновление её не трогает. Начисления, накопленные во время офлайна, доедут и после обновления.

Способ 1: обновление вручную#

Нужен, только если касса не имеет доступа к каналу обновлений — например, её выпустили в интернет по узкому списку адресов. В этом случае запросите комплект у поддержки: отдельной публичной ссылки на файлы плагина нет, а пакет из кабинета для этого не подходит — он выпускает новый ключ доступа и разлогинит работающую кассу.

Получив комплект:

  1. Закройте iikoFront на кассе. Пока касса работает, файлы плагина заняты и заменить их нельзя.
  2. Переименуйте текущую папку Plugins\SlpPlugin.V9\ в SlpPlugin.V9.bak (страховка для отката).
  3. Распакуйте новый комплект в Plugins\ — папка SlpPlugin.V9\ создастся из архива сама.
  4. Запустите iikoFront и проверьте версию в логе (SLP: плагин <версия> запущен) — она же видна в кабинете в карточке терминала.

Файл настроек при этом не трогается: он лежит в папке конфигураций фронта, а не в папке плагина, поэтому ключ кассы сохраняется.

Откат: закрыть фронт, удалить новую папку, вернуть SlpPlugin.V9.bak под прежним именем, запустить фронт.

Способ 2: автообновление (рекомендуется)#

Обновление приезжает на кассу само — выезжать на точку не нужно.

Работает это штатным механизмом обновления самой iiko, а не нашей отдельной программой. У iikoFront есть служба обновления плагинов, которая берёт новые версии из указанных ей источников. Источник для нашего плагина — канал обновлений SLP:

https://gate.simple-loyalty-pass.ru/plugin-feed/index.json

Важное свойство этого способа: кассу останавливать не нужно. При обновлении перезапускается только процесс плагина, iikoFront продолжает работать. Смена, открытые заказы и продажи не затрагиваются.

Что при этом происходит:

  1. Служба обновления видит в канале версию новее установленной.
  2. Пакет скачивается и распаковывается в папку плагина.
  3. Процесс плагина перезапускается на новой версии.
  4. В логе плагина появляется строка SLP: плагин <версия> запущен — по ней и проверяют, что обновление применилось. Версия видна и в кабинете, в карточке терминала.

Канал отдаёт версии всем кассам одинаково: отдельной настройки «boevой / тестовый» на стороне заведения сейчас нет — новая версия выкладывается в канал уже после проверки на нашей тестовой кассе.

Что нужно, чтобы автообновление работало#

Два условия, оба выставляются один раз при установке (шаги 2 и 3 инструкции по установке):

  1. Канал прописан в службе обновления. Файл %AppData%\iiko\CashServer\PluginConfigs\Resto.Front.Api.Updater.V9\updater.config, блок CustomPluginSources, адрес https://gate.simple-loyalty-pass.ru/plugin-feed/index.json. Служба опрашивает источники по расписанию (по умолчанию раз в 6 часов) и по кнопке проверки обновлений.

С версии 0.1.13 плагин прописывает канал себе сам при запуске — руками это нужно делать, только если на кассе стоит версия старше. Проверить можно по логу плагина: SLP: канал обновлений прописан в … или SLP: канал обновлений уже прописан.

  1. Папка плагина названа ровно SlpPlugin.V9. Служба ищет обновление по имени папки — при другом имени она просто не найдёт наш пакет и молча покажет «обновлений нет».

Проверить, что касса видит канал, можно в логе службы обновления %AppData%\iiko\CashServer\Logs\plugin-Resto.Front.Api.Updater.V9.log — там перечислены источники и установленные плагины со своими версиями (SlpPlugin.V9.<версия>).

Поля updateManifestUrl, updateChannel и updatePublicKeyBase64 в slp-plugin.json относятся к более раннему, собственному механизму обновления и сейчас не используются. Оставьте их пустыми.