Якщо зник інтернет або недоступна хмара
Зв'язок рветься: провайдер, роутер, гроза, аварія в оператора. Заклад при цьому не зачиняється — гості стоять біля каси. Нижче — що саме продовжує працювати, що ні і що робити зміні.
Розрізняйте два збої, бо поводяться вони по-різному:
| Що сталося | Каса в закладі | Гість з вулиці |
|---|---|---|
| Зник інтернет у закладі | Працює офлайн: пробиває, друкує, накопичує чергу | Вітрина відкривається (вона роздається з CDN), замовлення йде в хмару — але в закладі його побачать лише після відновлення зв'язку |
| Недоступна хмара | Те саме: каса не відрізняє одне від одного — для неї це «запис не пішов» | Вітрина може відкритися з кешу, оформлення замовлення й оплата не пройдуть |
Каса навмисно не намагається вгадати причину: будь-яка мережева помилка означає «працюємо локально, запис у чергу».
Що продовжує працювати#
Каса (веб-POS). Це не просто закешована сторінка, а справжня черга запису на пристрої:
- замовлення пробивається і йде в чергу замовлень (живе на касі 24 години);
- чек і касова зміна — своя черга операцій (відкриття зміни, внесення та вилучення, чек, повернення, закриття зміни). У кожної операції клієнтський ідемпотентний ключ, тому досилання нічого не задвоює;
- зміна, відкрита офлайн, отримує тимчасовий номер і продовжує працювати: гейт «без відкритої зміни оплата заборонена» офлайн теж діє, він рахує за локальним кешем;
- меню, ціни, столи, довідники читаються з локального кешу браузера — вони потрапили туди, поки зв'язок був;
- перезавантаження сторінки не викидає на екран входу: каса відкривається в «деградованій сесії» за локальним знімком і сама перепідключається, коли мережа повернеться.
Друк. Чек, кухонний тикет і етикетка друкуються мостом, який стоїть на тому самому комп'ютері: каса звертається до нього за локальною адресою машини — інтернет для цього не потрібен.
Фіскальний чек. Якщо фіскальний реєстратор підключено до того самого комп'ютера, чек пробивається через міст тим самим локальним каналом: фіскальний накопичувач накопичує документи, а оператор фіскальних даних наздоганяє їх, коли зв'язок з'явиться. Для 54-ФЗ це штатний режим, а не порушення.
Екран входу. Поки в браузері є недавня сесія (вікно — 7 днів), касир заходить і працює; надсилання накопиченого все одно потребуватиме справжньої авторизації при відновленні зв'язку.
Що не працює без зв'язку#
- Кухонний екран (KDS). Тикети приїжджають на нього через хмару; без інтернету нові замовлення на кухню не потраплять — вони поїдуть туди при відновленні зв'язку. На цей час кухня працює за друкованими тикетами, якщо у вас налаштовано друк на кухню, або за усною подачею.
- Банківський термінал. Оплата карткою потребує авторизації в банку — офлайн вона не пройде. Приймайте готівку.
- Онлайн-оплата гостем (картка на вітрині, оплата рахунку гостя зі столу, оплата в кіоску) — потрібен доступ до платіжного провайдера.
- Друга каса й планшет офіціанта. Пристрої між собою в локальній мережі не синхронізуються: кожне веде свою чергу й досилає її само. Спільний локальний контур («LAN-режим») ми свідомо не робимо — рішення власника продукту: закриваємо автономність однієї каси з друком.
- X-звіт. Проміжний зріз рахується на сервері за продажами — офлайн каса чесно відмовить. Зміну закрити можна, Z-звіт сформується, коли зв'язок повернеться.
- Розділи адмінки, які рахують на сервері — «Замовлення», «Фінанси», «Статистика», «Склад», «Персонал». Вони читають хмару, і офлайн показують у кращому разі останнє, що встигли прочитати.
- Екран видачі, табло черги, кіоск — теж хмарні поверхні.
Що робити персоналу#
- Продовжуйте пробивати. Щойно зв'язок зник, у касі з'являється бурштиновий банер «офлайн» і чип «N не надіслано». Це нормальний режим: замовлення прийнято, чек надруковано, гроші взято.
- Друкуйте гостю чек як завжди. Друк локальний — папір виходить.
- Працюйте на тому самому пристрої й у тому самому браузері. Черга лежить на цьому комп'ютері: пересісти на другий планшет і «доздати звідти» не можна.
- Не чистьте кеш браузера, не виходьте з облікового запису, не відкривайте касу в режимі інкогніто — так ви зітрете ненадіслані замовлення й чеки.
- Перезавантажити сторінку можна. Черга переживає перезавантаження й перезапуск браузера.
- Не пробивайте одне замовлення двічі «про всяк випадок»: система захищена від дублів при досиланні, але два різні замовлення вона чесно порахує як два.
- Картку не приймайте — термінал офлайн не авторизує. Готівка, а за бажання гостя — рахунок гостя на оплату пізніше.
- Червоний банер «N не доставлено» означає, що частина записів не пішла навіть після відновлення зв'язку (минув строк або сервер відмовив). Це привід покликати керуючого, а не ховати банер.
Що станеться, коли зв'язок повернеться#
Досилання починається саме — за подією «мережа з'явилася», при поверненні на вкладку й за таймером.
- Чип «N не надіслано» зменшується й зникає. Замовлення з'являються в розділі «Замовлення» і на кухонному екрані, чеки отримують номери, склад списується за техкартами.
- Дублів не буде. У кожного замовлення клієнтський ідентифікатор, у кожної касової операції — ключ ідемпотентності; сервер упізнає повтор і не застосовує його вдруге.
- Офлайн-зміна підставляється справжньою. Тимчасовий номер зміни переписується на реальний у всіх ще наявних у черзі чеках і рухах.
- Z-звіт формується для зміни, закритої офлайн.
- Нічого не видаляється мовчки. Записи, які не вдалося доставити (минула доба або сервер повернув невідновну помилку), ідуть в окремий список «не доставлено» (зберігається 7 днів, до 100 записів) і показуються червоним банером з можливістю сховати його вручну.
Порядок зберігається: черга досилається послідовно, а на тимчасових помилках сервера повторює спробу з наростаючою паузою.
Обмеження#
- Офлайн закритий для каси й друку — і тільки. Кухонний екран, банківський термінал і синхронізація між пристроями в локальній мережі без інтернету не працюють; повний LAN-контур свідомо не робиться.
- Черга прив'язана до пристрою й браузера. Вона лежить у сховищі конкретного браузера: інший комп'ютер, інший браузер або режим інкогніто її не бачать.
- Термін життя черги — 24 години для замовлень і касових операцій. Довше доби без зв'язку — записи потрапляють до списку «не доставлено», а не зникають мовчки.
- Сесія офлайн живе 7 днів. Далі каса вимагатиме звичайного входу, а він без мережі неможливий.
- X-звіт офлайн недоступний — він рахується на сервері.
- Гостьові поверхні (вітрина, кіоск) тримають чергу лише годину — вони розраховані на короткочасний збій мобільної мережі в гостя, а не на роботу без інтернету.
- Android-каса. Приймання замовлення й локальний фіскальний чек офлайн працюють, а запис до реєстру чеків і касова зміна офлайн — ще ні (заплановано). Джерелом правди офлайн там слугує фіскальний накопичувач.
- Наскрізний прогін «висмикнули кабель» на живому фіскальному реєстраторі ще не зроблено. Офлайн-режим каси закритий кодом і автотестами (зокрема e2e «внутрішньосесійний офлайн»), а перевірка на реальному залізі власником стоїть у плані — ми називаємо це прямо, а не видаємо за пройдене.
Усунення неполадок#
Каса просить увійти, хоча раніше працювала. Сесія старша за сім днів або браузер почистили. Без мережі увійти не можна — відновіть зв'язок.
Чип «N не надіслано» не зменшується. Перевірте, що зв'язок справді повернувся (відкрийте будь-який сайт), і залиште вкладку каси активною: досилання йде за подією мережі, поверненням до вкладки й таймером. Якщо чип тримається з тим самим числом — дивіться червоний банер: частина записів могла піти в «не доставлено».
З'явився червоний банер «N не доставлено». Записи не прийняті сервером: минув добовий термін або відповідь була невідновною (наприклад, доступ відкликано). Замовлення й чеки з цього списку потрібно провести вручну — звіртеся з паперовими чеками зміни.
Замовлення пробили офлайн, а на кухні його немає. Так і має бути: тикет поїде на кухонний екран після відновлення зв'язку. Поки мережі немає, кухню годують друковані тикети.
Чек не друкується офлайн. Отже, річ не в інтернеті: перевірте, що міст на цьому комп'ютері запущено й принтер під'єднано — Cenaly Hardware Bridge. Міст і каса спілкуються в межах однієї машини.
Після відновлення зв'язку з'явилися дублі замовлень. Дублів від досилання бути не може — перевірте, чи не пробили те саме замовлення двічі руками, і скасуйте зайве в розділі «Замовлення».
Часті питання#
Каса працює без інтернету?#
Так: пробиває замовлення, друкує чеки й фіскалізує їх через міст на тому самому комп'ютері. Усе, що має поїхати в хмару, накопичується в черзі на пристрої й досилається автоматично.
Дані загубляться?#
Ні. Черга переживає перезавантаження сторінки й перезапуск браузера, а те, що не вдалося доставити, потрапляє до видимого списку «не доставлено», а не зникає. Загубити її можна лише вручну — почистивши дані браузера.
Чи можна пробивати чеки за 54-ФЗ офлайн?#
Так, якщо фіскальний реєстратор під'єднано до того самого комп'ютера, що й міст: фіскальний накопичувач накопичує документи й передає їх оператору фіскальних даних, коли зв'язок з'явиться. Це передбачений законом режим.
Чому не працює кухонний екран?#
Тикети йдуть через хмару. Локальної мережі між касою й кухонним екраном у нас немає — це свідоме рішення: ми закриваємо автономність каси з друком, а не всю залу. Поки мережі немає, кухню тримають друковані тикети.
Гість зможе відкрити меню, поки в нас немає інтернету?#
Так — вітрина роздається з CDN і не залежить від вашого інтернету. Замовлення, оформлене гостем, дійде до хмари, але в закладі ви побачите його лише після відновлення зв'язку.
Що робити з оплатою карткою?#
Приймати готівку: банківському терміналу потрібна авторизація в банку.
Скільки часу каса витримає без зв'язку?#
Добу для черги замовлень і касових операцій, сім днів — для сесії. Практично це означає: зміну ви відпрацюєте спокійно.
Пов'язані розділи#
- Каса (POS) — замовлення, оплата, режими обслуговування й розділ «Робота офлайн»
- Касова зміна та Z-звіт — відкриття, рухи, X- і Z-звіти
- Cenaly Hardware Bridge — міст на POS-комп'ютері, принтери й фіскальні реєстратори
- Друк на кухню — тикети за станціями, коли кухонний екран недоступний
- Екран кухні (KDS) — як тикети потрапляють на кухню
- Перший день: кафе, ресторан, їдальня — що увімкнути одразу