Odoo im Einzelhandel: Kasse, Lager und Shop
Kurz gesagt
Ja, wenn alle Kanäle in derselben Datenbank laufen und demselben Lager zugeordnet sind: Dann führen Ladenkasse, Onlineshop und Verkaufsauftrag in Odoo 20.0 denselben Produktstammsatz und denselben Bestand der App Lager; Kassensystem, E-Commerce und Lager stehen in Community und Enterprise (Editionsvergleich, Stand 14. Oktober 2026). Weicht die Lagerzuordnung ab, zeigt jeder Kanal andere Mengen. Die Fiskalpflichten deckt der Standard nur teilweise ab: In Deutschland betrifft die TSE-Pflicht elektronische Aufzeichnungssysteme nach § 146a AO, in Österreich greift die Registrierkassenpflicht nach § 131b Abs. 1 Z 2 BAO ab 15.000 Euro Jahresumsatz, sofern die Barumsätze 7.500 Euro im Jahr übersteigen (beide Beträge als Nettoumsatz), und je Land brauchen Sie ein Modul und eigene Schritte; für die Schweiz beschreibt die Dokumentation kein Kassen-Sicherheitssystem.
Das Wichtigste
- Ein Produktstammsatz, ein Bestand: Kasse, Onlineshop und Verkaufsauftrag lesen und schreiben denselben Bestand der App Lager, solange alle Kanäle in derselben Datenbank laufen und demselben Lager zugeordnet sind.
- Bestandsführung braucht die Produktart Güter (Goods) oder Combo und die Option Bestand verfolgen (Track Inventory).
- Die verfügbare Menge im Shop ist Vorrätig minus reserviert; reserviert wird nach der Reservierungsmethode des Lieferauftrags. Reservieren senkt nur die verfügbare Menge: Verkaufen, wenn nicht vorrätig erlaubt Bestellungen auch ohne Bestand.
- Deutschland: zertifizierte TSE nach § 146a Abs. 1 Satz 2 AO für elektronische oder computergestützte Kassensysteme und Registrierkassen (§ 1 Abs. 1 Satz 1 KassenSichV) über l10n_de_pos_cert (Cloud-TSE von fiskaly, Internet nötig); eine offene Ladenkasse, die nicht elektronisch erfasst, ist kein elektronisches Aufzeichnungssystem.
- Österreich: Registrierkassenpflicht nach § 131b Abs. 1 Z 2 BAO ab 15.000 Euro Jahresumsatz je Betrieb, sofern die Barumsätze 7.500 Euro im Jahr übersteigen (beide Beträge als Nettoumsatz); Schutz durch Signatur- bzw. Siegelerstellungseinheit nach § 131b Abs. 2 BAO über l10n_at_pos, FinanzOnline-Zugangsdaten nötig.
- Schweiz: Die Seite Switzerland der Dokumentation 20.0 behandelt Zahlungsscheine (ISR) und MWST-Sätze, kein Kassen-Sicherheitssystem.
Ein Ladengeschäft kann an drei Stellen verkaufen: an der Kasse, im Onlineshop und über einen Verkaufsauftrag für Telefonbestellung oder Geschäftskunden. Ob ein System diese Wege auf einem Bestand führt, entscheidet über den Pflegeaufwand.
Wie die drei Kanäle auf einem Bestand arbeiten
Die App Lager (Inventory) ist die gemeinsame Grundlage: je Produkt ein Stammsatz, je Lager und Lagerort ein Bestand. Kasse und Onlineshop sind Verkaufsoberflächen auf demselben Stammsatz; Kassen- und Website-Kategorien ordnen den Artikel nur für die jeweilige Oberfläche ein.
Denselben Bestand führen die Kanäle aber nur, wenn sie in derselben Datenbank laufen und demselben Lager zugeordnet sind. Für den Shop legen Sie das Standardlager unter Website ‣ Konfiguration ‣ Einstellungen im Abschnitt eCommerce bei Standardeinstellungen für Lager fest; ist Bestellen & vor Ort abholen (Click & Collect) aktiv, richtet sich die im Shop angezeigte Menge nach dem Lager der zugehörigen Liefermethode. Läuft der Shop auf einem anderen Lager oder liegen zwei Artikelstämme vor, weichen die Zahlen je Kanal ab.
Bestandsführung verlangt die Produktart Güter (Goods) oder Combo und die Option Bestand verfolgen (Track Inventory). Der Kassenbildschirm zeigt beim Langdrücken eines Produkts Verfügbar, Prognostiziert und Vorrätig samt Lagerangabe; im Shop blendet Verfügbare Menge anzeigen die verfügbare Menge ein, also Vorrätig minus die bereits für Ausgangslagerbewegungen reservierte Menge.
Die dritte Größe ist die Reservierung. Ein bestätigter Shop-Auftrag erzeugt einen Lieferauftrag im Lager; steht dessen Reservierungsmethode auf Bei Bestätigung, sinkt mit der Bestätigung die verfügbare Menge, obwohl die Ware noch im Lager liegt. Ein allgemeines Verkaufsverbot ist das nicht: Mit Verkaufen, wenn nicht vorrätig (Sell when Out-of-Stock) nimmt der Shop weiter Bestellungen an.
Die Tabelle ordnet jedem Kanal seine App zu; die Edition stammt aus dem Editionsvergleich (Stand 14. Oktober 2026).
| Kanal | App | Wirkung auf den Bestand (Dokumentation 20.0) | Edition |
|---|---|---|---|
| Ladenkasse | Kassensystem (Point of Sale) | Bestand je Produkt setzt Produktart Güter oder Combo und Bestand verfolgen voraus; ohne Internetverbindung synchronisiert die Kasse den Bestand nicht in Echtzeit | Community und Enterprise |
| Onlineshop | E-Commerce (Website) | Bestätigter Auftrag erzeugt einen Lieferauftrag im Lager; angezeigt wird die verfügbare Menge des Standardlagers der Website, bei Bestellen & vor Ort abholen die des Lagers der Liefermethode; Verkaufen, wenn nicht vorrätig lässt Bestellungen ohne Bestand zu | Community und Enterprise |
| Verkaufsauftrag | Verkauf (Sales) | Auftrag außerhalb der Kasse; Odoo liefert und fakturiert aus demselben Lager | Community und Enterprise |
| Bestand selbst | Lager (Inventory) | Lager und Lagerorte, Reservierungen und Lieferaufträge bilden die Grundlage für alle drei Kanäle | Community und Enterprise |
Ein Rechenbeispiel mit einer Lieferung
Beispielrechnung mit erfundenen Zahlen. Voraussetzung: alle drei Kanäle nutzen dasselbe Lager, und die Reservierungsmethode des Lieferauftrags steht auf Bei Bestätigung. Ein Artikel liegt mit 120 Stück im Lager, reserviert ist nichts. Dann gehen 20 Bestellungen im Shop ein, ein Geschäftskunde bestellt 10 Stück, anschließend werden die 20 Shop-Bestellungen ausgeliefert.
| Stand | Vorrätig | Reserviert | Verfügbar |
|---|---|---|---|
| Ausgangslage | 120 | 0 | 120 |
| 20 Shop-Bestellungen bestätigt | 120 | 20 | 100 |
| 10 Stück im Verkaufsauftrag bestätigt | 120 | 30 | 90 |
| 20 Shop-Bestellungen ausgeliefert | 100 | 10 | 90 |
Reservierte Ware bleibt im Lager; zwischen Bestätigung und Auslieferung sinkt nur die verfügbare Menge. Für andere Kanäle ist sie damit nicht gesperrt: Ob ein Kanal trotz reservierter oder fehlender Menge weiter verkauft, hängt an Verkaufen, wenn nicht vorrätig. Bei Zahlung per Überweisung reserviert Odoo erst nach Zahlungseingang und manueller Bestätigung der Bestellung.
Welche Pflichten der Standard nicht abdeckt
Die Apps liefern die Mechanik, nicht die Fiskal- und Aufzeichnungspflichten des Landes. Die Liste nennt, was die Dokumentation beschreibt und was Ihre Aufgabe bleibt.
| Land | Pflicht | Rechtsgrundlage | Was Odoo dokumentiert |
|---|---|---|---|
| Deutschland | Zertifizierte TSE für elektronische Aufzeichnungssysteme, erstmals anzuwenden seit 1. Januar 2020; eine offene Ladenkasse, die nicht elektronisch erfasst, fällt nicht darunter | § 146a Abs. 1 Satz 2 AO; § 1 Abs. 1 Satz 1 KassenSichV; Art. 97 § 30 Abs. 1 Satz 1 EGAO | Modul l10n_de_pos_cert (und l10n_de_pos_res_cert für Gastronomie) mit Cloud-TSE von fiskaly; Internetverbindung nötig; Module nicht im Community-Quellcode |
| Deutschland | Beleg mit sieben Mindestangaben, auf Papier oder mit Zustimmung elektronisch | § 146a Abs. 2 AO; § 6 Satz 1 KassenSichV | Die Seite Germany beschreibt die TSE-Anbindung, nicht den Beleginhalt; einen Testbeleg selbst prüfen |
| Deutschland | Mitteilung des Systems binnen eines Monats nach Anschaffung oder Außerbetriebnahme | § 146a Abs. 4 AO | Kein Meldeverfahren dokumentiert; die Mitteilung erfolgt nach Satz 1 durch Datenfernübertragung nach amtlich vorgeschriebenem Datensatz |
| Deutschland | Aufbewahrung der Kassen- und Buchungsdaten: zehn Jahre für Bücher und Aufzeichnungen, acht Jahre für Buchungsbelege, sechs Jahre für die übrigen Unterlagen, ausgenommen Lieferscheine ohne Buchungsbelegfunktion | § 147 Abs. 3 AO | Keine Vorgabe dokumentiert; die deutsche Lokalisierung schaltet einen Prüfpfad ein, die Verfahrensdokumentation bleibt Ihre Aufgabe |
| Deutschland | Geldbuße bei vorsätzlichem oder leichtfertigem Verstoß gegen Abs. 1 Satz 1 oder 2, wenn Steuerverkürzung ermöglicht wird | § 379 Abs. 1 Satz 1 Nr. 4 und 5, Abs. 6 AO (bis zu 25.000 Euro) | – |
| Österreich | Einzelaufzeichnung aller Bareinnahmen mit Registrierkasse oder Kassensystem ab einem Jahresumsatz von 15.000 Euro je Betrieb, sofern die Barumsätze 7.500 Euro im Jahr übersteigen; beide Beträge als Nettoumsatz | § 131b Abs. 1 Z 2 BAO; BMF-AV Nr. 175/2026, Abschnitt 6.2.1.8 | Modul l10n_at_pos (RKSV), beschrieben als Cloud-Lösung über fiskaly |
| Österreich | Schutz durch Signatur- bzw. Siegelerstellungseinheit | § 131b Abs. 2 BAO | Teil von l10n_at_pos; FinanzOnline-Zugangsdaten nötig |
| Österreich | Beleg mit Mindestangaben, bei elektronischen Systemen zusätzliche Angaben | § 132a Abs. 3 und Abs. 8 BAO | Die Seite Austria beschreibt signierte Belege mit QR-Code (Belegnummer und Angaben zur Signaturerstellungseinheit) und den Hinweis Sicherheitseinrichtung ausgefallen, aber nicht alle gesetzlichen Pflichtangaben; einen Testbeleg selbst prüfen |
| Schweiz | Für die Kasse ist in der lokalen Dokumentation kein Kassen-Sicherheitssystem und keine eigene Meldepflicht beschrieben; zu prüfen bleiben die MWST-Angaben auf dem Beleg | – | Seite Switzerland mit Zahlungsscheinen (ISR) und MWST-Sätzen; den Beleg mit der Treuhand prüfen |
In Deutschland hängt die TSE-Pflicht an der Verwendung des Systems, nicht an einer Umsatzgrenze; die Monatsfrist läuft ab Anschaffung oder Außerbetriebnahme. Einzelheiten unter Odoo-Kasse und TSE in Deutschland, Kassenmeldepflicht mit Odoo und Registrierkassa in Österreich.
Typische Fehler
- Zwei Artikelstämme. Ein Artikel, einmal angelegt; Kassen- und Website-Kategorien ordnen ihn nur zu. Zwei Datensätze haben zwei Bestände.
- Reservierung vergessen. Steht die Reservierungsmethode der Lieferaufträge nicht auf Bei Bestätigung, kann zwischen Bestellung und Auslieferung doppelt verkauft werden.
- Fiskalpflicht in die App verlagert. Das Modul bindet nur die TSE an; Belegangaben, Mitteilung ans Finanzamt und Aufbewahrung bleiben Ihre Aufgaben.
- Edition verwechselt. Fiskalmodule stehen nicht im Community-Quellcode, Barcode und IoT nur in Enterprise; prüfen Sie die Edition vorher (Odoo Community oder Enterprise).
So gehen Sie vor
- Listen Sie Ihre Kanäle und die dort verkauften Artikel; vermerken Sie, welche den Bestand teilen.
- Legen Sie je Artikel einen Stammsatz an: Produktart Güter oder Combo, Bestand verfolgen, Preis, Steuersatz und Kategorien (Odoo-Kasse einrichten).
- Richten Sie Lager und Lagerorte ein, weisen Sie jedem Kanal sein Lager zu und legen Sie die Reservierungsmethode des Lieferauftrags fest (Lager einrichten).
- Verkaufen Sie einen Testartikel über alle Kanäle und vergleichen Sie Vorrätig, Reserviert und Verfügbar.
- Klären Sie je Land Fiskalmodul, Edition und Hosting und verteilen Sie die Schritte oben.
- Planen Sie die Übernahme der Stammdaten aus dem bisherigen Shopsystem (Von Shopsoftware zu Odoo wechseln).