Odoo-Kasse ohne Internet: Offline-Betrieb und Grenzen
Kurz gesagt
Bei einem Internetausfall wechselt die Odoo-Kasse von selbst in den Offline-Modus und arbeitet weiter, wenn die Kassensitzung bereits läuft und Produkte und Kunden beim Start der Sitzung in den Browser-Cache geladen wurden: Bestellungen anlegen und verwalten, Bargeld annehmen sowie lokal angeschlossene Bondrucker und Waagen funktionieren, solange sich am lokalen Netz nichts ändert und niemand den Browser schließt oder neu lädt. Nicht verfügbar sind Rechnungen, das Registrieren neuer Kunden, detaillierte Produktinformationen, Echtzeit-Lagerbestand, Kartenterminals und das Nachladen von Daten. Offline erfasste Bestellungen liegen im Browser-Cache und werden nach Rückkehr der Verbindung übertragen; in Deutschland ist die Signatur an eine Cloud-TSE gebunden und setzt laut Dokumentation eine funktionierende Internetverbindung voraus.
Das Wichtigste
- Offline weiter möglich, wenn die Kassensitzung läuft und Produkte und Kunden beim Sitzungsstart in den Browser-Cache geladen wurden: Bestellungen anlegen und verwalten, Bargeld annehmen, lokal angeschlossene Drucker und Waagen nutzen.
- Nicht offline: Rechnungen, Kundenregistrierung, Produktdetails, Echtzeit-Lagerbestand, Kartenterminals, Nachladen von Daten.
- Offline erfasste Bestellungen liegen im Browser-Cache; Browser bis zur Synchronisierung nicht schließen, neu laden oder Cache leeren.
- Zwei Systemparameter begrenzen, wie viele Kunden und Produkte beim Start der Kassensitzung in den Cache geladen werden.
- Deutschland: Die dokumentierte Lokalisierung nutzt eine Cloud-TSE und nennt eine funktionierende Internetverbindung als Voraussetzung.
- Österreich: Bei Ausfall der Signaturerstellungseinheit sind die Barumsätze nach § 17 Abs. 4 RKSV zuerst auf einer anderen Registrierkasse mit aufrechter Verbindung zu einer Signaturerstellungseinheit zu erfassen; ist das nicht möglich, tritt im maschinenlesbaren Code die Zeichenkette „Sicherheitseinrichtung ausgefallen“ an die Stelle des Signaturwerts, der Hinweis ist zusätzlich gut sichtbar am Beleg anzubringen, und nach der Wiederinbetriebnahme ist ein signierter Sammelbeleg mit Betrag Null zu erstellen.
Ein Internetausfall trifft die Kasse mitten im Geschäft. Odoo hat dafür zwei getrennte Mechanismen: einen Offline-Modus des Kassensystems und einen allgemeinen Offline-Modus für die übrigen Apps. Die Kasse legt offline erfasste Bestellungen im Browser-Cache ab und überträgt sie nach der Rückkehr der Verbindung; der allgemeine Offline-Modus hält in 20.0 auch eigene Änderungen in einer lokalen Warteschlange vor, während er in 19.0 zuvor online geöffnete Ansichten und Datensätze nur zum Ansehen öffnet. Beide haben Grenzen, die vor dem Ausfall eingerichtet sein wollen.
Wie der Offline-Modus der Kasse arbeitet
Fällt die Verbindung aus, wechselt die Kasse (Kassensystem; Point of Sale) von selbst in den Offline-Modus. Bestellungen lassen sich weiter anlegen und verwalten; Funktionen, die Daten aus der Datenbank brauchen, fallen weg. Beim Start einer Kassensitzung lädt Odoo Produkte und Kunden in den Browser-Cache; offline erfasste Bestellungen landen in demselben Cache und werden übertragen, sobald die Verbindung wieder steht.
Ein Symbol im Kopf des Kassenbildschirms zeigt den Offline-Zustand. Fehlt eine Funktion, erscheint der Hinweis „Connection Lost” (Verbindung verloren); mit „Continue with limited functionality” (Weiter mit eingeschränkter Funktion) arbeiten Sie ohne diese Funktion weiter.
Was online und offline geht
Die Tabelle stellt die in der Dokumentation genannten Funktionen gegenüber. Sie gilt für die App Kassensystem im Browser, in Community und Enterprise; Lokalisierungen und verbindungsabhängige Dienste sind darin nicht erfasst.
| Aktion | Online | Offline | Bedingung |
|---|---|---|---|
| Bestellung anlegen und abschließen | ja | ja | Kassensitzung läuft; offline erfasste Bestellungen werden nach der Rückkehr der Verbindung übertragen |
| Produkte und Kunden aus dem Cache nutzen | ja | ja | Nur Daten, die beim Start der Sitzung oder bei früherer Nutzung geladen wurden |
| Bargeld annehmen | ja | ja | Wird im Kassenbildschirm verarbeitet; die Dokumentation nennt nur Zahlungsterminals als offline nicht verfügbar, mit einem Testverkauf prüfen |
| Bondrucker und Waage im lokalen Netz nutzen | ja | ja | Solange sich am lokalen Netz nichts ändert |
| Detaillierte Produktinformationen öffnen | ja | nein | Braucht die Datenbank |
| Neuen Kunden registrieren | ja | nein | Registrieren nennt die Dokumentation als offline nicht verfügbar; braucht die Datenbank |
| Bereits geladenen Kunden der Bestellung zuordnen | ja | ja | Nur Kunden, die beim Start der Sitzung oder bei früherer Nutzung in den Cache geladen wurden |
| Rechnung zum Verkauf erstellen | ja | nein | Offline angeforderte Rechnungen entstehen automatisch nach der Rückkehr der Verbindung |
| Lagerbestand in Echtzeit sehen | ja | nein | Kein laufender Abgleich |
| Daten auf Abruf nachladen | ja | nein | Braucht die Datenbank |
| Kartenterminal nutzen | ja | nein | Angeschlossene Terminals brauchen eine aktive Internetverbindung |
| Bestellungen übertragen | ja | nein | Erst nach der Rückkehr der Verbindung |
Was im Cache liegt und wie Sie ihn füllen
Daten kommen auf zwei Wegen in den Cache: beim Start jeder Sitzung und bei jeder Nutzung eines Produkts oder Kunden. Bei häufigen Ausfällen erhöhen Sie die Menge vorab: Im Entwicklermodus unter Einstellungen ‣ Technisch ‣ Systemparameter (Settings ‣ Technical ‣ System Parameters) setzen Sie point_of_sale.limited_customer_count und point_of_sale.limited_product_count höher.
Geladen werden zuerst die Kunden mit den meisten Bestellungen, dann Favoriten, Dienstleistungen und zuletzt geänderte Produkte, jeweils bis zum eingestellten Wert. Ein höherer Wert verlängert das Öffnen der Kasse.
Ein Beispiel: 90 Minuten ohne Verbindung
Ein Ladengeschäft mit einer Kasse und einem Kartenterminal verliert an einem Samstagvormittag für 90 Minuten die Internetverbindung (Beispielrechnung, erfundene Zahlen). In dieser Zeit laufen vier Bestellungen über die Kasse: alle werden bar bezahlt, der Beleg kommt aus dem lokalen ePOS-Drucker, die Waage wiegt weiter. Das Kartenterminal nimmt keine Zahlung an.
Die vier Bestellungen liegen im Browser-Cache. Als die Verbindung zurück ist, überträgt die Kasse sie; auch die offline angeforderten Rechnungen entstehen jetzt. Im Backend stehen später vier Bestellungen mit den Uhrzeiten des Vormittags.
Der allgemeine Offline-Modus der anderen Apps
Der Offline-Modus der Kasse deckt nur die Kasse ab. Für die übrigen Apps gilt ein allgemeiner Offline-Modus für angemeldete Benutzer; er umfasst Apps und Module, die mit den Standardbausteinen von Odoo gebaut sind. Was er zulässt, ist je Version unterschiedlich dokumentiert.
Odoo 19.0. Ansichten und Datensätze, die online zuvor geöffnet wurden, lassen sich offline erneut öffnen, unabhängig davon, ob sie im Moment des Verbindungsabbruchs im Browser offen waren. Änderungen schließt die Dokumentation 19.0 dabei ausdrücklich aus: Zuvor geöffnete Datensätze können offline angesehen, aber nicht geändert werden.
Odoo 20.0. Fehlt die Verbindung, erscheint im Kopf der Datenbank die Schaltfläche „Working offline”. Vorher online geöffnete Ansichten und Datensätze lassen sich erneut öffnen, bearbeiten, löschen, archivieren oder aus dem Archiv zurückholen; ein neuer Datensatz lässt sich offline nur anlegen, wenn online zuvor bereits ein Datensatz desselben Typs angelegt wurde. Frühere Suchabfragen laufen wieder, offline nicht verfügbare Elemente sind ausgegraut. Änderungen warten in einer lokalen Warteschlange, bis die Verbindung wieder steht. Die Dokumentation bezeichnet diesen Modus als Lösung für kurzfristige Unterbrechungen, nicht für vollständigen oder langfristigen Offline-Betrieb.
Für beide Versionen gilt: Für Offline-Daten hält Odoo höchstens 2 GB vor und entfernt bei Erreichen der Grenze die ältesten Daten; ein hartes Neuladen mit Strg+F5 oder Befehlstaste+Umschalt+R löscht alle lokal gespeicherten Daten und beeinträchtigt damit die Verfügbarkeit von Ansichten und Datensätzen offline.
Typische Fehler
- Browser während des Ausfalls neu geladen. Offline erfasste Bestellungen liegen im Browser-Cache und werden erst nach der Rückkehr der Verbindung übertragen. Schließen, Neuladen oder Leeren des Browser-Cache während des Ausfalls riskieren den Verlust dieser Bestellungen; die Dokumentation rät, diese Aktionen bis zur Übertragung zu unterlassen.
- Kartenzahlung eingeplant. Angeschlossene Kartenterminals brauchen eine aktive Internetverbindung. Halten Sie für Ausfallzeiten Bargeld bereit.
- Team nicht informiert. Der Hinweis „Connection Lost” wird ohne Einweisung als Störung gelesen; der Weiter-Knopf heißt „Continue with limited functionality”.
- Cache zu klein. Fehlen wichtige Produkte oder Kunden im Cache, sind sie an der Kasse nicht verfügbar. Prüfen Sie die beiden Systemparameter vor dem nächsten Ausfall.
- Lokales Netz umgebaut. Drucker und Waage arbeiten offline weiter, solange sich am lokalen Netz nichts ändert. Ein Adresswechsel oder ein neuer Router während des Ausfalls kappt auch diesen Weg.
Was die Offline-Zeit für die Belege bedeutet
Deutschland. Wer aufzeichnungspflichtige Geschäftsvorfälle mit einem elektronischen Aufzeichnungssystem erfasst, muss es durch eine zertifizierte technische Sicherheitseinrichtung schützen (§ 146a Abs. 1 Satz 2 AO); anzuwenden ist die Vorschrift seit 1. Januar 2020 (Art. 97 § 30 Abs. 1 EGAO). Die deutsche Lokalisierung bindet nach der Dokumentation eine Cloud-TSE ein und nennt eine funktionierende Internetverbindung als Voraussetzung. Der Anwendungserlass zu § 146a AO behandelt den TSE-Ausfall in Nummer 1.14: Ausfallzeit und -grund sind zu dokumentieren und der Ausfall muss auf einem Beleg ersichtlich sein (Nr. 1.14.1 und 1.14.2); das System darf bis zur Behebung weiterlaufen, die Belegausgabepflicht bleibt bestehen, auch wenn nicht alle von der TSE zu liefernden Werte vorliegen, und Datum und Uhrzeit muss dann das Aufzeichnungssystem bereitstellen (Nr. 1.14.3). Den Ausfallgrund haben Sie unverzüglich zu beheben (Nr. 1.14.4). Ob ein Internetausfall bei einer Cloud-TSE als TSE-Ausfall in diesem Sinn gilt, sagt der Erlass nicht ausdrücklich; klären Sie die Einordnung mit Ihrer Steuerberatung und halten Sie Ausfall und Dauer in der Verfahrensdokumentation fest. Einzelheiten unter Odoo-Kasse und TSE in Deutschland.
Österreich. Unterliegt ein Betrieb der Registrierkassenpflicht (Jahresumsatz ab 15.000 Euro netto je Betrieb und Barumsätze über 7.500 Euro netto im Jahr, § 131b Abs. 1 Z 2 BAO), muss er die Unveränderbarkeit jedes Barumsatzes über eine Signatur- oder Siegelerstellungseinheit sichern (§ 131b Abs. 2 BAO); die österreichische Lokalisierung nutzt dafür nach der Dokumentation eine Cloud-Lösung (Signature Creation Unit, SCU). Für den Ausfall dieser Einheit bestimmt § 17 Abs. 4 RKSV: Barumsätze sind auf einer anderen Registrierkasse mit aufrechter Verbindung zu erfassen; ist das nicht möglich, tritt im maschinenlesbaren Code an die Stelle des Signaturwerts die Zeichenkette „Sicherheitseinrichtung ausgefallen”, der Hinweis ist zusätzlich gut sichtbar am Beleg anzubringen, und nach der Wiederinbetriebnahme ist über die betroffenen Belege ein signierter Sammelbeleg mit Betrag Null zu erstellen und im Datenerfassungsprotokoll zu speichern. Die Odoo-Dokumentation beschreibt für die nicht erreichbare SCU den fehlenden QR-Code, genau diesen Hinweis am Beleg und das Nachsignieren offen gebliebener Bestellungen. Einen nicht nur vorübergehenden Ausfall melden Sie ohne unnötigen Aufschub über FinanzOnline oder beim Finanzamt (§ 17 Abs. 1 und 2 RKSV); nach dem BMF-Erlass ist bei Stromausfall, planmäßigen Wartungsarbeiten und anderen Ereignissen, die die Sicherheitseinrichtung nicht länger als 48 Stunden funktionsunfähig machen, von einem nur vorübergehenden Ausfall auszugehen (BMF-AV Nr. 175/2026, Abschnitt 3.6). Ob ein reiner Internetausfall darunterfällt, hängt davon ab, ob Ihre Signaturerstellungseinheit dadurch funktionsunfähig ist; klären Sie das mit Ihrer Steuerberatung. Einzelheiten unter Registrierkassa in Österreich mit Odoo.
Schweiz. Die geöffnete Lokalisierungsseite der Odoo-Dokumentation für die Schweiz enthält keinen Abschnitt zum Kassensystem und nennt keine Signatur- oder Siegelerstellungseinheit. Was auf dem Kassenzettel für die Mehrwertsteuer stehen muss, steht unter Odoo-Kasse in der Schweiz.
So gehen Sie vor
- Testen Sie den Ausfall im Testsystem: Kassensitzung öffnen, Netz trennen, eine Bestellung bar abschließen und prüfen, ob Beleg, Offline-Symbol und Übertragung stimmen.
- Erhöhen Sie im Entwicklermodus unter Einstellungen ‣ Technisch ‣ Systemparameter die beiden Cache-Werte auf die Menge, die Ihr Sortiment und Ihre Laufkundschaft brauchen.
- Legen Sie im Team fest, dass während eines Ausfalls niemand den Browser schließt, neu lädt oder den Cache leert, und zeigen Sie allen den Knopf „Continue with limited functionality”.
- Hängen Sie Bondrucker und Waage ins lokale Netz, halten Sie Bargeld bereit und prüfen Sie den Aufbau (siehe Hardware für die Odoo-Kasse).
- Regeln Sie die Zeit danach: Verbindung prüfen, Übertragung abwarten, offene Rechnungen und nicht signierte Belege kontrollieren (siehe die Länderabschnitte) und die Kassensitzung schließen (siehe Schichtabschluss und Kassenabgleich).