DE · AT · CHRatgeber

Odoo im Einzelhandel: Kasse, Lager und Shop

Rechtsstand: · Aktualisiert:

Gilt für: Odoo 20.0 Community und Enterprise; Odoo Online, Odoo.sh und On-Premise; Apps Kassensystem, Lager, E-Commerce und Verkauf

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

  1. Listen Sie Ihre Kanäle und die dort verkauften Artikel; vermerken Sie, welche den Bestand teilen.
  2. Legen Sie je Artikel einen Stammsatz an: Produktart Güter oder Combo, Bestand verfolgen, Preis, Steuersatz und Kategorien (Odoo-Kasse einrichten).
  3. Richten Sie Lager und Lagerorte ein, weisen Sie jedem Kanal sein Lager zu und legen Sie die Reservierungsmethode des Lieferauftrags fest (Lager einrichten).
  4. Verkaufen Sie einen Testartikel über alle Kanäle und vergleichen Sie Vorrätig, Reserviert und Verfügbar.
  5. Klären Sie je Land Fiskalmodul, Edition und Hosting und verteilen Sie die Schritte oben.
  6. Planen Sie die Übernahme der Stammdaten aus dem bisherigen Shopsystem (Von Shopsoftware zu Odoo wechseln).

Häufige Fragen

Reicht ein Lager für Laden, Shop und Großbestellung?

Ja, wenn alle Kanäle in derselben Datenbank und demselben Lager laufen. Jeder Kanal liest und schreibt denselben Bestand. Unterschiede entstehen, wenn Sie für den Shop ein anderes Standardlager setzen, wenn bei aktivierter Funktion Bestellen & vor Ort abholen (Click & Collect) das Lager der Liefermethode ein anderes ist oder wenn ein Artikel doppelt angelegt wird. Bei mehreren Standorten legen Sie je Standort ein Lager an und weisen jedem Kanal seines zu.

Kann ich einen Artikel nur im Laden, nicht im Shop verkaufen?

Ja. Die Veröffentlichung ist je Produkt ein eigener Schalter; im Backend setzen Sie auf dem Produktreiter im Abschnitt Shop den Veröffentlichungs-Schalter oder ein Datum. Für mehrere Websites gilt die Angabe je Website, ein Produkt lässt sich dort aber nur einer oder allen Websites zuordnen, nicht einer Auswahl.

Warum zeigt der Shop eine andere Menge als mein Kassenbildschirm?

Beide zeigen andere Zahlen: Der Shop blendet die verfügbare Menge ein, also Vorrätig minus die für Ausgangslagerbewegungen reservierte Menge, die Kasse zusätzlich den prognostizierten Bestand. Reserviert wird nach der Reservierungsmethode des Lieferauftrags. Im Offline-Betrieb synchronisiert die Kasse den Bestand zudem nicht in Echtzeit. Eine reservierte oder fehlende Menge sperrt den Shop nicht: Mit Verkaufen, wenn nicht vorrätig nimmt er weiter Bestellungen an.

Ersetzt Odoo in Deutschland die Kassenpflicht?

Nein, nur einen Teil. Das Modul l10n_de_pos_cert bindet über fiskaly eine Cloud-TSE an und verlangt dafür eine Internetverbindung; die Mitteilung ans Finanzamt nach § 146a Abs. 4 AO und die Prüfung der Belegangaben nach § 6 KassenSichV bleiben Ihre Aufgabe. Die Module liegen im öffentlichen Community-Repository (Zweig 20.0) nicht.

Quellen

  1. Point of Sale (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  2. Workflow (Point of Sale, Odoo 20.0), Abschnitte Close the POS register und Offline POSOdoo S.A., Dokumentation · abgerufen am
  3. Products (Point of Sale, Odoo 20.0), Abschnitte Product information display und Stock managementOdoo S.A., Dokumentation · abgerufen am
  4. Shop features (Point of Sale, Odoo 20.0), Abschnitt Quotations and sales ordersOdoo S.A., Dokumentation · abgerufen am
  5. Inventory (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  6. eCommerce (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  7. Order handling (eCommerce, Odoo 20.0), Abschnitte Delivery und Stock managementOdoo S.A., Dokumentation · abgerufen am
  8. Reservation methods (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  9. Products (eCommerce configuration, Odoo 20.0), Abschnitte Product visibility und Stock managementOdoo S.A., Dokumentation · abgerufen am
  10. Sales (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  11. Odoo-Editionen im Vergleich (Abschnitte Verkauf, Websites, Lieferkette)Odoo S.A. · abgerufen am
  12. Germany (Fiscal localization, Odoo 20.0), Abschnitt Point of saleOdoo S.A., Dokumentation · abgerufen am
  13. Austria (Fiscal localization, Odoo 20.0), Abschnitt Point of SaleOdoo S.A., Dokumentation · abgerufen am
  14. Switzerland (Fiscal localization, Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  15. § 146a Abgabenordnung (AO), Ordnungsvorschrift für die Buchführung und für Aufzeichnungen mittels elektronischer AufzeichnungssystemeBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  16. § 379 Abgabenordnung (AO), SteuergefährdungBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  17. § 147 Abgabenordnung (AO), Aufbewahrung von UnterlagenBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  18. Kassensicherungsverordnung (KassenSichV), § 1 Elektronische AufzeichnungssystemeBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  19. Kassensicherungsverordnung (KassenSichV), § 6 Anforderungen an den BelegBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  20. Art. 97 § 30 Einführungsgesetz zur Abgabenordnung (EGAO), Anwendung von § 146a AOBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  21. § 131b Bundesabgabenordnung (BAO), Bundesrecht konsolidiert, Fassung vom 14.10.2026Bundeskanzleramt Österreich, Rechtsinformationssystem des Bundes (RIS) · abgerufen am
  22. § 132a Bundesabgabenordnung (BAO), Belegerteilungspflicht, Bundesrecht konsolidiert, Fassung vom 14.10.2026Bundeskanzleramt Österreich, Rechtsinformationssystem des Bundes (RIS) · abgerufen am
  23. BMF-AV Nr. 175/2026, Erlass zur Einzelaufzeichnungs-, Registrierkassen- und Belegerteilungspflicht vom 29. September 2026 (Geschäftszahl 2026-0.812.460), Abschnitte 3.8.1, 3.8.2 und 6.2.1.8Bundesministerium für Finanzen (Österreich) · abgerufen am