Franchise & Filialverbund
Wozu dient das?#
Das Modul für Franchise & Filialverbünde ermöglicht Kettengastronomien, Franchise-Systemen und Multi-Brand-Betreibern die zentrale Bereitstellung von Speisekarten-Templates sowie die Auswertung aggregierter Finanz- und Leistungskennzahlen über mehrere Betriebe hinweg. Während die Franchise-Zentrale zentrale Sortiments- und Preisstandards vorgeben kann, bleibt jeder einzelne Franchise-Nehmer rechtlich, buchhalterisch und fiskalisch vollständig isoliert.
Rechtsträger-Trennung & GoBD-Fiskalarchitektur (Wichtig für Franchise-Geber)#
Ein häufiger und gefährlicher Irrtum bei der Einführung von Kassen-Software in Franchise-Systemen ist die Annahme, dass eine zentrale Dachorganisation die steuerlichen Pflichten ihrer Franchise-Nehmer pauschal "mitabdecken" könne. Aus Sicht der Finanzverwaltung (§ 140, § 146a AO, GoBD) gilt jedoch ein unumstößliches Prinzip:
1. Eigene Steuernummer = Eines eigenes Kassenbuch = Eigenes DSFinV-K-Archiv#
Jeder Franchise-Nehmer betreibt ein eigenständiges Gewerbe unter seiner eigenen Steuernummer. Das Kassensystem erzwingt daher eine strikte Trennung auf Datenbankebene:
- Keine gemeinsame Belegdatenbank: Sämtliche Kassenbons, TSE-Signaturen, Stornoprotokolle und Tagesabschlüsse (Z-Berichte) verbleiben zu 100 % im isolierten Speicherbereich des jeweiligen Franchise-Nehmers (
tenant_id). - Kein DSFinV-K-Export für die gesamte Gruppe: Ein Betriebsprüfer des Finanzamts prüft immer nur genau das Unternehmen, dessen Steuernummer auf der Prüfungsanordnung steht. Der DSFinV-K-Export des Kassensystems erzeugt daher ausnahmslos reine Einzelmandanten-Archive. Transaktionen anderer Franchise-Nehmer oder der Zentrale tauchen im Prüfungs-ZIP nachweislich nicht auf.
2. Warum eine zentrale Verfahrensdokumentation NICHT ausreicht#
Eine Verfahrensdokumentation nach GoBD beschreibt die organisatorischen und technischen Prozesse eines konkreten Steuerpflichtigen.
Rollen#
- Franchise-Administrator (
franchisor_admin): Zentrale Rolle der Hauptorganisation. Erstellt Franchise-Gruppen, ordnet Betriebe zu, verwaltet Mitglieder und erstellt/veröffentlicht Speisekarten-Templates. Hat ausdrücklich KEINEN Zugriff auf lokale Kassenfunktionen oder TSE-Transaktionen. - Franchise-Analyst (
franchisor_analyst): Lese-Rolle der Zentrale. Kann ausschließlich aggregierte Umsatz-, Bestell- und Personalkostenberichte über die Gesamt-Gruppe abrufen. - Standort-Administrator (
restaurant_admindes Franchise-Nehmers): Administrator des einzelnen Betriebs. Verwaltet lokale Bediener, Geräte, Saalpläne und empfängt zentral bereitgestellte Speisekarten-Templates. - Servicekraft / Bediener (
staff): Lokaler Mitarbeiter an den Terminals eines Franchise-Nehmers. Erfasst Bestellungen und kassiert. Besitzt keinerlei Kenntnis oder Zugriff auf Franchise-Gruppenstrukturen.
Bildschirm für Bildschirm#
Der Bereich Franchise-Verwaltung trägt die Zeile Verwalten Sie Franchise-Gruppen, zentralisierte Speisekarten-Vorlagen und aggregierte Finanzberichte. Sie öffnen ihn im Backoffice über den Menüpunkt Franchise (nur Administrator).
- 1 Der Hinweis Steuerrechtliche Trennung & Fiscal Isolation: Jedes Franchise-Unternehmen ist ein eigener Rechtsträger, die Zentrale sieht nur aggregierte Kennzahlen.
- 2 Die Gruppenkarte. Ist eine Gruppe gewählt, zeigt sie Namen, Slug und ID. Sonst steht dort Franchisegruppe wählen oder anlegen. Im Feld Gruppen-ID eingeben wählen Sie eine bestehende Gruppe; Franchise-Gruppe erstellen öffnet die Maske mit Gruppenname und Slug (Eindeutiger Schlüssel). Die Kasse meldet Franchisegruppe angelegt.
- 3 Die Karte Franchise-Nehmer (Betriebe) listet die zugeordneten Betriebe mit Entfernen. Diesen Betrieb der Gruppe beitreten lassen trägt den Betrieb ein, an dem Sie angemeldet sind. Eine fremde Mandanten-ID lässt sich nicht eintragen: Wer einer Gruppe angehört, teilt ihr seinen Umsatz und bekommt ihre Speisekarten, deshalb entscheidet das jeder Betrieb selbst. Die Kasse meldet Franchisenehmer hinzugefügt.
- 4 Mitglieder & Rollen: Benutzer-ID, die Rolle Franchise-Admin oder Franchise-Analyst und Mitglied hinzufügen. Die Kasse meldet Mitglied hinzugefügt.
- 5 Speisekarten-Vorlagen: Vorlage erstellen öffnet die Maske mit Vorlagenname, Beschreibung und Verbindlichkeit. Zur Wahl stehen Verbindliches Template (Festpreis) und Unverbindliche Preisempfehlung (UVP). Die Erläuterung steht jeweils dabei.
- 6 Positionen der Vorlage: Position hinzufügen legt eine Zeile an mit Artikelname, Kategorie, Preis (in Euro) und Steuersatz (19 % oder 7 %). Danach speichert Vorlage erstellen die Vorlage (Vorlage angelegt).
- 7 Template veröffentlichen verteilt eine Vorlage an die Betriebe der Gruppe. Das Veröffentlichungs-Protokoll nennt Veröffentlicht an … Betriebe, Erstellte Artikel, Aktualisierte Artikel und Übersprungene Empfehlungen (Preishoheit). Die Kasse meldet Vorlage veröffentlicht.
- 8 Aggregierte Franchise-Berichte: Gesamtumsatz, Bestellungen gesamt, Personalkosten, Aggregierte Personalkostenquote und die Tabelle Auswertung je Franchisenehmer mit Betrieb, Mandanten-ID, Umsatz, Bestellungen, Personalkosten und Quote. Darunter steht Top 5 Artikel der Gruppe.
Schritt für Schritt (mit Verzweigungen)#
Ablauf 1: Franchise-Gruppe aufbauen und Betriebe verbinden#
- Der Administrator der Zentrale erstellt die Franchise-Gruppe im Backoffice (
POST /api/v1/franchise/groups). - Jeder rechtlich selbstständige Franchise-Nehmer registriert sich zunächst als eigenständiger Mandant im Kassensystem.
- Der Zentrale-Admin trägt den Administrator des Franchise-Nehmers als Gruppenmitglied ein (Rolle Analyst oder Admin). Dieser meldet sich in seinem eigenen Betrieb an und lässt ihn der Gruppe beitreten.
- Verzweigung:
- Mandant noch nicht in einer Gruppe: Die Zuordnung wird erfolgreich gespeichert (
franchise_group_idwird im Mandanten hinterlegt). - Mandant bereits in einer Gruppe: Das System bricht ab mit der Fehlermeldung:
Tenant {tenant_id} is already in a franchise group.
- Mandant noch nicht in einer Gruppe: Die Zuordnung wird erfolgreich gespeichert (
Ablauf 2: Speisekarten-Template erstellen und veröffentlichen#
- Rufen Sie im Backoffice der Zentrale die Template-Verwaltung auf.
- Erstellen Sie ein neues Template und wählen Sie die Art der Verbindlichkeit:
- Pfad A: Verbindliches Template (
is_mandatory = True)- Einsatzzweck: Einheitliche Systemgastronomie mit zentral festgelegten Festpreisen.
- Ergebnis beim Veröffentlichen: Die Vorlage wird an alle Ziel-Betriebe verteilt. Bei vorhandenen Artikeln werden lokale Preisanpassungen (
LocationProductOverride) im Betrieb überschrieben.
- Pfad B: Unverbindliche Preisempfehlung (
is_mandatory = False)- Einsatzzweck: Empfohlener Verkaufspreis (UVP) mit Preishoheit beim Franchise-Nehmer.
- Ergebnis beim Veröffentlichen: Neue Artikel werden angelegt. Produkte, für die der Franchise-Nehmer bereits einen eigenen lokalen Standort-Preis gesetzt hat, werden nicht überschrieben. Der Bericht weist diese als
items_skipped_advisoryaus.
- Pfad A: Verbindliches Template (
Ablauf 3: Datenabruf durch die Franchise-Zentrale vs. Kassensperre#
- Ein Benutzer mit der Rolle
franchisor_adminmeldet sich im Backoffice an und ruft den aggregierten Bericht ab. - Das System berechnet die Summen zur Laufzeit direkt aus den Datenbanken der zugeordneten Mandanten.
- Verzweigung (Versuch einer Kassenaktion):
- Aus Sicherheitsgründen versucht der Franchise-Admin, sich an einem Kassen-Terminal anzumelden oder einen Bon abzurechnen.
- Das Kassensystem verweigert den Zugriff strikt mit der Fehlermeldung:
403 Forbidden(technisch abgesichert durch den Testtest_franchisor_role_cannot_perform_till_actions).
Was passiert im Hintergrund#
Aggregierte Berichte für die Franchise-Zentrale werden vom Kassensystem zur Laufzeit dynamisch berechnet. Es werden keine dauerhaften Summentabellen für Franchise-Gruppen gespeichert, wodurch Revisions-Drift und doppelte Buchführung ausgeschlossen sind.
Fiskaltabellen (fiscal_transactions, tse_outage_logs, fiscal_provider_configs) besitzen prinzipbedingt kein Franchise-Gruppenattribut (franchise_group_id). Dadurch ist eine Vermischung von Belegdaten technisch unmöglich. DSFinV-K-Exporte werden ausnahmslos pro tenant_id generiert und enthalten ausschließlich die Vorgänge der jeweiligen juristischen Person.
Häufige Probleme#
1. User does not have access to franchise group {group_id}#
- Ursache: Der angemeldete Benutzer ist weder Administrator der Franchise-Gruppe noch als Mitglied in der Gruppe eingetragen.
- Lösung: Weisen Sie dem Benutzer über den Franchise-Admin die Rolle
franchisor_adminoderfranchisor_analystzu.
2. Only administrative users can create franchise groups#
- Ursache: Ein Benutzer mit eingeschränkten Rechten hat versucht, eine neue Franchise-Gruppe anzulegen.
- Lösung: Die Erstellung von Franchise-Gruppen erfordert globale Administratorrechte im Kassensystem.
3. Tenant {tenant_id} is already in a franchise group#
- Ursache: Es wurde versucht, einen Mandanten einer Franchise-Gruppe zuzuweisen, der bereits mit einer anderen Franchise-Gruppe verknüpft ist.
- Lösung: Ein Mandant kann immer nur genau einer Franchise-Gruppe angehören. Entfernen Sie die bestehende Verknüpfung, bevor Sie ihn neu zuweisen.
4. Target tenants do not belong to group {group_id}#
- Ursache: Beim Veröffentlichen eines Speisekarten-Templates wurde eine Mandanten-ID angegeben, die nicht Mitglied der betreffenden Franchise-Gruppe ist.
- Lösung: Überprüfen Sie die Liste der zugeordneten Betriebe in den Gruppeneinstellungen.
5. Franchise group {id} not found#
- Ursache: Die in der Anfrage übergebene Gruppen-ID existiert nicht im System oder wurde gelöscht.
- Lösung: Überprüfen Sie die ID der Franchise-Gruppe.
6. Franchise group slug {slug} already exists#
- Ursache: Der gewählte Kurzname (Slug) für die Franchise-Gruppe verstoßen gegen die Eindeutigkeit und ist bereits vergeben.
- Lösung: Wählen Sie einen anderen Eindeutigen Kurznamen für die Gruppe (z. B.
burger-chain-sued).
7. Menu template {id} not found#
- Ursache: Das angeforderte Speisekarten-Template existiert nicht oder gehört zu einer anderen Franchise-Gruppe.
- Lösung: Wählen Sie ein gültiges Template aus der Liste der Vorlagen der aktuellen Gruppe.
8. start_date must be earlier than or equal to end_date#
- Ursache: Beim Abruf aggregierter Finanzberichte wurde ein Startdatum angegeben, das nach dem Enddatum liegt.
- Lösung: Korrigieren Sie den Datumsfilter für den Bericht.
Grenzen#
- Die Template-Synchronisation verläuft ausschließlich in eine Richtung (von der Franchise-Zentrale zum Betrieb). Lokale Sortimentsänderungen eines Franchise-Nehmers fließen nicht an die Zentrale zurück.
- Lagerbestände, Inventur, Rezepturen und Lieferantenbestellungen verbleiben zu 100 % in der Verantwortung des jeweiligen lokalen Betriebs.
- Das Kassensystem führt keine konsolidierte Finanzbuchhaltung und kein zentrales Kassenbuch für die Gruppe.
Dieses Kapitel gehört zum Merkuron-Handbuch für Inhaber und Servicepersonal.