Если пропал интернет или недоступно облако
Связь рвётся: провайдер, роутер, гроза, авария у оператора. Заведение при этом не закрывается — гости стоят у кассы. Ниже — что именно продолжает работать, что нет и что делать смене.
Различайте два сбоя, потому что ведут они себя по-разному:
| Что случилось | Касса в заведении | Гость с улицы |
|---|---|---|
| Пропал интернет в заведении | Работает офлайн: пробивает, печатает, копит очередь | Витрина открывается (она раздаётся с 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) — как тикеты попадают на кухню
- Первый день: кафе, ресторан, столовая — что включить сразу