M cenaly.ru
🚀 Начало работы

📴 Если пропал интернет

Что продолжает работать при обрыве связи: касса пробивает и печатает, заказы и чеки копятся в очереди и досылаются без дублей

Документация

Если пропал интернет или недоступно облако

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

Различайте два сбоя, потому что ведут они себя по-разному:

Что случилось Касса в заведении Гость с улицы
Пропал интернет в заведении Работает офлайн: пробивает, печатает, копит очередь Витрина открывается (она раздаётся с CDN), заказ уходит в облако — но в заведении его увидят только после восстановления связи
Недоступно облако То же самое: касса не отличает одно от другого — для неё это «запись не ушла» Витрина может открыться из кэша, оформление заказа и оплата не пройдут

Касса намеренно не пытается угадать причину: любая сетевая ошибка означает «работаем локально, запись в очередь».


Что продолжает работать#

Касса (веб-POS). Это не просто закэшированная страница, а настоящая очередь записи на устройстве:

  • заказ пробивается и уходит в очередь заказов (живёт на кассе 24 часа);
  • чек и кассовая смена — своя очередь операций (открытие смены, внесение и изъятие, чек, возврат, закрытие смены). У каждой операции клиентский идемпотентный ключ, поэтому досылка не задваивает ничего;
  • смена, открытая офлайн, получает временный номер и продолжает работать: гейт «без открытой смены оплата запрещена» офлайн тоже действует, он считает по локальному кэшу;
  • меню, цены, столы, справочники читаются из локального кэша браузера — они попали туда, пока связь была;
  • перезагрузка страницы не выбрасывает на экран входа: касса открывается в «деградированной сессии» по локальному снимку и сама переподключается, когда сеть вернётся.

Печать. Чек, кухонный тикет и этикетка печатаются мостом, который стоит на том же компьютере: касса обращается к нему по локальному адресу машины — интернет для этого не нужен.

Фискальный чек. Если фискальный регистратор подключён к тому же компьютеру, чек пробивается через мост тем же локальным каналом: фискальный накопитель копит документы, а оператор фискальных данных догоняет их, когда связь появится. Для 54-ФЗ это штатный режим, а не нарушение.

Экран входа. Пока в браузере есть недавняя сессия (окно — 7 дней), кассир заходит и работает; отправка накопленного всё равно потребует настоящей авторизации при восстановлении связи.


Что не работает без связи#

  • Кухонный экран (KDS). Тикеты приезжают на него через облако; без интернета новые заказы на кухню не попадут — они уедут туда при восстановлении связи. На это время кухня работает по печатным тикетам, если у вас настроена печать на кухню, или по устной подаче.
  • Банковский терминал. Оплата картой требует авторизации в банке — офлайн она не пройдёт. Принимайте наличные.
  • Онлайн-оплата гостем (карта на витрине, оплата счёта со стола, оплата в киоске) — нужен доступ к платёжному провайдеру.
  • Вторая касса и планшет официанта. Устройства между собой в локальной сети не синхронизируются: каждое ведёт свою очередь и досылает её само. Общий локальный контур («LAN-режим») мы осознанно не делаем — решение владельца продукта: закрываем автономность одной кассы с печатью.
  • X-отчёт. Промежуточный срез считается на сервере по продажам — офлайн касса честно откажет. Смену закрыть можно, Z-отчёт сформируется, когда связь вернётся.
  • Разделы админки, которые считают на сервере — «Заказы», «Финансы», «Статистика», «Склад», «Персонал». Они читают облако, и офлайн показывают в лучшем случае последнее, что успели прочитать.
  • Экран выдачи, табло очереди, киоск — тоже облачные поверхности.

Что делать персоналу#

  1. Продолжайте пробивать. Как только связь пропала, в кассе появляется янтарный баннер «офлайн» и чип «N не отправлено». Это нормальный режим: заказ принят, чек напечатан, деньги взяты.
  2. Печатайте гостю чек как обычно. Печать локальная — бумага выходит.
  3. Работайте на том же устройстве и в том же браузере. Очередь лежит на этом компьютере: пересесть на второй планшет и «досдать оттуда» нельзя.
  4. Не чистите кэш браузера, не выходите из аккаунта, не открывайте кассу в режиме инкогнито — так вы сотрёте неотправленные заказы и чеки.
  5. Перезагрузить страницу можно. Очередь переживает перезагрузку и перезапуск браузера.
  6. Не пробивайте один заказ дважды «на всякий случай»: система защищена от дублей при досылке, но два разных заказа она честно посчитает двумя.
  7. Карту не принимайте — терминал офлайн не авторизует. Наличные, а при желании гостя — счёт на оплату позже.
  8. Красный баннер «N не доставлено» означает, что часть записей не ушла даже после восстановления связи (истёк срок или сервер отказал). Это повод позвать управляющего, а не скрывать баннер.

Что произойдёт, когда связь вернётся#

Досылка начинается сама — по событию «сеть появилась», при возврате во вкладку и по таймеру.

  • Чип «N не отправлено» уменьшается и исчезает. Заказы появляются в разделе «Заказы» и на кухонном экране, чеки получают номера, склад списывается по техкартам.
  • Дублей не будет. У каждого заказа клиентский идентификатор, у каждой кассовой операции — ключ идемпотентности; сервер узнаёт повтор и не применяет его второй раз.
  • Офлайн-смена подставляется настоящей. Временный номер смены переписывается на реальный во всех ещё стоящих в очереди чеках и движениях.
  • Z-отчёт формируется для смены, закрытой офлайн.
  • Ничего не удаляется молча. Записи, которые не удалось доставить (истекли сутки или сервер вернул невосстановимую ошибку), уходят в отдельный список «не доставлено» (хранится 7 дней, до 100 записей) и показываются красным баннером с возможностью скрыть его вручную.

Порядок сохраняется: очередь досылается последовательно, а на временных ошибках сервера повторяет попытку с нарастающей паузой.


Ограничения#

  • Офлайн закрыт для кассы и печати — и только. Кухонный экран, банковский терминал и синхронизация между устройствами в локальной сети без интернета не работают; полный LAN-контур осознанно не делается.
  • Очередь привязана к устройству и браузеру. Она лежит в хранилище конкретного браузера: другой компьютер, другой браузер или режим инкогнито её не видят.
  • Срок жизни очереди — 24 часа для заказов и кассовых операций. Дольше суток без связи — записи уходят в список «не доставлено», а не молча пропадают.
  • Сессия офлайн живёт 7 дней. Дальше касса потребует обычный вход, а он без сети невозможен.
  • X-отчёт офлайн недоступен — он считается на сервере.
  • Гостевые поверхности (витрина, киоск) держат очередь только час — они рассчитаны на кратковременный провал мобильной сети у гостя, а не на работу без интернета.
  • Android-касса. Приём заказа и локальный фискальный чек офлайн работают, а запись в реестр чеков и кассовая смена офлайн — ещё нет (запланировано). Источником правды офлайн там служит фискальный накопитель.
  • Сквозной прогон «выдернули кабель» на живом фискальном регистраторе ещё не сделан. Офлайн-режим кассы закрыт кодом и автотестами (в том числе e2e «внутрисессионный офлайн»), а проверка на реальном железе владельцем стоит в плане — мы называем это прямо, а не выдаём за пройденное.

Устранение неполадок#

Касса просит войти, хотя раньше работала. Сессия старше семи дней либо браузер почистили. Без сети войти нельзя — восстановите связь.

Чип «N не отправлено» не уменьшается. Проверьте, что связь действительно вернулась (откройте любой сайт), и оставьте вкладку кассы активной: досылка идёт по событию сети, возврату во вкладку и таймеру. Если чип держится с одним и тем же числом — смотрите красный баннер: часть записей могла уйти в «не доставлено».

Появился красный баннер «N не доставлено». Записи не приняты сервером: истёк суточный срок либо ответ был невосстановимым (например, доступ отозван). Заказы и чеки из этого списка нужно провести вручную — сверьтесь с бумажными чеками смены.

Заказ пробили офлайн, а на кухне его нет. Так и должно быть: тикет уедет на кухонный экран при восстановлении связи. Пока сети нет, кухню кормят печатные тикеты.

Чек не печатается офлайн. Значит, дело не в интернете: проверьте, что мост на этом компьютере запущен и принтер подключён — Cenaly Hardware Bridge. Мост и касса общаются внутри одной машины.

После восстановления связи появились дубли заказов. Дублей от досылки быть не может — проверьте, не пробили ли один и тот же заказ дважды руками, и отмените лишний в разделе «Заказы».


Частые вопросы#

Касса работает без интернета?#

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

Данные потеряются?#

Нет. Очередь переживает перезагрузку страницы и перезапуск браузера, а то, что не удалось доставить, попадает в видимый список «не доставлено», а не исчезает. Потерять её можно только вручную — почистив данные браузера.

Можно ли пробивать чеки по 54-ФЗ офлайн?#

Да, если фискальный регистратор подключён к тому же компьютеру, что и мост: фискальный накопитель копит документы и передаёт их оператору фискальных данных, когда связь появится. Это предусмотренный законом режим.

Почему не работает кухонный экран?#

Тикеты идут через облако. Локальной сети между кассой и кухонным экраном у нас нет — это осознанное решение: мы закрываем автономность кассы с печатью, а не весь зал. Пока сети нет, кухню держат печатные тикеты.

Гость сможет открыть меню, пока у нас нет интернета?#

Да — витрина раздаётся с CDN и не зависит от вашего интернета. Заказ, оформленный гостем, дойдёт до облака, но в заведении вы увидите его только после восстановления связи.

Что делать с оплатой картой?#

Принимать наличные: банковскому терминалу нужна авторизация в банке.

Сколько времени касса выдержит без связи?#

Сутки для очереди заказов и кассовых операций, семь дней — для сессии. Практически это значит: смену вы отработаете спокойно.


Связанные разделы#