Zum Inhalt
v2.0

EasySale

Benutzerhandbuch
Stand: März 2026
Für Administratoren, Shop-Benutzer & Anwender
## Inhaltsverzeichnis ### Teil I – ERP-System (Verwaltung) 1. [Einführung](#1-einführung) 2. [Rollen & Berechtigungen](#2-rollen--berechtigungen) 3. [Dashboard](#3-dashboard) 4. [Kunden](#4-kunden) 5. [Artikel](#5-artikel) 6. [Bestellungen](#6-bestellungen) 7. [Registrierung & Benutzerverwaltung](#7-registrierung--benutzerverwaltung) 8. [Kundenlisten](#8-kundenlisten) 9. [Benachrichtigungen](#9-benachrichtigungen) 10. [Lagerverwaltung](#10-lagerverwaltung) 11. [Einstellungen](#11-einstellungen) 12. [Jobs (Automatisierte Aufgaben)](#12-jobs-automatisierte-aufgaben) 13. [Trigger (Automatisierungen)](#13-trigger-automatisierungen) 14. [Connectoren (Externe Systeme)](#14-connectoren-externe-systeme) 15. [Tutorial-System](#15-tutorial-system) 16. [Sicherheit & Datenschutz](#16-sicherheit--datenschutz) ### Teil II – Shop-System Mobile-App 17. [Übersicht Mobile-App](#17-übersicht-mobile-app) 18. [Anmeldung & Registrierung (Mobile)](#18-anmeldung--registrierung-mobile) 19. [Artikelsuche & Sortiment (Mobile)](#19-artikelsuche--sortiment-mobile) 20. [Artikeldetailseite (Mobile)](#20-artikeldetailseite-mobile) 21. [Warenkorb & Bestellung (Mobile)](#21-warenkorb--bestellung-mobile) 22. [Bestellhistorie (Mobile)](#22-bestellhistorie-mobile) 23. [Feed & Benachrichtigungen (Mobile)](#23-feed--benachrichtigungen-mobile) 24. [Einkaufslisten (Mobile)](#24-einkaufslisten-mobile) 25. [Profil & Einstellungen (Mobile)](#25-profil--einstellungen-mobile) ### Teil III – Shop-System Web-App 26. [Übersicht Web-App](#26-übersicht-web-app) 27. [Anmeldung & Registrierung (Web)](#27-anmeldung--registrierung-web) 28. [Artikelsuche & Sortiment (Web)](#28-artikelsuche--sortiment-web) 29. [Warenkorb & Bestellung (Web)](#29-warenkorb--bestellung-web) 30. [Bestellhistorie (Web)](#30-bestellhistorie-web) 31. [Feed & Benachrichtigungen (Web)](#31-feed--benachrichtigungen-web) 32. [Profil & Einstellungen (Web)](#32-profil--einstellungen-web) 33. [Unterschiede Mobile vs. Web](#33-unterschiede-mobile-vs-web)

Teil I – ERP-System (Verwaltung)

1. Einführung

EasySale ist ein cloudbasiertes Warenwirtschafts- und Shop-System bestehend aus drei Kernkomponenten:

  1. ERP-System (Web-App): Die Verwaltungsoberfläche für Administratoren – beschrieben in Teil I dieses Handbuchs
  2. Shop-System Mobile-App: Die native Bestell-App für Endkunden – beschrieben in Teil II
  3. Shop-System Web-App: Der Web-basierte Online-Shop für Endkunden – beschrieben in Teil III

Systemarchitektur

Komponente Beschreibung
ERP-System Flutter Web-App für Administratoren – Verwaltung von Kunden, Artikeln, Bestellungen, Lager, Benachrichtigungen und Systemeinstellungen
Shop Mobile-App Native Flutter-App (iOS & Android) für Endkunden – Artikelsuche, Bestellungen, Feed, Einkaufslisten
Shop Web-App Flutter Web-App für Endkunden – identische Funktionen wie die Mobile-App, optimiert für Desktop-Browser
Cloud Functions Serverlose Hintergrunddienste (Node.js) für Automatisierungen, Trigger, Jobs und Connectoren
Firebase Firestore-Datenbank, Firebase Authentication, Cloud Storage, Cloud Messaging und Hosting

Anmeldung (ERP)

Nach Eingabe Ihrer E-Mail-Adresse und Ihres Passworts gelangen Sie zum Dashboard. Beim ersten Login wird automatisch ein Tutorial gestartet, das die wichtigsten Funktionen erklärt.

Auto-Logout bei Inaktivität

Der InactivityService überwacht Benutzerinteraktionen (Mausbewegung, Tastatureingabe, Touch). Nach einer konfigurierbaren Zeitspanne ohne Aktivität wird der Benutzer automatisch abgemeldet und zur Anmeldeseite weitergeleitet. Dies erhöht die Sicherheit bei unbeaufsichtigten Arbeitsplätzen.


2. Rollen & Berechtigungen

EasySale unterscheidet zwischen ERP-Benutzern (Verwaltung) und Shop-Benutzern (Endkunden). Jede Gruppe hat eigene Rollen mit unterschiedlichen Rechten.

2.1 ERP-Benutzerrollen

Im ERP-System gibt es drei Rollen, die hierarchisch aufeinander aufbauen:

Rolle Icon Beschreibung
Benutzer 👤 Eingeschränkter Zugriff – kann nur lesen, es sei denn, granulare Berechtigungen wurden explizit vergeben
Administrator 🛡️ Vollzugriff auf alle operativen ERP-Funktionen (Kunden, Artikel, Bestellungen, Einstellungen)
Superadministrator 🔒 Wie Administrator, zusätzlich: Benutzerverwaltung, Connector-Zugangsdaten, Audit-Logs

Berechtigungsmatrix ERP

Funktion Benutzer Administrator Superadministrator
Kunden anzeigen
Kunden erstellen/bearbeiten/löschen ⚙️ Nur mit Berechtigung
Artikel anzeigen
Artikel erstellen/bearbeiten/löschen ⚙️ Nur mit Berechtigung
Bestellungen anzeigen
Bestellungen erstellen/bearbeiten/löschen ⚙️ Nur mit Berechtigung
Bestellungen stornieren ⚙️ Nur mit Berechtigung
Systemeinstellungen verwalten
ERP-Benutzer erstellen/bearbeiten/löschen ✅ Exklusiv
Benutzerrollen ändern ✅ Exklusiv
Benutzerberechtigungen konfigurieren ✅ Exklusiv
Connector-Zugangsdaten verwalten ✅ Exklusiv
Audit-Logs einsehen ✅ Exklusiv
Wartungsaufgaben verwalten 👁️ Nur lesen

⚙️ Granulare Berechtigungen: Benutzer mit der Rolle „Benutzer" können vom Superadministrator einzelne Berechtigungen erhalten (z. B. canCreateCustomers, canEditArticles, canCancelOrders). Diese Berechtigungen werden pro Benutzer in einem Berechtigungsprofil gespeichert.

Besonderheiten der Rollen

Was ein Administrator NICHT kann: - Keine ERP-Benutzer erstellen, bearbeiten oder löschen - Keine Benutzerrollen oder -berechtigungen ändern - Keinen Zugriff auf Connector-Zugangsdaten oder Audit-Logs - Kann einen Superadministrator nicht herabstufen

Was ein Superadministrator exklusiv kann: - Alle ERP-Benutzer verwalten (erstellen, bearbeiten, löschen) - Rollen für andere Benutzer ändern (außer andere Superadmins) - Granulare Berechtigungen konfigurieren - Connector-Zugangsdaten einsehen und ändern - Audit-Log-Protokolle lesen - Wartungsaufgaben erstellen und verwalten

Connector-Sperre

Wenn ein Connector als Quellsystem für eine Ressource aktiv ist (z. B. Business Central für Kunden), werden die entsprechenden Erstellungs-Berechtigungen automatisch gesperrt – auch für Administratoren. In diesem Fall können nur über den Connector neue Datensätze angelegt werden.

2.2 Shop-Benutzerrollen (Kundenbenutzer)

Im Shop-System (Mobile & Web) gibt es zwei Rollen pro Kundenkonto:

Rolle Icon Beschreibung
Benutzer 👤 Standard-Rolle – kann bestellen und den eigenen Kunden-Bereich einsehen
Administrator ⚙️ Erweiterte Rechte – kann zusätzlich Benutzer, Adressen, Lieferpausen und Einstellungen verwalten

Berechtigungsmatrix Shop

Funktion Benutzer Administrator
Artikel ansehen & durchsuchen
Bestellungen aufgeben
Eigene Bestellhistorie einsehen
Feed / Benachrichtigungen lesen
Einkaufslisten verwalten
Lieferadressen erstellen/bearbeiten/löschen
Lieferpausen verwalten
Kundeneinstellungen ändern
Neue Benutzer genehmigen/ablehnen
Benutzer verwalten (für eigenen Kunden)

Hinweis: Ein Shop-Benutzer mit der Rolle „Benutzer" kann Lieferadressen sehen, die vom ERP erstellt wurden, aber keine eigenen anlegen, bearbeiten oder löschen.

Automatische Administrator-Vergabe

Der erste Benutzer, der sich für ein Kundenkonto registriert, wird automatisch zum Administrator dieses Kunden. Alle weiteren Benutzer, die sich für dasselbe Kundenkonto registrieren, erhalten die Rolle „Benutzer".

Ein ERP-Administrator kann die Rolle jederzeit über die Registrierungsseite oder den Benutzer-Tab im Kunden ändern (Benutzer ↔ Administrator).

Multi-Kunden-Zugriff

Ein Shop-Benutzer kann mehreren Kundenkonten zugeordnet sein. Dabei können die Rollen pro Kunde unterschiedlich sein: - Benutzer kann z. B. für Kunde A „Administrator" und für Kunde B „Benutzer" sein - Das aktive Kundenkonto wird über die Kunden-Auswahl im Profil gewechselt - Die Rolle wird über den JWT-Claim adminCustomerIds gesteuert

2.3 JWT-Claims & Autorisierung

Die Zugriffskontrolle wird über Firebase Custom Claims im JWT-Token gesteuert:

ERP-Benutzer

Claim Wert Beschreibung
appType "erp" Kennzeichnet den Benutzer als ERP-Benutzer

Die konkreten Berechtigungen (Rolle + granulare Rechte) werden aus dem Firestore-Dokument users/{uid} gelesen.

Shop-Benutzer

Claim Wert Beschreibung
appType "shop" Kennzeichnet den Benutzer als Shop-Benutzer
customerIds ["CUST001", "CUST002"] Array aller genehmigten Kundenkonten
adminCustomerIds ["CUST001"] Teilmenge von customerIds – Kundenkonten, für die der Benutzer Administrator ist

Automatische Claim-Aktualisierung

Die JWT-Claims werden durch einen Cloud Function Trigger (onShopUserPermissionChanged) automatisch aktualisiert, wenn: - Ein Benutzer genehmigt wird → customerIds wird erweitert - Ein Benutzer abgelehnt oder gelöscht wird → customerIds wird bereinigt - Die Rolle geändert wird (Benutzer ↔ Administrator) → adminCustomerIds wird aktualisiert - Der Token wird beim nächsten Login oder Token-Refresh wirksam


3. Dashboard

Das Dashboard ist die Startseite des ERP-Systems und bietet einen umfassenden Überblick über die aktuellen Geschäftskennzahlen.

Zeitraum-Filter

Über den Dropdown-Filter oben rechts können folgende Zeiträume ausgewählt werden:

Zeitraum Beschreibung
Heute Daten des aktuellen Tages (stündliche Auflösung)
Gestern Daten des Vortages (stündliche Auflösung)
Diese Woche Aktuelle Kalenderwoche (tägliche Auflösung mit Wochentagen)
Letzte 30 Tage Rollierender 30-Tage-Zeitraum (tägliche Auflösung)
Letzte 60 Tage Rollierender 60-Tage-Zeitraum (tägliche Auflösung)
Dieser Monat Aktueller Kalendermonat (tägliche Auflösung)
Letzter Monat Vormonat (tägliche Auflösung)
Dieses Jahr Aktuelles Kalenderjahr (monatliche Auflösung)
Letztes Jahr Vorjahr (monatliche Auflösung)

Über den Aktualisieren-Button können die Daten manuell neu geladen werden. Das System prüft automatisch, ob zwischenzeitlich neue Bestellungen eingegangen sind, und zeigt ggf. eine Benachrichtigung an.

KPI-Leiste (Kurz-Informationen)

Am oberen Rand werden vier farblich kodierte Kennzahlenkarten angezeigt:

KPI Icon Farbe Beschreibung
Aktive Nutzer-Sessions 👤 Personen-Icon Blau Summe der aktuellen Android- und iOS-Sessions im gewählten Zeitraum
Anzahl Kunden 👥 Gruppen-Icon Grün Gesamtzahl der einzigartigen Kunden im Zeitraum
Anzahl Bestellungen 🛒 Warenkorb-Icon Orange Gesamtzahl aller Bestellungen im Zeitraum
Umsatz 💶 Euro-Icon Lila Gesamtumsatz in EUR, formatiert mit Tausendertrennzeichen (z. B. „12.345,67 €")

Während die Daten geladen werden, wird ein Bindestrich „–" als Platzhalter angezeigt. Sobald die Daten verfügbar sind, erscheinen die formatierten Zahlen.

Statistik-Karten (2×2 Layout)

Unterhalb der KPI-Leiste werden vier Statistik-Karten in einem 2×2-Raster dargestellt:

Ein Liniendiagramm zeigt die Umsatzentwicklung im gewählten Zeitraum. Die Granularität passt sich automatisch an:

Zeitraum Auflösung X-Achsen-Beschriftung
Heute / Gestern 24 Stunden-Slots 00:00, 01:00, ... 23:00
Diese Woche 7 Tage Mo, Di, Mi, Do, Fr, Sa, So
Letzte 30/60 Tage, Dieser/Letzter Monat Wochen-Aggregation W1, W2, W3, W4
Dieses/Letztes Jahr 12 Monate Jan, Feb, Mär, ... Dez

Fehlende Zeitfenster werden automatisch mit 0 aufgefüllt, sodass das Diagramm immer ein vollständiges Bild zeigt. Die Y-Achse zeigt den Umsatz in Euro. Beim Hovern über einen Datenpunkt erscheint ein Tooltip mit dem exakten Wert.

Karte 2: Top 5 Artikel (rechts oben)

Eine Rangliste der fünf umsatzstärksten Artikel im gewählten Zeitraum:

Spalte Beschreibung
Rang Platzierung 1–5
Artikelname Name des Artikels
Artikelnummer Eindeutige Artikelnummer
Umsatz Umsatzvolumen in EUR (grüner, fetter Text)

Jede Zeile ist anklickbar und navigiert direkt zur Artikeldetailseite. Über den Button „Alle anzeigen" kann eine vollständige, paginierte Liste aller Artikel nach Umsatz geöffnet werden.

Zeigt eine tabellarische Übersicht der umsatzstärksten Länder:

Spalte Beschreibung
Flagge + Ländername Länderflagge als Bild und lokalisierter Ländername
Bestellungen Anzahl der Bestellungen (oranges Warenkorb-Icon)
Umsatz Umsatzvolumen in EUR (lila Euro-Icon)

Die Zahlen werden im deutschen Format dargestellt (Punkt als Tausendertrenner, Komma als Dezimaltrenner). Die Liste ist scrollbar, falls mehr als 10 Länder vorhanden sind.

Karte 4: Top 5 Kunden (rechts unten)

Analog zur Top-5-Artikel-Karte, aber für Kunden:

Spalte Beschreibung
Rang Platzierung 1–5
Firmenname Name des Kundenunternehmens
Kundennummer Eindeutige Kundennummer
Umsatz Umsatzvolumen in EUR (grüner, fetter Text)

Jede Zeile ist anklickbar und navigiert direkt zur Kundendetailseite. „Alle anzeigen" öffnet die vollständige Kundenliste nach Umsatz.

Statistik-Berechnung und Caching

Die Statistiken werden über Cloud Functions berechnet und serverseitig gecacht, um die Ladezeit zu minimieren:

  • „Heute" und „Diese Woche": Über den Aktualisieren-Button wird eine Live-Neuberechnung direkt als Cloud Function angestoßen. Die Ergebnisse werden sofort angezeigt.
  • Alle anderen Zeiträume: Werden aus dem Firebase-Cache geladen, der regelmäßig über geplante Jobs (siehe Kapitel 11) aktualisiert wird.
  • Automatische Erkennung: Das System prüft beim Zeitraumwechsel automatisch, ob neue Bestellungen eingegangen sind. Falls ja, wird eine Snackbar-Benachrichtigung eingeblendet: „Neue Bestellungen vorhanden – jetzt aktualisieren!"

Die Statistik-Berechnung ist hochoptimiert: - Feld-Selektion: Nur benötigte Felder werden geladen (~70 % Kostenreduktion) - Smart Caching: Abgeschlossene Zeiträume (z. B. „Letztes Jahr") werden übersprungen (~80 % Arbeitsersparnis) - Inkrementelle Updates: Nur Kunden mit neuen Bestellungen werden neu berechnet

Statistik-Drilldown

Jede Statistik-Karte bietet über den „Alle anzeigen"-Button einen Drilldown-Dialog mit paginierter Detailansicht:

  • Vollständige Liste: Zeigt nicht nur die Top-5, sondern alle Datensätze nach Umsatz sortiert
  • Such- und Filterfunktion: Suche nach Name, Nummer oder Kategorie
  • Paginierung: Seitenweise Navigation durch große Datenmengen
  • Navigation: Klick auf einen Eintrag navigiert direkt zur Kunden- oder Artikeldetailseite

4. Kunden

Die Kundenverwaltung ist der zentrale Bereich für alle kundenbezogenen Informationen und Aktionen.

Kundenübersicht

  • Suche: Volltextsuche nach Firmenname, Kundennummer oder weiteren Feldern (N-Gram-basiert für schnelle Ergebnisse)
  • Filter: Filterung nach Kundenkategorie über Dropdown
  • Sortierung: Sortierbare Spalten in der Tabellenansicht
  • Kundenliste: Tabellarische Ansicht mit Firmenname, Kundennummer, Kategorie und Status

Kunden erstellen (Editor)

Über den „Neuer Kunde"-Button öffnet sich der Kunden-Editor als Ganzseitenansicht mit folgenden Formularabschnitten:

Allgemeine Daten

Feld Beschreibung Pflicht
Firmenname Name des Kundenunternehmens
Kundennummer Eindeutige Kennung (wird gegen Validierungsregeln geprüft, siehe Kapitel 11.1)
Kategorie Kundenkategorie (Dropdown)
Sprache Bevorzugte Sprache
Land Zugehöriges Land

Kontaktdaten

Feld Beschreibung
E-Mail E-Mail-Adresse
Telefon Festnetznummer
Mobil Mobilnummer
Fax Faxnummer
Website Firmen-Website (URL)

Adressdaten

Feld Beschreibung
Straße Straße und Hausnummer
PLZ Postleitzahl
Ort Stadt
Land Land (Dropdown)

Liefertage

  • Auswahl der Wochentage, an denen der Kunde beliefert wird
  • Standard: Systemweite Liefertage werden vorausgewählt

Erweiterte Einstellungen

Feld Beschreibung
Mindestbestellmenge Minimale Bestellmenge pro Auftrag
Mindestbestellwert Minimaler Bestellwert in EUR
Preisanzeige im Shop Ob Preise im Shop sichtbar sind
Benachrichtigungsgruppen Zuordnung zu Benachrichtigungsgruppen
Kundenlisten Zuordnung zu Kundenlisten

Nach dem Speichern wird der Kunde in Firestore angelegt und die automatische Artikelzuweisung basierend auf Kategorien ausgelöst (Trigger: onCustomerCreated).

Kundensperre

Kunden können über den Sperren-Button (🔒) in der Kundendetailseite gesperrt werden:

Zustand Beschreibung
Entsperrt Normaler Betrieb – Kunde kann Bestellungen aufgeben
Gesperrt Kunde kann sich nicht im Shop anmelden und keine Bestellungen aufgeben

Beim Sperren wird ein Bestätigungsdialog angezeigt. Der Sperr-Status wird in den Kundenstammdaten gespeichert und über die JWT-Claims an die Shop-Apps propagiert.

Jahreskalender-Ansicht

Im Kunden-Stammdaten-Tab kann über einen Button die Jahreskalender-Ansicht (YearDaysOverviewWidget) aufgerufen werden. Diese zeigt eine kompakte Jahresübersicht aller Liefertage:

  • Grüne Tage: Reguläre Liefertage
  • Rote Tage: Lieferpausen des Kunden
  • Graue Tage: Feiertage und Betriebsferien
  • Wochenenden: Abgedunkelt dargestellt
  • Hilft bei der visuellen Planung von Lieferpausen und Betriebsferien

Kundenspezifische Liefermuster

Neben der einfachen Wochentag-Auswahl können für Kunden auch benutzerdefinierte Liefermuster konfiguriert werden:

Lieferzyklus Beschreibung Beispiel
Täglich Lieferung an jedem Werktag Mo–Fr
Wöchentlich Lieferung an festen Wochentagen Jeden Di und Do
14-tägig Lieferung alle zwei Wochen Alle 2 Wochen Mittwoch
Monatlich Lieferung an einem festen Tag im Monat Am 1. und 15. jeden Monats
Benutzerdefiniert Individuelles Muster über CustomPatternEditorDialog Freie Konfiguration

Das System berechnet anhand des Liefermusters und der globalen Liefertage-Einstellungen automatisch den nächsten Liefertermin.

Kundendetailseite (9 Tabs)

Tab 1: Stammdaten

Die Stammdaten-Seite ist in mehrere Blöcke unterteilt, die jeweils über einen Bearbeitungs-Button einzeln editiert werden können.

4-Wochen-Lieferkalender

Am oberen Rand wird ein horizontaler 4-Wochen-Kalender angezeigt, der die Liefertage des Kunden visuell darstellt: - Liefertage sind farblich hervorgehoben - Lieferpausen und Feiertage werden markiert - Der Kalender ist anklickbar und kann erweitert werden - Daten werden aus dem Lieferpausen-System geladen

Einstellungen-Block

Über den Bearbeiten-Button (✏️) öffnet sich der Kunden-Einstellungen-Dialog:

Feld Beschreibung
Firmenname Name des Unternehmens
Kundennummer Eindeutige Kennung (wird bei der Registrierung und im Shop verwendet)
Kategorie Kundenkategorie (farblich markiert, über Dropdown wählbar)
Sprache Bevorzugte Sprache des Kunden (bestimmt die Sprache der Shop-Oberfläche)
Land Zugehöriges Land (beeinflusst Artikelverfügbarkeit und Lieferbedingungen)
Mindestbestellmenge Minimale Bestellmenge pro Auftrag (wird im Shop erzwungen)
Mindestbestellwert Minimaler Bestellwert in EUR (wird im Shop erzwungen)
Preisanzeige Ob Preise im Shop angezeigt werden (Ein/Aus)
Telefonliste Ob der Kunde auf der Telefonliste erscheint (Ein/Aus)
Kein Bedarf bis Datum, bis zu dem der Kunde nicht bestellt – der Kunde wird im angegebenen Zeitraum als „inaktiv" markiert
Profilbild Upload eines Kunden-Logos oder -Fotos
Gesperrt Ob der Kunde gesperrt ist (keine Bestellungen möglich)
Benutzerdefinierte Felder Konfigurierbare Zusatzfelder je nach Client-Konfiguration
Kontakt-Block

Über den Bearbeiten-Button öffnet sich der Kunden-Kontakt-Dialog:

Feld Beschreibung
E-Mail E-Mail-Adresse des Ansprechpartners
Telefon Festnetznummer
Mobil Mobilnummer
Fax Faxnummer (falls vorhanden)
Website Firmen-Website (URL)
Adress-Block

Über den Bearbeiten-Button öffnet sich der Kunden-Adress-Dialog:

Feld Beschreibung
Straße Straße und Hausnummer
PLZ Postleitzahl
Ort Stadt
Land Land (Dropdown-Auswahl)

Die hier eingegebene Adresse dient als Rechnungsadresse und als Standard-Lieferadresse, sofern keine separate Lieferadresse hinterlegt ist.

Liefertage-Block

Über den Bearbeiten-Button öffnet sich der Liefertage-Dialog: - Auswahl, an welchen Wochentagen der Kunde beliefert werden kann - Individuelle Abweichung von den systemweiten Liefertagen möglich

Tab 2: Artikel

Zeigt alle dem Kunden zugewiesenen Artikel an. Die Zuordnung erfolgt über die Artikelzuweisung (siehe Artikeldetail, Tab 4).

Suche & Filter
  • Volltextsuche: N-Gram-basierte Suche nach Artikelname und -nummer (min. 3 Zeichen)
  • Kategoriefilter: Dropdown-Auswahl einer Artikelkategorie zur Einschränkung der Ergebnisse
  • Kombination: Suche und Kategorie können gleichzeitig verwendet werden
Pagination
  • Lazy Loading: Artikel werden in Blöcken von 30 Stück nachgeladen
  • Unendliches Scrollen: Beim Erreichen des Listenendes werden automatisch weitere Artikel geladen
  • Lade-Indikator: Spinner am Ende der Liste zeigt laufendes Nachladen an
Artikelkarten-Anzeige

Jeder Artikel wird als Karte dargestellt mit:

Element Beschreibung
Artikelbild Vorschaubild (erstes Bild aus der Bildergalerie) oder Platzhalter-Icon
Artikelname Hauptbezeichnung des Artikels
Artikelnummer Eindeutige Kennung
Preis Standardpreis der Standard-Variante (falls Preisanzeige aktiviert)
Kategorie-Badge Farbiger Chip mit Kategoriename

Klick auf eine Artikelkarte navigiert direkt zur Artikeldetailseite.

Tab 3: Benutzer

Tabellarische Übersicht aller Benutzerkonten, die dem Kunden zugeordnet sind.

Tabellenspalten
Spalte Beschreibung
E-Mail E-Mail-Adresse des Benutzers (aus Firebase Authentication)
Sprache Bevorzugte Sprache des Benutzers (z. B. DE, EN)
Benutzertyp Benutzer oder Administrator – Administratoren können weitere Benutzer verwalten
Registrierungsstatus Ausstehend (🟠), Genehmigt (🟢) oder Abgelehnt (🔴) – mit farbigem Badge
AGB akzeptiert Ob und welche AGB-Version der Benutzer akzeptiert hat
Statusdatum Datum der letzten Statusänderung (z. B. Genehmigungsdatum)
Aktionen pro Benutzer
Aktion Beschreibung
✅ Genehmigen Setzt den Status auf „Genehmigt" – Benutzer erhält Zugang zum Shop. JWT-Claims werden automatisch aktualisiert.
❌ Ablehnen Setzt den Status auf „Abgelehnt" – Zugang wird verweigert
✏️ Bearbeiten Öffnet Dialog zur Bearbeitung von Name, Sprache und Benutzertyp
🗑️ Löschen Entfernt den Benutzer vollständig (Firebase Auth + Firestore). Bestätigungsdialog erforderlich.

Hinweis: Der erste Benutzer, der sich für einen Kunden registriert, wird automatisch zum Administrator dieses Kunden. Weitere Benutzer erhalten standardmäßig den Typ „Benutzer".

Tab 4: Bestellungen

Paginierte Tabelle aller Bestellungen dieses Kunden.

Tabellenspalten
Spalte Beschreibung
Bestellnummer z. B. „ORD-2025-001" – klickbar, öffnet die Bestelldetailseite
Betrag Gesamtbetrag der Bestellung in der hinterlegten Währung
Status Farbkodiertes Badge: Ausstehend (🟠), Bestätigt (🔵), In Bearbeitung (🔵), Versendet (🟢), Geliefert (🟢 dunkel), Storniert (🔴)
Bestelldatum Formatiert als „dd.MM.yyyy HH:mm"
Sortierung & Navigation
  • Sortierbar nach jeder Spalte (Klick auf Spaltenüberschrift)
  • Standard-Sortierung: Neueste Bestellungen zuerst
  • Direkter Klick auf eine Bestellzeile öffnet die Bestelldetailseite
  • Server-seitige Paginierung mit „Mehr laden"-Button

Tab 5: Statistiken

Kundenspezifische Umsatz- und Bestellstatistiken mit interaktiven Diagrammen.

KPI-Karten (4 Karten)
KPI Format Beispiel
Gesamtbestellungen Anzahl „42 Bestellungen"
Gesamtumsatz Währung „€ 12.345,67"
Durchschnittlicher Bestellwert Währung „€ 294,20"
Bestellte Artikel (Unique) Anzahl „18 Artikel"
Umsatzdiagramm

Ein Linien-/Balkendiagramm zeigt den Umsatzverlauf über die gewählte Zeitperiode:

Zeitraum Granularität
Heute Stündlich (0–23 Uhr)
Gestern Stündlich (0–23 Uhr)
Letzte 7 Tage Täglich
Letzte 30 Tage Täglich
Dieser Monat Täglich
Letzter Monat Täglich
Dieses Jahr Wöchentlich
Letztes Jahr Wöchentlich
  • X-Achse: Zeitperiode
  • Y-Achse: Umsatz in EUR
Top-Artikel-Karte

Zeigt die Top 5 der meistbestellten Artikel dieses Kunden:

Spalte Beschreibung
Artikelnummer Eindeutige Kennung
Artikelname Bezeichnung
Menge Gesamtmenge aller Bestellungen
Umsatz Gesamtumsatz für diesen Artikel

Klick auf einen Artikel navigiert zur Artikeldetailseite.

Datenladung
  • Statistiken werden aus Firebase-Cache geladen (vorberechnet)
  • Aktualisierungsbutton (↻) oben rechts zum Neuladen
  • Leerer Zustand: Zeigt Nullwerte, wenn keine Bestelldaten vorhanden

Tab 6: Feed

Der Feed ist ein leistungsfähiges Kommunikationswerkzeug, über das Inhalte direkt an den Kunden gesendet werden können. Der Feed unterstützt vier verschiedene Eintragstypen und bietet einen vollständigen Editor.

Eintragstypen
Typ Darstellung Beschreibung
Push-Benachrichtigung iOS-Benachrichtigungs-Banner-Stil Kurze Nachricht, die als Push-Notification auf dem Gerät des Kunden erscheint
In-App-Nachricht Instagram-Post-ähnliches Layout Rich-Text-Nachricht mit Bildern und Formatierung, sichtbar im Feed der Shop-App
Dokument Dokumentenliste Anhänge (PDF, Dateien) die dem Kunden zur Verfügung gestellt werden
Systemnachricht Minimalistischer Stil Automatisch generierte Systemmeldungen (z. B. Statusänderungen)
Felder pro Feed-Eintrag
Feld Beschreibung
Titel Überschrift des Eintrags (max. 2 Zeilen, danach ausklappbar)
Inhalt Rich-Text-Body mit Formatierungsunterstützung (Fett, Kursiv, Links)
Typ Einer der 4 Eintragstypen (siehe oben)
Status Zustellstatus: Ausstehend, Gesendet, Zugestellt, Fehlgeschlagen
Erstellt am Zeitstempel (wird als relative Zeit angezeigt, z. B. „vor 5 Minuten")
Sprache Sprache des Inhalts (Deutsch, Englisch usw.)
Bilder Bildkarussell (bis zu 500px Höhe)
Dokumente Angehängte Dateien
Zustellinfo Metadaten zur Zustellung (bei Push- und Systemnachrichten)
Suche & Filter
  • Textsuche: Volltextsuche über Titel und Inhalt
  • Typfilter: Dropdown zur Einschränkung auf einen Eintragstyp (Push, InApp, Dokument, System)
  • Sprachfilter: Dynamisch basierend auf den Sprachen der Kundenbenutzer
  • Pagination: 20 Einträge pro Seite mit Nachladen
Feed-Editor (4-Tab-Dialog)

Zum Erstellen neuer Feed-Einträge öffnet sich ein Dialog mit 4 Tabs:

Tab 1: Kundenauswahl - Einzelkunden- oder Mehrfachauswahl über Picker-Dialog - Vorselektiert mit dem aktuell geöffneten Kunden

Tab 2: Inhalt - Titel-Feld: Pflichtfeld für die Überschrift - Rich-Text-Editor (Quill): Formatierungsmöglichkeiten für Fett, Kursiv, Unterstrichen, Links, Listen - Sprachauswahl: Inhalte können pro Sprache separat erfasst werden

Tab 3: Dokumente - Datei-Upload per Drag & Drop oder Dateiauswahl - PDF- und andere Dateiformate unterstützt - Upload nach Firebase Storage mit Fortschrittsanzeige

Tab 4: Sendeoptionen - Push/In-App-Toggle: Ob als Push-Benachrichtigung und/oder In-App-Nachricht gesendet wird - Zeitplanung: Sofort senden oder für späteren Zeitpunkt planen

Aktionen auf Feed-Einträgen
Aktion Beschreibung
Aufklappen Inline-Ansicht des vollständigen Inhalts mit Bildern
Zustelldetails Klick auf Zustell-Badge zeigt detaillierte Zustellprotokolle
Bearbeiten Editor erneut öffnen (nur für Entwürfe)
Löschen Eintrag entfernen (Bestätigungsdialog erforderlich)

Tab 7: Einkaufslisten

Einkaufslisten ermöglichen es Kunden, in der Shop-App Artikelsammlungen zusammenzustellen. Im ERP können Administratoren diese Listen einsehen und verwalten.

Einkaufslisten-Felder
Feld Beschreibung
Titel Name der Einkaufsliste (Pflichtfeld)
Beschreibung Optionale Notizen zur Liste
Kunden-ID Zugehöriger Kunde
Artikelpositionen Array mit einzelnen Listenpositionen
Felder pro Listenposition
Feld Beschreibung
Artikelnummer Referenz auf den Artikel
Artikelname Anzeigename
Menge Gewünschte Bestellmenge
Kommentar Benutzernotiz zur Position (im ERP editierbar)
Status Erledigungsstatus der Position
Darstellung
  • Listenansicht mit Einkaufslistennamen als Überschriften
  • Pro Liste wird ein Artikel-Zähler-Badge angezeigt
  • Leerer Zustand: Hinweismeldung mit Erstellen-Aktion
Aktionen
Aktion Beschreibung
Erstellen Neue Einkaufsliste über den „+"-Button anlegen
Bearbeiten Titel und Beschreibung im Editor-Dialog ändern
Löschen Liste entfernen (Bestätigungsdialog erforderlich)
Positionen hinzufügen Über Inline-UI oder Artikelpicker
Position entfernen Einzelne Position aus der Liste löschen

Hinweis: Einkaufslisten werden über Mobile-App UND ERP gleichzeitig verwaltet. Änderungen werden in Echtzeit synchronisiert.

Tab 8: Lieferadressen

Verwaltung aller Lieferadressen des Kunden. Jeder Kunde kann mehrere Lieferadressen hinterlegen, die bei der Bestellung im Shop zur Auswahl stehen.

Adressfelder
Feld Beschreibung
Firma Firmenname an der Lieferadresse (optional)
Kurzname Spitzname für die Adresse (z. B. „Hauptlager", „Filiale Süd")
Straße Straßenname
Hausnummer Hausnummer
PLZ Postleitzahl
Ort Stadt
Bundesland Bundesland/Provinz (optional)
Land Land (Dropdown-Auswahl, erbt den Standard vom Kunden)
Standard Boolean-Flag: Markiert die Adresse als Standard-Lieferadresse
Darstellung
  • Jede Adresse wird als Karte dargestellt mit farbigem Akzentstrich (3px, links)
  • Vollständigkeits-Indikator: Badge zeigt an, ob alle Pflichtfelder ausgefüllt sind
  • Standard-Badge: Die als Standard markierte Adresse erhält ein visuelles Kennzeichen
  • Responsives Layout mit kompakten Labels
  • Leerer Zustand: Hinweismeldung mit Erstellen-Button
Aktionen
Aktion Beschreibung
Erstellen Neue Lieferadresse über den „+"-Button anlegen (erfordert Bearbeitungsberechtigung)
Bearbeiten Adressdaten im Editor-Dialog ändern (Stift-Icon pro Karte)
Löschen Adresse entfernen (Papierkorb-Icon pro Karte, erfordert Bearbeitungsberechtigung)
Als Standard setzen „Als Standard markieren"-Button – setzt das isDefault-Flag und entfernt es von der bisherigen Standardadresse

Tab 9: Einstellungen

Kundenspezifische Konfigurationen, unterteilt in zwei aufklappbare Sektionen.

Sektion 1: Benachrichtigungsgruppen

Zeigt alle verfügbaren Benachrichtigungsgruppen an, denen der Kunde zugeordnet werden kann:

  • Aufklappbare Sektion mit Icon, Titel und Pfeil-Symbol (dreht sich beim Aufklappen)
  • Pro Gruppe wird ein Toggle-Schalter angezeigt (Ein/Aus)
  • Der Toggle bestimmt, ob der Kunde Benachrichtigungen dieser Gruppe erhält
  • Badge-Zähler in der Sektionsüberschrift zeigt die Anzahl aktiver Gruppen
  • Änderungen werden sofort in Firebase gespeichert

Beispiel-Gruppen: „Angebote & Aktionen", „Neue Artikel", „Bestellstatus-Updates", „Newsletter"

Sektion 2: Kundenlisten

Verwaltung der Kundenlistenzugehörigkeit:

  • Aufklappbare Sektion analog zu den Benachrichtigungsgruppen
  • Zwei-Spalten-Layout: Verfügbare Listen (links) | Ausgewählte Listen (rechts)
  • Checkbox-Toggles für jede Liste
  • Pro Liste wird der Listenname und die aktuelle Artikelanzahl angezeigt
  • Optimistische UI-Updates: Toggle wird sofort visuell umgeschaltet, Speicherung erfolgt asynchron
  • Änderungen werden in Firebase persistiert
Layout beider Sektionen
  • Icon + Titel + Untertitel pro Sektion
  • Trennlinie zwischen den Sektionen
  • Scrollbereich für lange Inhalte

Aktionen auf der Kundenseite

Tab-Badges

Jeder Kunden-Tab zeigt ein Zähler-Badge an, das die Anzahl der Einträge darstellt: - Artikel-Tab: Anzahl zugewiesener Artikel - Benutzer-Tab: Anzahl registrierter Benutzer - Bestellungen-Tab: Anzahl der Bestellungen - Feed-Tab: Anzahl der Feed-Einträge - Einkaufslisten-Tab: Anzahl der Listen - Lieferadressen-Tab: Anzahl der Adressen

Verfügbare Aktionen
Aktion Beschreibung
Bearbeiten Stammdaten ändern über den Bearbeitungs-Dialog (Stift-Icon in jedem Block)
Löschen Kunde löschen – mit Validierung: Löschung wird verhindert, wenn aktive Bestellungen oder zugeordnete Benutzer existieren. Bestätigungsdialog erforderlich.
Telefonliste generieren Export der Telefonliste als PDF oder Excel
Kunde sperren / entsperren Blockiert den Shop-Zugang des Kunden – gesperrte Kunden können keine Bestellungen aufgeben
Client-Konfigurationsüberschreibungen

Über die Client-Konfiguration (ClientConfig) können bestimmte Tabs für einzelne Mandanten deaktiviert oder umbenannt werden. Tabs, die in der Konfiguration als „deaktiviert" markiert sind, werden in der Kunden-Detailseite nicht angezeigt.


5. Artikel

Die Artikelverwaltung ermöglicht die vollständige Pflege des Sortiments.

Artikelübersicht

  • Suche: Volltextsuche nach Artikelname, Artikelnummer, Beschreibung
  • Filter: Filterung nach Artikelkategorien und -gruppen
  • Unterseiten: Artikelliste, Artikelgruppen, Kategorien-Verwaltung

Artikeldetailseite (6 Tabs)

Tab 1: Stammdaten

Feld Beschreibung
Artikelname Bezeichnung des Artikels
Artikelnummer Eindeutige Nummer
Preis Standardpreis (wird auf Variantenebene definiert)
Mengeneinheit z. B. Stück, kg, Liter
Steuer Steuersatz
EAN-Code Barcode / GTIN
Verfügbarkeit Aktiviert/Deaktiviert
Im Shop anzeigen Sichtbarkeit im Online-Shop
Lagerverfolgung Ob Bestand verfolgt wird
Kategorien Zugeordnete Artikelkategorien
Länderverfügbarkeit In welchen Ländern verfügbar
Benutzerdefinierte Felder Konfigurierbare Zusatzfelder

Tab 2: Beschreibungen

  • Mehrsprachige Beschreibungen (Deutsch, Englisch und weitere)
  • Separate Felder pro Sprache
  • Badge zeigt die Anzahl der ausgefüllten Sprachen an
  • KI-Übersetzung (falls aktiviert): Button zur automatischen Übersetzung der Beschreibung in alle aktiven Sprachen – bestehende Texte werden nicht überschrieben, nur leere Felder befüllt

Tab 3: Artikelvarianten

Varianten definieren verschiedene Ausführungen eines Artikels (z. B. Größen, Farben):

Feld Beschreibung
Variantenname z. B. „Rot Groß"
Variantennummer Eigene SKU/Nummer
Preis Variantenspezifischer Preis
Menge Menge pro Einheit
Verfügbarkeit Aktiviert/Deaktiviert
Im Shop anzeigen Sichtbarkeit im Shop
Bestand Aktueller Lagerbestand (bei aktiver Lagerverfolgung)
Soll-Bestand Gewünschter Bestandslevel
Meldebestand Mindestbestand, ab dem gewarnt wird
Anzeigelimit Maximale Bestandsanzeige im Shop (für Künstliche Knappheit)
Knappheit bis Ablaufdatum der Knappheitsanzeige
Standard-Variante Markierung als Standardvariante (⭐)
Bilder Variantenspezifische Bilder mit Sortierung

Varianten können per Drag & Drop sortiert, bearbeitet und gelöscht werden.

Tab 4: Artikelzuweisung

Steuerung der Sichtbarkeit eines Artikels für bestimmte Kunden:

  • Automatische Zuweisung: Über Kundenkategorien – alle Kunden einer Kategorie sehen den Artikel
  • Manuelle Zuweisung: Einzelne Kunden können direkt zugeordnet oder ausgeschlossen werden
  • Varianten-Level: Zuweisung kann auf Artikelebene oder pro Variante erfolgen

Tab 5: Bilder

  • Upload von Artikelbildern (Drag & Drop)
  • Sortierung per Drag & Drop (Index-basiert)
  • Erstes Bild = Hauptbild in der Artikelliste
  • Bildvorschau und Löschen

Tab 6: Dokumente

  • Anhängen von Dokumenten (PDF, Spezifikationen, Datenblätter)
  • Dokumenttypen werden in den Einstellungen definiert
  • Such- und Filterfunktion
  • Upload und Download

Artikel können mit Werbe-Bannern versehen werden:

Feld Beschreibung
Bannertitel Mehrsprachiger Titel (z. B. „Sonderangebot")
Gültig von / bis Zeitraum, in dem das Banner angezeigt wird
Hintergrundfarbe Individuelle Farbe des Banners
Schriftfarbe Farbe des Bannertexts

Banner werden automatisch über einen Job aktiviert/deaktiviert (siehe Job: Dokumenten-Gültigkeit prüfen).

Artikel-Aktionen

  • Duplizieren: Erstellt eine Kopie des Artikels mit nächster freier Artikelnummer
  • Löschen: Mit Validierung – Artikel, die in aktiven Bestellungen referenziert werden, können nicht gelöscht werden

6. Bestellungen

Die Bestellverwaltung bietet eine vollständige Übersicht und Steuerung aller eingehenden Bestellungen. Bestellungen können sowohl von Kunden über die Shop-App aufgegeben als auch direkt im ERP manuell erstellt werden.

Bestellung erstellen / bearbeiten (Editor)

Über den „Neue Bestellung"-Button oder das Bearbeitungs-Icon einer bestehenden Bestellung öffnet sich der Bestell-Editor-Dialog:

Schritt 1: Kundenauswahl

Element Beschreibung
Kundensuche Suche nach Kundenname oder -nummer
Kundenkarte Zeigt den ausgewählten Kunden mit Name, Nummer und Kategorie
Lieferadresse Dropdown-Auswahl der hinterlegten Lieferadressen des Kunden

Schritt 2: Artikelauswahl

Element Beschreibung
Artikelsuche Volltextsuche über alle dem Kunden zugewiesenen Artikel
Variantenauswahl Dialog zur Auswahl der gewünschten Variante (mit Bild, Preis, Verfügbarkeit)
Mengensteuerung Increment/Decrement-Buttons sowie direktes Eingabefeld
Positionsliste Live-Übersicht aller hinzugefügten Positionen mit Einzelpreis und Summe

Schritt 3: Bestelldetails

Feld Beschreibung
Lieferdatum Datumspicker – berechnet automatisch den nächsten verfügbaren Liefertag
Bestellnotizen Freitext-Kommentarfeld
Rabatt Optionaler Rabatt in % oder absolut

Schritt 4: Bestätigung

  • Zusammenfassung aller Positionen mit Preisberechnung
  • Gesamtbetrag wird angezeigt
  • „Bestellung aufgeben"-Button erstellt die Bestellung in Firestore

Hinweis: Bei der ERP-seitigen Bestellerstellung gelten dieselben Server-seitigen Validierungen wie bei Shop-Bestellungen (Preisvalidierung, Verfügbarkeitsprüfung, Mindestbestellwert).

Bestellübersicht

Die Bestellübersicht zeigt alle Bestellungen in einer paginierten Tabelle.

Tabellenspalten

Spalte Beschreibung
☐ Auswahl Checkbox für Massenaktionen (links)
Bestellnummer z. B. „ORD-2025-001" – klickbar, öffnet die Detailseite
Kunde Kundenname + Kundennummer
Betrag Gesamtbestellwert in Währung
Status Farbkodiertes Status-Badge
Bestelldatum Formatiert als „dd.MM.yyyy HH:mm"
Aktionen Icon-Buttons: Anzeigen, Bearbeiten, Löschen

Suche

Die Suche unterstützt drei Suchfelder mit einheitlichen Validierungsregeln:

Suchfeld Beschreibung
Kundennummer Prefix-basierte Suche, min. 3 / max. 7 Zeichen (automatisch abgeschnitten)
Kundenname Partielle Namenssuche, min. 3 / max. 7 Zeichen
Bestellnummer Prefix-basierte Suche, min. 3 / max. 7 Zeichen

Hinweis: Bei weniger als 3 eingegebenen Zeichen wird keine serverseitige Suche ausgelöst, um die Datenbankbelastung gering zu halten.

Dynamische Filter

Filter Beschreibung
Status Dropdown: Ausstehend, Bestätigt, In Bearbeitung, Versendet, Geliefert, Storniert, Abgelehnt
Zeitraum Datumsbereichs-Auswahl (von–bis)
Betrag Betragsbereichs-Filter

Massenaktionen

Über die Checkboxen links können mehrere Bestellungen ausgewählt werden:

Massenaktion Beschreibung
PDF-Export Alle ausgewählten Bestellungen als einzelne PDFs oder Sammel-PDF exportieren
Excel-Export Alle ausgewählten Bestellungen in eine Excel-Datei exportieren
Massenstatus-Änderung Status aller ausgewählten Bestellungen gleichzeitig ändern
Massenlöschung Alle ausgewählten Bestellungen löschen (Bestätigungsdialog)

Aktionen pro Zeile

Aktion Beschreibung
👁️ Anzeigen Öffnet Seitenpanel mit vollständigen Bestelldetails
✏️ Bearbeiten Öffnet den Bestellungs-Editor-Dialog
📋 Duplizieren Erstellt eine Kopie der Bestellung
🗑️ Löschen Einzelne Bestellung löschen (Bestätigungsdialog)

Pagination

  • Server-seitige Paginierung: 100 Einträge pro Seite
  • „Mehr laden"-Button am Ende der Liste
  • Filter und Suchbegriffe bleiben beim Nachladen erhalten

Bestellstatus-Workflow

Jede Bestellung durchläuft folgende Status:

Ausstehend (0) → Bestätigt (1) → In Bearbeitung (2) → Versendet (3) → Geliefert (4)
                 Storniert (5)

Server-Ablehnung: Abgelehnt (6)
Status Farbe Beschreibung
Ausstehend Orange Bestellung eingegangen, noch nicht bestätigt
Bestätigt Grün Bestellung bestätigt – Bestand wird reduziert, Export-Queue wird aktiv
In Bearbeitung Blau Bestellung wird kommissioniert/produziert
Versendet Lila Bestellung ist auf dem Versandweg
Geliefert Grün (dunkel) Bestellung wurde zugestellt
Storniert Rot Bestellung wurde storniert – Bestand wird wiederhergestellt
Abgelehnt Rot (dunkel) Server hat die Bestellung abgelehnt (z. B. Preismanipulation)

Automatische Aktionen bei Statuswechsel

Statuswechsel Automatische Aktion
→ Bestätigt Lagerbestand wird um Bestellmenge reduziert; Bestellhistorie-Eintrag wird erstellt; Bestellung wird in die Export-Queue eingereiht
→ Storniert (wenn vorher bestätigt) Lagerbestand wird wiederhergestellt; Export-Queue-Eintrag wird entfernt; Bestandshistorie wird aktualisiert
→ Storniert (wenn ausstehend) Keine Auswirkung auf den Bestand

Bestelldetailseite

Die Detailseite einer Bestellung ist in 8 klar getrennte Bereiche unterteilt:

1. Export-Sync-Banner

Wenn ein Connector für den Bestell-Export konfiguriert ist, wird oben ein Sync-Status-Banner angezeigt: - Zeigt den aktuellen Synchronisierungsstatus mit dem externen System - Farbkodiert je nach Status (Grün = Synchronisiert, Orange = Ausstehend, Rot = Fehlgeschlagen) - Letzte Sync-Zeitstempel wird angezeigt - Bei Fehlern: Fehlermeldung und „Erneut versuchen"-Option

2. Kopfbereich

Element Beschreibung
Bestellnummer Groß und fett mit „#"-Prefix (z. B. „#12345")
Status-Badge Farbiger Punkt + lokalisierter Statustext
Berechnetes Lieferdatum Automatisch berechnet aus Bestelldatum + Liefertage-Konfiguration
Tatsächliches Lieferdatum Manuell gesetzt, wenn die Bestellung als „Versendet" markiert wird
Bestelldatum Vollständige Datums- und Zeitangabe
Kundeninformation Kundenname und -nummer (klickbar → navigiert zum Kunden)

3. Bestelldetails

Feld Beschreibung
Bestell-ID Interne Firestore-Dokument-ID
Rabatt Rabattanteil in % und absoluter Betrag
Versandkosten Falls konfiguriert
Bestellnotizen Freitext-Kommentar des Kunden (großes Textfeld)

4. Positionsliste

Tabelle aller Bestellpositionen mit folgenden Spalten:

Spalte Beschreibung
Artikelnummer SKU/Variantennummer
Artikelname Bezeichnung inkl. Varianteninformation (z. B. „Shirt – Rot, Größe L")
Einzelpreis Preis pro Einheit in Währung
Menge Bestellmenge mit Einheit (z. B. „5 Stück", „2,5 kg")
Positionssumme Einzelpreis × Menge

5. Lieferadresse

Feld Beschreibung
Ansprechpartner Name der Kontaktperson
Telefon Telefonnummer für Rückfragen
Straße + Hausnummer Vollständige Straßenadresse
PLZ / Ort Postleitzahl und Stadt
Land Lieferland
Lieferhinweise Zusätzliche Anweisungen (z. B. „Hintereingang benutzen")

6. Bestellsumme

Position Beschreibung
Zwischensumme Summe aller Positionsbeträge
Rabatt Abzug (falls Rabatt konfiguriert)
Versandkosten Aufschlag (falls konfiguriert)
Steuer Berechneter Steuerbetrag
Gesamtbetrag Fett hervorgehoben – Endsumme inkl. aller Zu- und Abzüge

7. Bestellzeitlinie

Chronologische Darstellung aller Statusänderungen der Bestellung: - Zeitstempel pro Änderung - Alter und neuer Status - Benutzer, der die Änderung durchgeführt hat (oder „System" bei automatischen Änderungen)

8. Aktions-Buttons

Aktion Beschreibung
📄 PDF-Export Generiert ein druckbares Bestelldokument
📋 Duplizieren Erstellt eine Kopie der Bestellung als neue Bestellung
✏️ Bearbeiten Öffnet den Bestellungs-Editor-Dialog
🗑️ Löschen Bestellung löschen (Bestätigungsdialog erforderlich)
📦 Status ändern Dropdown zum Wechsel des Bestellstatus (gemäß erlaubtem Workflow)
🚚 Als versendet markieren Setzt Status auf „Versendet" + setzt das tatsächliche Lieferdatum

Export-Synchronisierung

Wenn ein Connector für den Bestell-Export konfiguriert ist, durchläuft jede bestätigte Bestellung folgenden Prozess:

Sync-Status Beschreibung
Wartezeit Storno-Frist läuft (Standard: 15 Min.)
Ausstehend In der Export-Queue, bereit zum Senden
Synchronisiert Erfolgreich exportiert, gesperrt
Fehlgeschlagen Export fehlgeschlagen, Wiederholung geplant
Dead Letter Alle Wiederholungsversuche erschöpft, manuelle Intervention nötig
Vor Export storniert Storniert bevor der Export abgeschlossen wurde

Server-seitige Preisvalidierung

Zur Sicherheit werden alle Preise beim Erstellen einer Bestellung serverseitig neu berechnet. Das System verhindert Preismanipulationen vom Client. Sollte eine Abweichung erkannt werden, wird die Bestellung mit Status „Abgelehnt" verworfen.


7. Registrierung & Benutzerverwaltung

Das Registrierungssystem ermöglicht es Kunden, sich für den Online-Shop anzumelden, wobei der Zugang erst nach Freigabe durch einen ERP-Administrator gewährt wird.

Registrierungsprozess

Schritt 1: Kundenregistrierung (Shop-App)

  1. Neuer Benutzer füllt das Registrierungsformular aus:
  2. Kundennummer (Pflichtfeld – wird gegen die Kundenstammdaten validiert)
  3. Vorname
  4. Nachname
  5. Sprache
  6. E-Mail (aus Firebase-Authentifizierung)

  7. Das System erstellt einen Benutzerantrag mit Status „Ausstehend"

  8. Der Benutzer sieht eine Warteseite mit pulsierender Animation

Schritt 2: Freigabe im ERP

Auf der Registrierungsseite sehen Administratoren alle ausstehenden Benutzeranträge:

Aktion Beschreibung
✅ Genehmigen Benutzer erhält Zugang zum Kunden-Bereich des Shops
❌ Ablehnen Zugang wird verweigert
✏️ Bearbeiten Name, Sprache oder Benutzertyp ändern
🗑️ Löschen Antrag vollständig entfernen
📧 Einladung erneut senden Benachrichtigungs-E-Mail erneut versenden

Schritt 3: Automatische Rechte-Synchronisierung

Nach der Genehmigung werden automatisch die JWT-Claims (Zugriffsrechte) des Benutzers aktualisiert: - customerIds: Zugeordnete Kunden-IDs - adminCustomerIds: Kunden, für die der Benutzer Administratorrechte hat

Benutzertypen

Typ Rechte
Benutzer Kann Bestellungen aufgeben und den eigenen Kunden-Bereich einsehen
Administrator Wie Benutzer, kann zusätzlich Benutzer verwalten und Einstellungen ändern

Hinweis: Der erste Benutzer, der sich für einen Kunden registriert, wird automatisch zum Administrator dieses Kunden.

AGB-Zustimmung

  • Das System verfolgt die AGB-Zustimmung pro Benutzer und Version
  • Bei einer neuen AGB-Version müssen Benutzer erneut zustimmen
  • Im ERP ist ersichtlich, welcher Benutzer welche Version akzeptiert hat

Statusübersicht

Status Badge Beschreibung
Ausstehend 🟠 Orange Wartet auf Genehmigung
Genehmigt 🟢 Grün Zugang gewährt
Abgelehnt 🔴 Rot Zugang verweigert

8. Kundenlisten

Kundenlisten ermöglichen die Segmentierung von Kunden in benutzerdefinierte Gruppen. Die Kundenlisten-Seite verwendet ein Zwei-Panel-Layout.

Layout

Linkes Panel: Navigationsleiste

  • Suchfeld: Filtert Listen nach Name (Echtzeit-Suche)
  • „Neu erstellen"-Button: Öffnet den Erstellen-Dialog
  • Vertikale Liste aller Kundenlisten:
  • Listenname (fett)
  • Artikel-Zähler-Badge (Anzahl der Kunden in der Liste)
  • Auswahl-Hervorhebung: Die aktuell ausgewählte Liste wird farblich markiert
  • Klick auf eine Liste aktualisiert das rechte Panel

Rechtes Panel: Detailansicht

Zeigt den Inhalt der aktuell ausgewählten Kundenliste.

Kopfbereich
  • Listentitel (groß)
  • Bearbeiten-Button (Stift-Icon): Öffnet Dialog zur Bearbeitung von Name und Beschreibung
  • Löschen-Button (Papierkorb-Icon): Entfernt die gesamte Liste (Bestätigungsdialog)
Such- und Filterleiste
  • Suchfeld: „Einträge durchsuchen..." – sucht nach Kundenname, Kundennummer oder Kommentar
  • Debounced: 300ms Verzögerung, um die Anzahl der Suchanfragen zu begrenzen
Einträge der Liste

Für jeden Kunden in der Liste werden folgende Informationen angezeigt:

Element Beschreibung
Kundennummer + Name Klickbar – navigiert zur Kundendetailseite
Status-Indikator Checkbox-Status (erledigt/ausstehend)
Kommentarfeld Freitextfeld, inline editierbar mit Auto-Speicherung
Aktions-Buttons Bearbeiten, Entfernen, Zum Kunden navigieren
Felder pro Listeneintrag
Feld Beschreibung
Kunden-ID Referenz auf den Kunden
Kundenname Anzeigename
Kundennummer Referenznummer
Kommentar Benutzernotiz (im ERP inline editierbar)
Erledigt Boolean-Checkbox-Status
Status Position-Status innerhalb der Liste

Aktionen

Aktion Beschreibung
Liste erstellen „+"-Button im linken Panel → Modal-Dialog (Name, Beschreibung)
Liste bearbeiten Stift-Icon im rechten Panel → Modal-Dialog
Liste löschen Papierkorb-Icon → Bestätigungsdialog erforderlich
Kunden hinzufügen Kundenpicker-Dialog zur Auswahl einzelner oder mehrerer Kunden
Kommentar aktualisieren Inline-Bearbeitung – wird automatisch gespeichert
Eintrag entfernen Papierkorb-Icon pro Eintrag
Zum Kunden navigieren Klick auf Kundenname öffnet die Kundendetailseite
Als erledigt markieren Checkbox-Toggle pro Eintrag

Leere Zustände

Zustand Anzeige
Keine Listen vorhanden „Erstellen Sie Ihre erste Kundenliste" + Erstellen-Button
Liste ist leer „Noch keine Einträge in dieser Liste" + Kunden hinzufügen-Button
Keine Suchergebnisse „Keine Einträge gefunden"

Synchronisierung

  • Kundenänderungen werden automatisch in zugehörige Listen übernommen (Trigger: onCustomerUpdatedSyncToLists)
  • Wird ein Kunde gelöscht, werden alle Listeneinträge automatisch bereinigt (Trigger: onCustomerDeleted)

9. Benachrichtigungen

Das Benachrichtigungssystem ermöglicht es, Push-Notifications und In-App-Nachrichten an Kundengruppen zu senden.

Benachrichtigungsübersicht

Die Übersicht zeigt alle erstellten Benachrichtigungen als Kartenliste.

Darstellung pro Benachrichtigungskarte

Jede Karte enthält folgende Elemente:

Kopfbereich: - Icon: Kanalspezifisches Symbol (Glocke für Push, Sprechblase für In-App) - Titel: Benachrichtigungstitel (Pflichtfeld) - Zeitstempel-Badge: Erstellungsdatum

Vorschaubereich: - Nachrichtenvorschau: Erste 100 Zeichen des Nachrichtentexts (mit Auslassungspunkten) - Kanal-Badges: Unterhalb der Nachricht werden aktive Kanäle als farbige Chips angezeigt: - „Push" – wenn Push-Kanal aktiviert - „In-App" – wenn In-App-Kanal aktiviert - „Kein Kanal konfiguriert" – wenn beide deaktiviert sind

Info-Chips: - Sendestatus: „Geplant", „Gesendet" oder „Entwurf" - Status: Aktueller Verarbeitungsstatus - Datums-Badge: Erstellungsdatum

Status-Lebenszyklus

Status Beschreibung Verfügbare Aktionen
Entwurf Nicht gesendet, editierbar Bearbeiten, Planen, Senden, Löschen
Geplant Für zukünftigen Zeitpunkt eingeplant Abbrechen, Löschen
Wird gesendet Zustellung läuft Nur Ansehen (schreibgeschützt)
Gesendet Erfolgreich versendet Löschen
Fehlgeschlagen Zustellung fehlgeschlagen Erneut versuchen, Löschen
Abgebrochen Vom Benutzer abgebrochen Erneut senden, Löschen

Aktionen pro Karte

Aktion Symbol Bedingung Beschreibung
Abbrechen 🟠 (Orange) Nur bei Status „Geplant" Zeigt den geplanten Sendezeitpunkt an, Bestätigung erforderlich
Löschen 🔴 (Rot) Immer verfügbar Unterschiedliche Bestätigungsmeldung je nach Status (geplant vs. gesendet). Bestätigungsdialog erforderlich.

Suche & Filter

  • Textsuche: Nach Titel oder Nachrichteninhalt suchen
  • Kanalfilter: Push, In-App oder beide
  • Statusfilter: Entwurf, Geplant, Gesendet
  • Sortierung: Nach Datum (neueste zuerst)

Leerer Zustand

  • Icon + Hinweismeldung
  • „Erste Benachrichtigung erstellen"-Button als Handlungsaufforderung

Benachrichtigung erstellen (4-Tab-Editor)

Tab 1: Kundenauswahl

Flexible Empfängerauswahl über Filterregeln:

Filter Beschreibung
Kundenkategorien Alle Kunden einer oder mehrerer Kategorien (AND/OR-Verknüpfung)
Artikelkategorien Kunden, die Artikel bestimmter Kategorien bestellt haben
Benachrichtigungsgruppen Vordefinierte Empfängergruppen
Zielgruppenmodus Einschließen oder Ausschließen
Manuelle Auswahl Einzelne Kunden hinzufügen/entfernen
  • Vorschau: Zeigt die Gesamtzahl der Empfänger an, bevor gesendet wird
  • Gespeicherte Filter: Häufig verwendete Filtersets speichern und wiederverwenden
  • Excel-Export: Empfängerliste als Excel exportieren

Tab 2: Sendeoptionen

Option Beschreibung
Sofort senden Benachrichtigung wird unmittelbar versendet
Planen Datum und Uhrzeit für den Versand festlegen
Wiederkehrend Regelmäßiger Versand (z. B. wöchentlich)

Tab 3: Push-Nachricht

  • Titel: Mehrsprachig (je nach konfigurierten Sprachen)
  • Nachrichtentext: Mehrsprachig
  • KI-Übersetzung: Optionale automatische Übersetzung über KI
  • Zeichenzähler: Anzeige der aktuellen Textlänge

Tab 4: In-App-Nachricht

  • Rich-Text-Editor: Formatierungsmöglichkeiten über Quill-Editor
  • Mehrsprachig: Separate Inhalte pro Sprache
  • Bilder & Dokumente: Anhänge mit Ordnerstruktur hochladen
  • Anzeigemodus: Popup, Banner oder andere Darstellungsform

Zustellstatus

Status Beschreibung
Zugestellt Erfolgreich an das Gerät übermittelt
Ausstehend Wird noch verarbeitet
Fehlgeschlagen Zustellung fehlgeschlagen
Gelesen Vom Empfänger geöffnet

SAM KI (Chatbot-Integration)

Das System beinhaltet einen KI-Chatbot-Assistenten namens „SAM KI", der bei der täglichen Arbeit im ERP unterstützt.

Aufruf

SAM KI kann auf zwei Wegen gestartet werden: 1. Navigationsleiste: Klick auf den „SAM KI"-Button in der seitlichen Navigation 2. Overlay-Icon: Ein verschiebbares (drag-and-drop) Overlay-Symbol, das dauerhaft auf dem Bildschirm sichtbar ist

Funktionsweise (NLP-Matching)

SAM KI verwendet ein Knowledge-Graph-basiertes System mit folgenden Verarbeitungsschritten:

  1. Synonymersetzung: Ähnliche Formulierungen werden auf kanonische Begriffe reduziert (z. B. „zeig mir" → „wo finde ich")
  2. Höflichkeitsbereinigung: Höflichkeitsphrasen wie „bitte", „könntest du" werden entfernt
  3. Fragenkonvertierung: Indirekte Formulierungen werden in direkte Fragen umgewandelt (z. B. „ich möchte wissen wie" → „wie")
  4. Fuzzy-String-Matching: Abgleich mit gespeicherten Fragen bei einer Ähnlichkeitsschwelle von 75%
  5. Mehrdeutigkeitsauflösung: Bei Überlappungen werden mehrere Antworten kombiniert

Entitäten (Wissensbereiche)

Entität Themenbereich
customer Kundenverwaltung – Erstellen, Bearbeiten, Löschen, Import
article Artikelverwaltung – Kategorien, Varianten, Preise
order Bestellverwaltung – Erstellung, Statusverfolgung, Export
category Kategorien – Artikel- und Kundenkategorien
stock Lagerverwaltung – Bestand, Nachbestellung, Warnsystem
user Benutzerverwaltung – Registrierung, Rechte, Genehmigung

Beispiel-Fragen

  • „Wie erstelle ich einen neuen Kunden?" → Mehrstufige Anleitung
  • „Wie erstelle ich einen Artikel?" → Mehrstufige Anleitung
  • „Wie funktioniert die Bestellverwaltung?" → Workflow-Erklärung
  • „Wie richte ich die Lagerverwaltung ein?" → Konfigurationsanleitung
  • „Wie lade ich Daten per Excel hoch?" → Import-Anleitung

Besondere Funktionen

  • Schnellvorschläge: Nach der Begrüßung werden vordefinierte, klickbare Vorschläge angezeigt
  • Kontext-Awareness: SAM verfolgt den Gesprächsverlauf und bietet kontextbezogene Nachfragen
  • „Mehr erfahren"-Button: Vertiefende Informationen zu jedem Thema
  • Tipp-Animation: Bot-Antworten werden mit einer Tipp-Animation angezeigt
  • Sprachbewusste Begrüßung: Begrüßung auf Deutsch oder Englisch je nach Systemsprache
  • Easter Egg: Eingabe von „do a barrel roll!" löst eine Bildschirm-Animation aus 🎉

10. Lagerverwaltung

Die Lagerverwaltung ermöglicht die Echtzeitverfolgung von Beständen pro Artikelvariante.

Voraussetzungen

Die Lagerverwaltung muss auf zwei Ebenen aktiviert sein:

  1. Systemweit: In den Lagerverwaltungseinstellungen (Einstellungen > Lagerverwaltung)
  2. Pro Artikel: Im Artikel-Stammdaten-Tab (Feld „Lagerverfolgung" aktivieren)

Bestandsübersicht

Die Lager-Übersichtsseite (erreichbar über die Navigation) zeigt alle Artikel mit aktiver Lagerverfolgung:

  • Suche: Nach Artikelname oder -nummer
  • Filterung nach Status:
  • ⚠️ Warnung: Bestand ≤ Schwellwert des Meldebestands
  • 📉 Unter Soll: Bestand unter dem Soll-Bestand
  • Nicht vorrätig: Bestand = 0
  • Badge-Zähler: In der Navigation zeigt ein Badge die Anzahl kritischer Bestände an

Bestandsfelder pro Variante

Feld Beschreibung
Bestand Aktueller Lagerbestand (wird nie negativ)
Meldebestand Bei Unterschreitung wird eine Warnung ausgelöst
Soll-Bestand Gewünschter Bestandslevel für Nachbestellungen
Anzeigelimit Maximale im Shop angezeigte Menge (für künstliche Knappheit)
Knappheit bis Ablaufdatum der Knappheitsanzeige

Bestandsanpassung

Bestandsänderungen erfolgen über einen Dialog:

  1. Variante auswählen
  2. Neuen absoluten Bestandswert eingeben
  3. Grund für die Änderung angeben
Grund Beschreibung
Bestellung aufgegeben Automatisch bei Auftragsbestätigung
Bestellung storniert Automatisch bei Stornierung
Manuelle Anpassung Handkorrektur durch Administrator
Inventur Physische Bestandsaufnahme
Import Über Datenimport oder Connector
Sonstiges Freie Texteingabe

Alle Änderungen werden transaktionssicher durchgeführt – gleichzeitige Änderungen durch mehrere Benutzer sind vor Race-Conditions geschützt.

Bestandshistorie

Jede Bestandsänderung wird protokolliert:

  • Delta: Signed-Änderung (negativ = Abgang, positiv = Zugang)
  • Bestand danach: Bestandsniveau nach der Änderung
  • Grund: Kategorie der Änderung
  • Referenz: Verknüpfte Bestellung (falls vorhanden)
  • Zeitstempel: Wann die Änderung erfolgte
  • Geändert von: Benutzer oder System-Funktion

Hinweis: Bestandshistorie-Einträge werden nach 14 Monaten automatisch gelöscht (TTL-basiert).

Künstliche Knappheit

Für Marketingzwecke kann die Bestandsanzeige im Shop begrenzt werden:

  • Anzeigelimit setzen (z. B. 10): Im Shop wird „Nur noch 10 verfügbar!" angezeigt, auch wenn tatsächlich 50 Stück vorhanden sind
  • Knappheit bis setzen: Nach dem Ablaufdatum zeigt der Shop wieder den echten Bestand

Nachbestellungs-Modus (Backorder)

Wenn aktiviert: - Kunden können bestellen, auch wenn der Bestand = 0 ist - Im Shop wird ein konfigurierbarer Hinweis angezeigt (z. B. „Artikel wird nachbestellt") - Bestandsanzeige im Shop: min(Anzeigelimit, Bestand) oder der tatsächliche Bestand

Warnsystem

Warnung Auslöser
Kritischer Bestand Bestand ≤ Meldebestand
Prozent-Schwelle Bestand ≤ X% des Meldebestands (Standard: 80%)
Nicht vorrätig Bestand = 0

Warnungen werden als Badge in der Navigation und als visuelle Markierung in der Bestandsübersicht angezeigt.


11. Einstellungen

Die Einstellungen sind in über 20 Unterbereiche gegliedert und steuern sämtliche Aspekte des Systems.

11.1 Allgemeine Einstellungen

Systemweite Grundkonfiguration des ERP-Systems. Hier werden globale Parameter festgelegt, die das Gesamtverhalten der Anwendung beeinflussen.

Validierungsregel: Kundennummer

Eine Regelkarte zur Definition des erlaubten Formats für Kundennummern:

Feld Beschreibung
Aktiv Toggle zum Aktivieren/Deaktivieren der Validierung
Muster (Regex) Regulärer Ausdruck zur Formatprüfung
Prefix Pflicht-Prefix (z. B. „CUST")
Min. Länge Mindestlänge der Kundennummer
Max. Länge Maximale Länge der Kundennummer
Benutzerdefiniert erlauben Ob beim Bearbeiten eine Abweichung vom Muster erlaubt ist

Beispiel-Muster: - ^[A-Z]{2,3}\d{2,5}$ – 2-3 Großbuchstaben gefolgt von 2-5 Ziffern (z. B. „AB12345") - ^[A-Z0-9\-]{3,20}$ – Alphanumerisch + Bindestrich, 3-20 Zeichen

Validierungsregel: Artikelnummer

Identisch aufgebaut wie die Kundennummer-Validierung, aber für Artikelnummern:

Beispiel-Muster: - ^\d{4,8}$ – 4-8 Ziffern (z. B. „123456") - ^[A-Z]{2}\d{4}$ – 2 Buchstaben + 4 Ziffern (z. B. „AB1234")

Regel-Editor-Dialog

Beim Bearbeiten einer Validierungsregel öffnet sich ein Dialog mit: - Aktuelles Muster im Regex-Format angezeigt - Live-Validierungsvorschau: „Gültig" / „Ungültig"-Indikator in Echtzeit - Beispiel-Eingabefeld: Testfeld, um Nummern gegen das Muster zu prüfen - Auto-Synchronisierung: Bei Speicherung wird der Counter-Prefix automatisch aktualisiert - Toast-Benachrichtigung: Erfolgs- oder Fehlermeldung nach dem Speichern

11.2 Benutzerverwaltung

Verwaltung der ERP-Benutzer (Administratoren und Superadmins):

Benutzertyp Beschreibung
Administrator Vollzugriff auf alle ERP-Funktionen
Superadmin Erweiterte Rechte inkl. Systemkonfiguration

11.3 Artikelkategorien

Verwaltung der Artikelkategorien zur Sortimentsstrukturierung:

  • Erstellen: Name (mehrsprachig), Farbe (Hex-Code), Icon
  • Bearbeiten: Alle Felder sind editierbar
  • Sortieren: Reihenfolge der Kategorien per Drag & Drop
  • Löschen: Nur wenn keine Artikel mehr zugeordnet sind
  • Verwendung: Filter in der Artikelübersicht, Artikelzuweisung, Benachrichtigungsfilter

11.4 Artikeldokumenttypen

Definition von Dokumenttypen, die Artikeln zugeordnet werden können:

  • z. B. „Datenblatt", „Bedienungsanleitung", „Sicherheitshinweise"
  • Name und Beschreibung pro Typ
  • Wird beim Artikel-Upload als Kategorisierung verwendet

11.5 Kundenkategorien

Analog zu Artikelkategorien, aber für Kunden:

  • Erstellen: Name (mehrsprachig), Farbe (Hex-Code), Icon
  • Bearbeiten: Alle Felder editierbar
  • Verwendung: Kundenfilter, Artikelzuweisung, Benachrichtigungs-Empfängergruppen

11.6 Kundenlisten-Einstellungen

Detaillierte Konfiguration der Kundenlisten (Besuchslisten, Aufgabenlisten):

Allgemeine Listeneinstellungen

Feld Beschreibung
Listenname Name der Kundenliste (Pflichtfeld)
Beschreibung Optionale Beschreibung des Listenzwecks
Befüllungsmodus Wie Kunden in die Liste aufgenommen werden: Manuell, Automatisch (nach Kategorie) oder Gemischt
Aktualisierungsmodus Ob und wie die Liste periodisch aktualisiert wird

Aktionselemente

Pro Kundenliste können benutzerdefinierte Aktionen definiert werden, die bei jedem Listeneintrag verfügbar sind:

Feld Beschreibung
Aktionsname z. B. „Rückruf", „Besuch geplant", „Angebot gesendet"
Icon Visuelles Symbol für die Aktion
Farbe Farbkodierung der Aktion

Statuselemente

Benutzerdefinierte Status-Stufen pro Listeneintrag:

Feld Beschreibung
Statusname z. B. „Offen", „In Bearbeitung", „Erledigt", „Zurückgestellt"
Farbe Farbkodierung des Status
Reihenfolge Sortierung der Statuswerte (Drag & Drop)

Erstellen und Bearbeiten

Der Kundenlisten-Editor ist als mehrteilige Seite aufgebaut: 1. Allgemein: Name, Beschreibung und Befüllungsmodus 2. Aktionen: Definieren und Sortieren der verfügbaren Aktionen 3. Status: Definieren und Sortieren der Status-Elemente

11.7 Bestelleinstellungen

Konfiguration des Bestellverhaltens:

Einstellung Beschreibung
Standard-Bestellstatus Initialstatus neuer Bestellungen
Storno-Frist Zeitraum, in dem eine Bestellung storniert werden kann (in Minuten)
Mindestbestellwert Globaler Mindestbestellwert
Mindestbestellmenge Globale Mindestbestellmenge
Nummerierung Auto-Inkrement oder manuell
Status-Workflow Welche Statusübergänge erlaubt sind

Bestell-Push-Benachrichtigungsvorlage

Innerhalb der Bestelleinstellungen kann eine Push-Benachrichtigungsvorlage konfiguriert werden, die automatisch bei Statusänderungen an den Kunden gesendet wird:

Feld Beschreibung
Aktiviert Ob automatische Benachrichtigungen bei Statuswechsel gesendet werden
Titel Mehrsprachiger Titel der Benachrichtigung (mit Platzhaltern wie {orderNumber})
Nachricht Mehrsprachiger Nachrichtentext (mit Platzhaltern wie {status}, {customerName})
KI-Übersetzung Automatische Übersetzung in alle aktiven Sprachen (falls aktiviert)

11.8 Bestell-Export-Einstellungen

Konfiguration des Exports von Bestellungen:

Einstellung Beschreibung
Export aktiviert Ob der automatische Bestell-Export aktiv ist
Export-Connector Auswahl des Connectors, über den Bestellungen exportiert werden
PDF-Vorlage Layout und Inhalt des PDF-Exports
Excel-Vorlage Spaltenauswahl und Format
Massenexport Konfiguration für den Batch-Export mehrerer Bestellungen

11.9 Lagerverwaltungseinstellungen

Globale Lagerkonfiguration:

Einstellung Beschreibung
Aktiviert/Deaktiviert Lagerverwaltung ein- oder ausschalten
Nachbestellung erlauben Kunden können bestellen, auch wenn Bestand = 0
Nachbestellungshinweis Mehrsprachiger Hinweistext (DE, EN usw.)
Künstliche Knappheit Ermöglicht Anzeige-Limits im Shop
Bestandswarnung Warnung bei Unterschreitung des Meldebestands
Warnschwelle (%) Prozentsatz des Meldebestands, ab dem gewarnt wird (Standard: 80%)

11.10 Liefertagseinstellungen

Konfiguration der Liefertage und -ausnahmen:

Reguläre Liefertage

  • Auswahl der Wochentage (Mo–So), an denen geliefert wird
  • Standard: Montag bis Freitag

Feiertage

  • Individuelle Daten hinzufügen, an denen nicht geliefert wird
  • Lokalisierte Datumsanzeige

Betriebsferien

  • Zeiträume definieren (Von–Bis-Datum)
  • Optionale Beschreibung (z. B. „Weihnachtsferien")

Ausnahmetage

  • Einzelne Tage als Nicht-Liefertage markieren
  • Optionale Beschreibung

Die Liefertage fließen in die automatische Berechnung des „Berechneten Lieferdatums" bei Bestellungen ein.

11.11 Connector-Einstellungen

Konfiguration von Schnittstellen zu externen Systemen (siehe Kapitel 14: Connectoren).

11.12 Ländereinstellungen

  • Definition der unterstützten Länder
  • Länderspezifische Konfigurationen (Sprache, Währung)
  • Zuordnung zu Kunden und Artikeln

11.13 Spracheinstellungen

  • Aktivierung/Deaktivierung von Sprachen (Deutsch, Englisch und 30+ weitere)
  • Bestimmt, welche Sprachen in Beschreibungen, Benachrichtigungen und UI verfügbar sind

11.14 Job-Einstellungen

Verwaltung automatisierter Aufgaben (siehe Kapitel 12: Jobs).

11.15 Trigger-Einstellungen

Monitoring und Verwaltung automatischer Auslöser (siehe Kapitel 13: Trigger).

11.16 Push-Benachrichtigungseinstellungen

  • Firebase Cloud Messaging (FCM) Konfiguration
  • Standard-Benachrichtigungsvorlagen
  • Benachrichtigungsgruppen definieren

11.17 Mobile-App-Theme

Anpassung des Erscheinungsbilds der Mobile-App:

Kategorie Einstellungen
Primärfarbe Hauptfarbe der App
Hintergrundfarbe Scaffold- und Inhalts-Hintergrund
Schriftfarbe Standard-Textfarbe
Navigation Hintergrund, ausgewählte/nicht ausgewählte Icon-Farben
Kategorieleiste Ausgewählt/nicht ausgewählt Hintergrund und Schriftfarbe
Buttons Hintergrund- und Schriftfarbe
Badges Hintergrund- und Textfarbe
Artikelbilder Hintergrundfarbe für Bildplatzhalter
App-Logo Header-Logo und Login-Logo hochladen
Schriftart Schriftfamilie auswählen (z. B. „Inter")

Workflow: Änderungen werden als Entwurf gespeichert → Veröffentlichen übernimmt die Änderungen für alle App-Nutzer. „Zurücksetzen" stellt die Standardwerte wieder her.

11.18 Web-App-Theme

Anpassung des Erscheinungsbilds der Web-Shop-Oberfläche:

Kategorie Einstellungen
Primärfarbe Hauptfarbe des Web-Shops
Badges Hintergrund- und Textfarbe
Obere Leiste Schriftfarbe, Navigationsfarben, aktive Indikatoren, Hover-Effekte
Kategorieleiste Aktiv/inaktiv Hintergrund, Schrift, Hover
Inhaltsbereich Hintergrundfarbe
Artikelbilder Hintergrundfarbe
Buttons Hintergrund- und Schriftfarbe
Logos Login-Header, App-Header, Leerer-Warenkorb-Platzhalter
Schriftart Schriftfamilie auswählen

11.19 Rechtliche Informationen

Verwaltung der rechtlichen Seiten des Shops:

Impressum

  • Mehrsprachiger Rich-Text-Editor (Quill)
  • Vorschaufunktion

Allgemeine Geschäftsbedingungen (AGB)

  • Mehrsprachiger Rich-Text-Editor
  • Automatische Versionierung: Jede Änderung erhöht die Versionsnummer
  • Benutzer werden bei neuer Version zur erneuten Zustimmung aufgefordert
  • Vorschau mit Versionsanzeige

Datenschutzerklärung

  • Mehrsprachiger Rich-Text-Editor
  • Vorschaufunktion

Hinweis: Wenn kein Inhalt in der Sprache des Benutzers vorhanden ist, wird automatisch die deutsche Version angezeigt (Fallback).

11.20 Datenimport

Der Datenimport ermöglicht das Massenimportieren von Daten aus Excel-Dateien.

Import-Assistent (4 Schritte)

Schritt 1: Datei hochladen - Drag & Drop oder Dateiauswahl - Format: XLSX (Excel) - Automatische Erkennung des Datentyps - Download einer Vorlage möglich

Schritt 2: Feldzuordnung - Automatische Zuordnung von Spalten zu Systemfeldern (~80% Trefferquote) - Manuelle Nachkorrektur möglich - Automatische Auflösung von Fremdschlüsseln (z. B. Kategorie-Bezeichner → Kategorie-ID)

Schritt 3: Validierung & Vorschau - Überprüfung aller Daten gegen das Schema - Fehler- und Warnungsbericht mit Zeilennummern - Zusammenfassung: Gültige / Warnungen / Fehler

Schritt 4: Ausführung - Batch-Import für Stabilität - Fortschrittsanzeige - Ergebnisbericht (Erfolge / Fehler)

Importierbare Datentypen

Typ Wichtige Felder
Artikelkategorien Bezeichner, Name (DE/EN), Farbe, Icon
Kundenkategorien Bezeichner, Name (DE/EN), Farbe, Icon
Artikel Nummer, Name, Beschreibung, Verfügbarkeit, Shop-Anzeige, Kategorien (Semikolon-getrennt), Bildbei-URLs, Banner-Daten
Kunden Firmenname, Kundennummer, Kategorie, Sprache, Land, Adresse, Kontaktdaten, Mindestbestellmenge, Benachrichtigungsgruppen

Import-Modi

Modus Beschreibung
Nur erstellen Nur neue Datensätze werden importiert, bestehende bleiben unverändert
Aktualisieren & erstellen Bestehende Datensätze werden aktualisiert, neue werden angelegt
Alles ersetzen Alle vorhandenen Datensätze werden gelöscht und durch den Import ersetzt

11.21 Datenexport

Export von Daten im XLSX- oder CSV-Format:

  • Artikel: Alle Artikeldaten inkl. Varianten und Kategorien
  • Artikelkategorien: Alle Kategorie-Metadaten
  • Kunden: Alle Kundendaten inkl. zugeordneter Kategorien
  • Kundenkategorien: Alle Kategorie-Metadaten

Funktionen: - Spaltenauswahl vor dem Export - Round-Trip-Kompatibilität: Exportierte Dateien können direkt wieder importiert werden - Mehrsprachige Felder im Format de:Text;en:Text

11.22 Wartung

Systemwartung und -optimierung für die administrative Pflege des ERP-Systems. Die Wartungsseite ist ausschließlich für Super-Admins zugänglich – reguläre Administratoren sehen die Seite im Nur-Lese-Modus.

Wartungsaufgaben-Felder

Jede Wartungsaufgabe hat folgende Eigenschaften:

Feld Beschreibung
Titel Name der Wartungsaufgabe (Pflichtfeld)
Beschreibung Detailbeschreibung der Aufgabe
Kategorie Einordnung in eine der 6 Kategorien (siehe unten)
Fälligkeitsdatum Wann die Aufgabe erledigt/erneuert werden muss
Letztes Erneuerungsdatum Wann die Aufgabe zuletzt durchgeführt wurde
Kritikalität Dringlichkeitsstufe (siehe unten)
Zugewiesen an Verantwortlicher Benutzer
Status Ausstehend, In Bearbeitung, Abgeschlossen
Priorität Niedrig, Mittel, Hoch, Kritisch

Aufgaben-Kategorien

Aufgaben werden nach Kategorie gruppiert und in aufklappbaren Sektionen angezeigt:

Kategorie Beschreibung Beispiele
Zertifikate SSL-Zertifikate, API-Schlüssel SSL erneuern, FCM-Zertifikat prüfen
Schlüssel Verschlüsselungsschlüssel, Tokens API-Keys rotieren, OAuth-Secrets erneuern
Versionen Software- und Bibliotheksversionen Flutter-Version prüfen, Node.js-Update
Abhängigkeiten Drittanbieter-Pakete npm audit, pub outdated prüfen
Backups Datenbank- und Datei-Backups Firestore-Export, Storage-Backup
Patches Sicherheits- und System-Patches Sicherheitsupdate einspielen

Kritikalitätsstufen

Stufe Farbe Beschreibung
Niedrig Grau Kann warten, nur informativ
Mittel Gelb Sollte zeitnah erledigt werden
Hoch Orange Dringend, beeinträchtigt den Betrieb
Kritisch Rot Sofortige Maßnahme erforderlich

Visuelle Indikatoren

  • Aufgaben sind farbkodiert nach Kritikalität
  • Überfällig (Fälligkeitsdatum überschritten) = Roter Hintergrund
  • Bald fällig = Oranger Hintergrund
  • Gruppenansicht nach Kategorie mit aufklappbaren Sektionen

Verfügbare Aktionen

Aktion Berechtigung Beschreibung
Aufgabe hinzufügen Super-Admin Öffnet den Editor-Dialog für eine neue Aufgabe
Aufgabe bearbeiten Super-Admin Stift-Icon pro Aufgabe – Editor-Dialog öffnet sich
Als erneuert markieren Super-Admin Setzt das „Letztes Erneuerungsdatum" auf heute
Aufgabe löschen Super-Admin Entfernt die Aufgabe (Bestätigungsdialog)
Standardaufgaben laden Super-Admin Befüllt die Liste mit vordefinierten Template-Aufgaben

12. Jobs (Automatisierte Aufgaben)

Jobs sind geplante, automatisch ausgeführte Aufgaben, die das System im Hintergrund erledigt.

Job-Verwaltung

Über Einstellungen > Job-Einstellungen können Jobs konfiguriert werden. Ein Assistent (Wizard) führt durch die Einrichtung.

Verfügbare System-Jobs

12.1 DSGVO: Inaktive Kunden löschen

  • Kennung: dsgvoDeleteCustomers
  • Zweck: Automatische Löschung von Kunden, die seit X Tagen keine Bestellung aufgegeben haben
  • Parameter: Tage ohne Bestellung (Standard: 365, Bereich: 1–3.650)
  • Verhalten: Prüft letztes Bestelldatum und Erstelldatum – löscht bis zu 500 Datensätze pro Durchlauf

12.2 DSGVO: Inaktive Benutzer löschen

  • Kennung: dsgvoDeleteUsers
  • Zweck: Automatische Löschung von Benutzern, die sich seit X Tagen nicht angemeldet haben
  • Parameter: Tage ohne Login (Standard: 365, Bereich: 1–3.650)

12.3 DSGVO: Alte Bestellungen löschen

  • Kennung: dsgvoDeleteOrders
  • Zweck: Löschung von Bestellungen, die älter als X Tage sind
  • Parameter: Alter in Tagen (Standard: 1.095 = 3 Jahre, Bereich: 365–3.650)

12.4 DSGVO: Alte Benachrichtigungen löschen

  • Kennung: dsgvoDeleteNotifications
  • Zweck: Löschung von Push-Benachrichtigungen, die älter als X Tage sind
  • Parameter: Alter in Tagen (Standard: 90, Bereich: 1–365)

12.5 DSGVO: Ungenutzte Artikel löschen

  • Kennung: dsgvoDeleteArticles
  • Zweck: Löschung von Artikeln, die seit X Tagen nicht bestellt wurden
  • Parameter: Tage ohne Bestellung (Standard: 365)

12.6 Dokumenten-Gültigkeit prüfen

  • Kennung: documentValidityCheck
  • Zweck: Automatisches Aktivieren/Deaktivieren von Dokumenten basierend auf Gültigkeitsdatum
  • Verhalten: Prüft Gültig ab und Gültig bis – aktiviert oder deaktiviert Dokumente und Banner entsprechend

12.7 Job-Logs bereinigen

  • Kennung: cleanupJobLogs
  • Zweck: Aufbewahrung von Job-Ausführungsprotokollen für X Tage
  • Parameter: Aufbewahrungstage (Standard: 30)

12.8 Benutzerdefinierter Job

  • Kennung: custom
  • Zweck: Individuelle, kundenspezifische Automatisierung
  • Handler: Wird als Cloud Function job_<ID>.js implementiert
  • Parameter: Frei definierbares Schema

Hintergrund-System-Jobs (automatisch)

Neben den konfigurierbaren Jobs gibt es System-Jobs, die automatisch im Hintergrund laufen:

Bestellerinnerungen

  • Kennung: orderReminderNotifications
  • Zweck: Erinnert Kunden an bevorstehende Liefertage, für die noch keine Bestellung eingegangen ist
  • Verhalten: Das System berechnet den nächsten Liefertag jedes Kunden und prüft, ob eine aktive Bestellung vorliegt
  • Vorausschau-Logik: Wenn der Kunde bereits für den nächsten Liefertag bestellt hat, prüft das System zusätzlich, ob darauffolgende Liefertage ggf. übersprungen werden (z. B. durch Feiertage oder Lieferpausen). Falls ja, wird eine Warnung als Feed-Eintrag erstellt, damit der Kunde rechtzeitig vorbestellen kann.
  • Erinnerungs-Typ: order_reminder als Feed-Eintrag mit Push-Benachrichtigung
  • Timing: Parametrisiert über leadDays (Vorlaufzeit in Tagen, Standard: 1)

Statistiken berechnen

  • Kennung: calculateStatistics
  • Zweck: Vorberechnung der Dashboard- und Kundenstatistiken
  • Verhalten: Berechnet Umsatz, Top-Artikel, Top-Kunden und Top-Länder für alle Zeiträume
  • Optimierung: Inkrementelle Berechnung – nur Kunden mit neuen Bestellungen werden neu berechnet

Benachrichtigungen erstellen

  • Kennung: createNotificationEntries
  • Zweck: Erstellt die einzelnen Feed- und Zustelleinträge für geplante Benachrichtigungen
  • Verhalten: Löst geplante Benachrichtigungen zum konfigurierten Zeitpunkt aus und erstellt individuelle Einträge pro Empfänger

Push-Benachrichtigungen senden

  • Kennung: sendPushNotification
  • Zweck: Tatsächlicher Versand der Push-Benachrichtigungen über Firebase Cloud Messaging (FCM)
  • Verhalten: Verarbeitet die Warteschlange der zu sendenden Nachrichten und aktualisiert den Zustellstatus

Bestell-Export-Wiederholung

  • Kennung: orderExportRetry
  • Zweck: Wiederholt fehlgeschlagene Bestell-Exports mit exponentiellem Backoff
  • Verhalten: Prüft die Export-Queue auf fehlgeschlagene Einträge und versucht den Export erneut

Zeitplan-Konfiguration

Jeder Job kann mit einem der folgenden Zeitpläne versehen werden:

Typ Konfiguration Beispiel
Minütlich Intervall in Minuten Alle 15 Minuten
Stündlich Intervall ++ Minute der Stunde Jede Stunde um :30
Täglich Zeitzone + Uhrzeit Täglich um 02:00 (Europe/Berlin)
Wöchentlich Zeitzone + Wochentage + Uhrzeit Mo, Mi, Fr um 06:00
Monatlich Zeitzone + Tag des Monats + Uhrzeit Am 1. jeden Monats um 00:00
Benutzerdefiniert (Cron) Cron-Ausdruck + Zeitzone 0 2 * * * (täglich 02:00)

Ausführungshistorie

Jeder Job-Lauf wird protokolliert:

Feld Beschreibung
Status Erfolgreich, Laufend, Fehler
Dauer Ausführungszeit
Bearbeitete Datensätze Anzahl der betroffenen Einträge
Fehlermeldung Details bei Fehlern
Zeitstempel Ausführungszeitpunkt

13. Trigger (Automatisierungen)

Trigger sind automatische Auslöser, die bei bestimmten Datenbankereignissen (Erstellen, Aktualisieren, Löschen) ausgeführt werden. Sie sind systemseitig definiert und können nicht vom Benutzer erstellt werden – lediglich die Ausführung wird überwacht.

Trigger-Überwachung

Über Einstellungen > Trigger-Einstellungen können alle Trigger eingesehen werden:

  • Status anzeigen: Letzte Ausführung und Ergebnis
  • Historie anzeigen: Klick auf „Historie anzeigen" zeigt die letzten Ausführungen
  • Details prüfen: Ausführungszeit, Fehlermeldungen, Metadaten

Alle Trigger im Überblick (19 Trigger)

Kunden-Trigger

Trigger Ereignis Beschreibung
onCustomerCreated Erstellt Automatische Zuweisung neuer Kunden zu Artikeln basierend auf Kategorie
onCustomerUpdated Aktualisiert Aktualisierung der Artikelzuweisungen bei Kundenänderungen
onCustomerUpdatedSyncToLists Aktualisiert Synchronisierung von Kundendaten in Besuchslisten
onCustomerDeleted Gelöscht Bereinigung aller verknüpften Daten (Benutzer, Listen, Benachrichtigungen)

Artikel-Trigger

Trigger Ereignis Beschreibung
onArticleCreated Erstellt Automatische Zuweisung neuer Artikel an relevante Kunden
onArticleUpdated Aktualisiert Aktualisierung der Kundenzuweisungen bei Artikeländerungen
onArticleDeleted Gelöscht Entfernung des Artikels aus allen Kundenzuweisungen
onOrderWrittenUpdateArticleDeletionFlags Schreiben Setzt canDelete-Flag basierend auf aktiven Bestellreferenzen

Bestellungen-Trigger

Trigger Ereignis Beschreibung
onOrderCreatedQueueExport Erstellt Reiht neue Bestellung in die Export-Queue ein (mit Storno-Wartefrist)
onOrderCancelledRemoveFromExportQueue Schreiben Entfernt stornierte Bestellungen aus der Export-Queue
onOrderWrittenReduceStock Schreiben (→ Status 1) Reduziert Lagerbestand bei Auftragsbestätigung
onOrderWrittenRestoreStock Schreiben (→ Status 5) Stellt Lagerbestand bei Stornierung wieder her

Authentifizierung-Trigger

Trigger Ereignis Beschreibung
onShopUserPermissionChanged Schreiben Aktualisiert JWT-Claims bei Berechtigungsänderungen
onErpUserDocumentCreated Erstellt Setzt appType-Claim für neue ERP-Benutzer

Such-Index-Trigger (N-Gram)

Trigger Ereignis Beschreibung
onArticleCreatedBuildNgrams Erstellt Baut Suchindex für neuen Artikel
onArticleUpdatedBuildNgrams Aktualisiert Aktualisiert Suchindex bei Artikeländerung
onCustomerCreatedBuildNgrams Erstellt Baut Suchindex für neuen Kunden
onCustomerUpdatedBuildNgrams Aktualisiert Aktualisiert Suchindex bei Kundenänderung
onOrderCreatedBuildNgrams Erstellt Baut Suchindex für neue Bestellung
onOrderUpdatedBuildNgrams Aktualisiert Aktualisiert Suchindex bei Bestellungsänderung

Trigger-Protokolleintrag

Jede Ausführung wird mit folgenden Details protokolliert:

Feld Beschreibung
Trigger-ID Interner Bezeichner
Ereignis create, update, delete, write
Sammlung Firestore-Collection (z. B. customers)
Dokument-ID Betroffenes Dokument
Status Erfolgreich oder Fehlgeschlagen
Dauer (ms) Ausführungszeit in Millisekunden
Fehler Fehlermeldung bei Misserfolg
Metadaten Zusätzliche Details (z. B. Anzahl bereinigter Datensätze)

14. Connectoren (Externe Systeme)

Connectoren ermöglichen die bidirektionale Integration mit externen Systemen für Datenimport und -export.

Verfügbare Connector-Typen

14.1 Microsoft Business Central

  • Import: Kunden, Artikel, Bestellungen
  • Export: Bestellungen
  • Authentifizierung: OAuth2 (Azure Active Directory)
  • Konfiguration:
  • Tenant-ID (GUID)
  • Application-ID (Client-ID)
  • Application-Secret (Client-Secret)
  • Zielumgebung (z. B. „Production")
  • Unternehmens-ID (Company GUID)

14.2 Shopify

  • Import: Produkte, Bestellungen
  • Export: Bestellungen
  • Authentifizierung: API-Schlüssel / Bearer Token
  • Konfiguration:
  • Shopify-Shop-Name (z. B. „meinshop.myshopify.com")
  • API Access Token

14.3 WooCommerce

  • Import: Produkte, Bestellungen
  • Export: Bestellungen
  • Authentifizierung: Basic Auth oder API-Schlüssel
  • Konfiguration:
  • WooCommerce Store-URL
  • Consumer Key
  • Consumer Secret

14.4 REST API (Generisch)

  • Import: Benutzerdefiniert über Endpunkte
  • Export: Benutzerdefiniert über Endpunkte
  • Authentifizierung: OAuth2, API-Schlüssel, Bearer Token oder Basic Auth
  • Konfiguration: Individuell definierte Endpunkte pro Ressource

14.5 FTP/Excel-Import

  • Import: CSV/Excel-Dateien über FTP/SFTP
  • Export: Nicht unterstützt
  • Konfiguration:
  • FTP/SFTP-Server (Host, Port)
  • Benutzername und Passwort
  • Remote-Pfad zu den Dateien

14.6 Datenbank

  • Import: Direkte Datenbankabfragen
  • Unterstützte Datenbanken: MySQL, PostgreSQL, MSSQL
  • Konfiguration:
  • Datenbank-Host und Port
  • Benutzername und Passwort
  • Datenbankname
  • SQL-Abfrage

Connector-Konfiguration

Jeder Connector wird über einen Assistenten (Wizard) eingerichtet:

  1. Typ auswählen: Connector-Typ aus der Liste wählen
  2. Zugangsdaten: Authentifizierungsinformationen eingeben
  3. Import/Export konfigurieren: Aktivieren welche Daten importiert/exportiert werden
  4. Zeitplan festlegen: Synchronisierungsintervall einstellen
  5. Feldzuordnung: Mapping zwischen externem und EasySale-Datenmodell

Synchronisierungsmodi

Modus Beschreibung
Inkrementell Nur geänderte Datensätze werden synchronisiert
Nur erstellen Nur neue Datensätze importieren
Aktualisieren & erstellen Bestehende aktualisieren, neue anlegen
Komplett ersetzen Alle Daten löschen und neu importieren

Bestell-Export-Ablauf

Wenn der Bestell-Export über einen Connector aktiviert ist:

  1. Bestellung erstellt → Trigger onOrderCreatedQueueExport wird ausgelöst
  2. Export-Queue → Bestellung wird mit Zeitstempel in die Queue eingereiht
  3. Storno-Wartezeit → System wartet die konfigurierte Storno-Frist ab (Standard: 15 Min.)
  4. Fälligkeitsprüfung → Wenn das Lieferdatum näher ist, wird früher exportiert
  5. Cloud Task → Geplanter Task wird zum Ausführungszeitpunkt gestartet
  6. Export → Connector-spezifische Export-Funktion überträgt die Bestellung
  7. Sync-Status → Bestellstatus wird aktualisiert (inkl. externe ID und Fehlerinformationen)

Bei Fehlern wird automatisch mit exponentiellem Backoff wiederholt. Nach Erschöpfung aller Versuche wird die Bestellung in den „Dead Letter"-Status versetzt.


15. Tutorial-System

Das ERP-System beinhaltet ein interaktives Tutorial, das neue Benutzer Schritt für Schritt durch alle Funktionen führt.

Funktionsweise

  • Automatischer Start: Das Tutorial startet automatisch beim ersten Login
  • Lottie-Animationen: Ein animierter Helfer begleitet durch die Schritte
  • Interaktiv: Manche Schritte warten auf eine Benutzerinteraktion (Klick auf markiertes Element)
  • Feature-gesteuert: Schritte werden nur angezeigt, wenn das entsprechende Feature aktiv ist

Tutorial-Bereiche (24+ Schritte)

Bereich Beschreibung
Navigation Erklärung des Logos, Dashboards und aller Menüpunkte (Kunden, Artikel, Bestellungen, Registrierung, Kundenlisten, Benachrichtigungen, SAM KI, Einstellungen)
Dashboard Überblick über KPIs und Statistiken
Kunden Suche, Kategoriefilter, Listeninteraktion
Artikel Suche, Kategoriefilter, Listeninteraktion
Bestellungen Suche, Listenfunktionen, Massenexport (PDF/Excel)
Registrierung Benutzerfreigabe-Workflow
Kundenlisten Listenverwaltung und Kundenzuordnung
Benachrichtigungen Erstellen und Versenden von Push-Nachrichten
SAM KI Einführung in den KI-Assistenten
Einstellungen Benutzerverwaltung, Theme-Anpassung, Integrationen

Zieltypen

Typ Beschreibung
navbar Navigationsleisten-Buttons werden hervorgehoben
page Ganze Seiten werden erklärt
header Kopfbereich-Elemente (Suche, Filter)
listView Listen-Interaktionen werden demonstriert
settings Einstellungsdialog-Elemente
custom Benutzerdefinierte Positionierung

15.1 N-Gram-Suchindex

EasySale verwendet ein N-Gram-basiertes Suchsystem für die Volltextsuche in Kunden, Artikeln und Bestellungen:

  • Automatische Indexierung: Bei jedem Erstellen oder Aktualisieren eines Datensatzes werden N-Gramme generiert (Trigger: onArticleCreatedBuildNgrams, onCustomerCreatedBuildNgrams, onOrderCreatedBuildNgrams)
  • Partielle Suche: Ermöglicht Suche nach Wortteilen (z. B. „Schokolade" findet auch bei Eingabe von „Schoko")
  • Mehrsprachig: Indiziert alle sprachlichen Varianten eines Datensatzes
  • Firestore-optimiert: N-Gramme werden als Array-Feld gespeichert und über array-contains-Abfragen durchsucht – deutlich schneller als Client-seitige Filterung

15.2 Plugin-System (Erweiterbarkeit)

EasySale unterstützt ein Plugin-System, das es ermöglicht, mandantenspezifische Erweiterungen ins System einzubinden, ohne den Kerncode zu ändern.

ERP-Plugins

Plugin-Typ Position Beschreibung
Navigationsleisten-Plugin Nach Dashboard / Nach Kunden / Nach Artikeln / Nach Bestellungen / Am Ende Fügt eigene Seiten in die ERP-Navigation ein
Einstellungs-Plugin In den Einstellungen Eigene Konfigurationsseiten im Einstellungsbereich
Tab-Plugin Kunden- oder Artikel-Detailseite Benutzerdefinierte Tabs in der Detail-Ansicht
Artikel-Erstellungs-Plugin Im Artikel-Erstellen-Dialog Zusätzliche Schritte beim Anlegen neuer Artikel

Shop-Plugins

Plugin-Typ Beschreibung
Bottom-Nav-Bar (Mobile) Zusätzliche Tabs in der mobilen Navigation
Top-Bar (Web) Zusätzliche Elemente in der Web-Navigationsleiste
Artikel-Seiten-Plugin Erweiterungen auf der Artikelübersichtsseite
Artikeldetail-Plugin Zusatzinhalte auf der Artikeldetailseite
Warenkorb-Plugin Erweiterungen im Warenkorb
Profil-Plugin Zusätzliche Sektionen auf der Profilseite
Feed-Plugin Benutzerdefinierte Feed-Eintragstypen

Tab-Registry

Kunden- und Artikel-Tabs werden über eine Tab-Registry verwaltet: - Mandanten können über die ClientConfig Tabs umbenennen, umsortieren, ausblenden oder eigene benutzerdefinierte Tabs hinzufügen - Pro Tab sind konfigurierbar: Name, Icon, Sichtbarkeit, Position


16. Sicherheit & Datenschutz

EasySale ERP implementiert umfangreiche Sicherheitsmaßnahmen zum Schutz der Daten.

Authentifizierung & Autorisierung

Maßnahme Beschreibung
Firebase Authentication Sichere Anmeldung mit E-Mail/Passwort
JWT-Claims Rollenbasierte Zugriffskontrolle über Custom Claims (appType, customerIds, adminCustomerIds)
Session-Management Sichere Session-Verwaltung mit Token-Rotation
Rate Limiting Schutz vor Brute-Force-Angriffen

Datensicherheit

Maßnahme Beschreibung
SSL Certificate Pinning Schutz vor Man-in-the-Middle-Angriffen
Verschlüsselter Speicher Sensible Daten werden verschlüsselt gespeichert
Server-seitige Preisvalidierung Verhinderung von Preismanipulationen (CWE-602)
Firestore Security Rules Datenbankregeln erzwingen Zugriffsrechte

Gerätesicherheit

Maßnahme Beschreibung
Jailbreak-/Root-Erkennung Warnung bei kompromittierten Geräten
Kompromittierte Geräte Eingeschränkter Zugang bei Sicherheitsrisiko
Sicheres Logging Produktionsumgebung loggt keine sensiblen Daten

DSGVO-Konformität

Die automatisierten Jobs (Kapitel 12) unterstützen die DSGVO-Compliance:

  • Inaktive Kunden löschen: Kunden ohne Bestellungen nach konfigurierbarer Frist
  • Inaktive Benutzer löschen: Benutzer ohne Login nach konfigurierbarer Frist
  • Alte Bestellungen löschen: Bestellungen nach Ablauf der Aufbewahrungsfrist
  • Alte Benachrichtigungen löschen: Benachrichtigungen nach konfigurierbarer Frist
  • Ungenutzte Artikel löschen: Artikel ohne Bestellungen nach konfigurierbarer Frist
  • AGB-Versionierung: Nachvollziehbare Zustimmungshistorie pro Benutzer

Sicherheitsprotokollierung

  • Alle administrativen Aktionen werden protokolliert
  • Trigger-Ausführungen werden mit Zeitstempel und Status gespeichert
  • Job-Ausführungshistorie mit Fehlerdetails

---

Teil II – Shop-System Mobile-App

Die EasySale Mobile-App ist eine native Flutter-Anwendung für iOS und Android, die es Endkunden ermöglicht, Artikel zu durchsuchen, Bestellungen aufzugeben und ihren Kunden-Bereich zu verwalten.


17. Übersicht Mobile-App

Die Mobile-App verwendet eine Bottom-Navigation-Bar mit folgenden Hauptbereichen:

Position Bereich Icon Beschreibung
1 Übersicht 🏠 Artikelsuche und Sortiment-Browsing
2 Warenkorb 🛒 Aktueller Warenkorb mit Badge (Artikelanzahl)
3 Bestellungen 📋 Bestellhistorie und -details
4 Bestelllisten 📝 Gespeicherte Einkaufslisten (nur für Administratoren)
5 Feed 🔔 Benachrichtigungen und Systemmeldungen mit Badge (ungelesene Anzahl)
6 Profil 👤 Einstellungen, Adressen, Account
7 Benutzer 👥 Benutzerverwaltung (nur für Administratoren sichtbar)

Besonderheiten der Navigation

  • Badges: Warenkorb und Feed zeigen Zähler-Badges an
  • Plugin-System: Die Navigation unterstützt Plugins, die an verschiedenen Positionen eingefügt werden können (nach Startseite, nach Warenkorb, nach Bestellungen, nach Feed, am Ende)
  • Seitenerhaltung: Beim Tab-Wechsel bleiben Scroll-Position, geladene Bilder und Zustand erhalten (IndexedStack)
  • Rollenbasiert: Die Tabs „Bestelllisten" und „Benutzer" sind nur für Shop-Administratoren sichtbar

Allgemeine UI-Konzepte

Konzept Beschreibung
Collapsing Header Die meisten Seiten haben einen einklappbaren Kopfbereich (218–270px), der beim Scrollen zusammenfällt und die Suchleiste fixiert
Pull-to-Refresh Inhalte können durch Herunterziehen aktualisiert werden
Bouncing Scroll iOS-typisches Scroll-Verhalten mit Federbewegung
Touch-Optimiert Große Tipp-Bereiche, Ripple-Effekte bei Berührung
Safe Area Respektiert Notches, Home-Indikatoren und Displayaussparungen

18. Anmeldung & Registrierung (Mobile)

Anmeldeseite

Die Anmeldeseite zeigt das konfigurierte App-Logo und folgende Elemente:

Element Beschreibung
Logo/Branding Aus dem Mobile-App-Theme geladen (oder Standard-Logo)
Titel „Anmelden"
E-Mail-Feld E-Mail-Eingabe mit Validierung und Mail-Icon
Passwort-Feld Verdeckte Eingabe mit Sichtbarkeits-Toggle (Augen-Icon)
„Passwort vergessen"-Link Rechtsbündig, öffnet die Passwort-Zurücksetzen-Seite
Anmelden-Button Primäre Aktion mit Ladezustand während der Authentifizierung
Registrieren-Link „Noch kein Konto? Hier registrieren" – navigiert zur Registrierungsseite

Registrierungsseite

Neue Benutzer füllen folgende Felder aus:

Feld Beschreibung Pflicht
Vorname Vorname des Benutzers
Nachname Nachname des Benutzers
E-Mail E-Mail-Adresse (wird als Login verwendet)
Passwort Passwort mit Stärke-Indikator und Sichtbarkeits-Toggle
Passwort bestätigen Muss mit dem Passwort übereinstimmen
Sprache Dropdown-Auswahl der bevorzugten Sprache (Standard: Deutsch)

Nach der Registrierung wird ein Firebase-Benutzerkonto erstellt.

Kundennummer-Zuordnung

Nach erfolgreicher Registrierung muss der Benutzer seine Kundennummer eingeben:

  1. Kundennummer-Eingabeseite wird angezeigt
  2. Benutzer gibt die Kundennummer ein (wird gegen die Kundenstammdaten im ERP validiert)
  3. Bei gültiger Nummer: Zugangsanfrage wird erstellt mit Status „Ausstehend"
  4. Bei ungültiger Nummer: Fehlermeldung wird angezeigt

Warteseite (Genehmigung ausstehend)

Nach dem Absenden der Zugangsanfrage sieht der Benutzer eine Warteseite:

  • Hinweistext: „Warten auf Genehmigung durch den Shop-Administrator"
  • Pulsierende Animation: Visuelles Feedback, dass die Anfrage bearbeitet wird
  • Echtzeit-Status-Listener: Die Seite lauscht auf Statusänderungen in Firebase
  • Automatische Weiterleitung: Sobald die Anfrage genehmigt wird, wird die App automatisch neu geladen und der Benutzer erhält Zugang

Passwort zurücksetzen

Element Beschreibung
Titel „Passwort zurücksetzen"
Beschreibung Erklärt den Ablauf
E-Mail-Feld E-Mail-Eingabe mit Validierung
Link-senden-Button Löst den Passwort-Reset über Firebase aus
Bestätigungsmeldung Snackbar: „Prüfen Sie Ihre E-Mails"
Zurück-Link Zurück zur Anmeldeseite

19. Artikelsuche & Sortiment (Mobile)

Seitenaufbau

Die Artikelseite ist die Startseite der App und besteht aus:

  1. Einklappbarer Header (218–270px Höhe)
  2. Logo-Bereich (44px, falls konfiguriert)
  3. Suchleiste (wird beim Scrollen fixiert)
  4. Kategorie-Leiste (horizontale Scroll-Liste)
  5. Liefertage-Anzeige (falls aktiviert)
  6. Artikel-Gitter (Hauptinhalt)

Suche

  • Echtzeit-Suche: Eingabe wird mit Debounce verarbeitet (max. 100 Zeichen)
  • Suchfelder: Titel und Beschreibung der Artikel
  • N-Gram-Matching: Serverseitige Suche über den N-Gram-Suchindex
  • Ergebnisse: Werden sofort in der Artikelliste aktualisiert

Kategoriefilter

  • Horizontale, scrollbare Kategorieliste unterhalb der Suchleiste
  • Tippen auf eine Kategorie filtert die Artikel
  • Farbige Kategorie-Chips (Farbe aus ERP-Einstellungen)
  • Automatisches Scrollen zum Seitenanfang bei Kategorie-Wechsel
  • „Alle"-Option zum Zurücksetzen des Filters

Artikel-Gitter

Artikel werden als Karten im Gitterformat angezeigt (1–2 Spalten):

Element Beschreibung
Artikelbild Vorschaubild oder Platzhalter
Artikelname Hauptbezeichnung
Kategorie-Chip Farbiger Chip mit Kategoriename
Variantenanzahl Badge mit Anzahl verfügbarer Varianten
Knappheits-Badge Wird angezeigt, wenn „Künstliche Knappheit" für den Artikel aktiviert ist (z. B. „Nur noch 5 verfügbar!")
Preis Standardpreis (wird nur angezeigt, wenn die Preisanzeige für diesen Kunden aktiviert ist)

Klick auf eine Artikelkarte öffnet die Artikeldetailseite.

Preisanzeige-Steuerung

Die Sichtbarkeit von Preisen wird auf zwei Ebenen gesteuert: 1. Globale Einstellung: showPricesInMobileApp (systemweit) 2. Kundenspezifisch: customer.showPriceInMobileApp (überschreibt die globale Einstellung)

Wenn Preise deaktiviert sind, werden keine Preisangaben in der Artikelübersicht, Artikeldetailseite, im Warenkorb und in der Bestellhistorie angezeigt.


20. Artikeldetailseite (Mobile)

Seitenaufbau

Die Artikeldetailseite öffnet sich als Vollbildansicht mit folgenden Bereichen:

Bildergalerie (Header)

  • Erweiterbare Galerie: 320px Höhe im erweiterten Zustand, einklappbar beim Scrollen
  • Wisch-Galerie: Mehrere Bilder per Wisch-Geste durchblättern
  • Variantenspezifische Bilder: Beim Wechsel der Variante werden die Bilder automatisch aktualisiert
  • Bildindikator: Punkte unterhalb der Galerie zeigen die Position an

Inhalt

Bereich Beschreibung
Artikelname Große Überschrift
Artikelbeschreibung Ausklappbarer Beschreibungstext (in der Sprache des Benutzers)
Variantenauswahl Dropdown oder Button-Leiste zur Auswahl der Variante (Größe, Farbe usw.) – nur sichtbar, wenn der Artikel mehrere Varianten hat
Mengenauswahl Increment/Decrement-Buttons (- / +) sowie direktes Textfeld zur Eingabe der Menge
Preis Variantenspezifischer Preis (falls Preisanzeige aktiviert)
Verfügbarkeitsstatus Lagerbestand-Anzeige oder Nachbestellungshinweis
In den Warenkorb Großer primärfarbiger Button am unteren Rand
Dokumente Liste angehängter Dokumente (PDFs, Datenblätter) mit sprachspezifischen Varianten und Download-Links

Variantenauswahl im Detail

  • Standard-Variante wird automatisch vorausgewählt
  • Beim Wechsel der Variante werden aktualisiert: Preis, Bilder, Verfügbarkeit, Lagerbestand
  • Nicht verfügbare Varianten werden ausgegraut

Plugin-Support

Die Artikeldetailseite unterstützt Plugin-Slots für kundenspezifische Zusatzinhalte, die oberhalb oder unterhalb des Standardinhalts eingefügt werden können.


21. Warenkorb & Bestellung (Mobile)

Warenkorb-Seite

  • Einklappbarer Header mit Warenkorb-Icon und Artikelanzahl

Leerer Zustand

  • Icon + Hinweismeldung „Ihr Warenkorb ist leer"
  • Handlungsaufforderung zum Artikelstöbern

Warenkorb-Artikel

Jeder Artikel im Warenkorb wird als Karte dargestellt:

Element Beschreibung
Artikelbild Kleines Vorschaubild
Artikelname Name inkl. Varianteinformation
Ausgewählte Variante z. B. „Rot, Größe L"
Mengensteuerung Minus-Button, Mengenfeld, Plus-Button
Einzelpreis Pro Einheit (falls Preisanzeige aktiv)
Entfernen Wischen oder Löschen-Button

Lieferadresse

  • Dropdown-Auswahl aller hinterlegten Lieferadressen
  • Standard-Adresse ist vorausgewählt
  • Adressen werden aus dem CustomerDeliveryAddressBloc geladen
  • Falls keine Lieferadresse vorhanden: Firmenadresse des Kunden wird verwendet

Sonderwünsche / Bestellnotizen

  • Ausklappbares Textfeld für Kommentare und spezielle Anweisungen
  • Wird als Bestellnotiz zur Bestellung gespeichert

Mindestbestellwert

Wenn ein Mindestbestellwert konfiguriert ist: - Fortschrittsanzeige: Zeigt, wie weit der aktuelle Betrag vom Mindestbestellwert entfernt ist - Warnung: Button ist deaktiviert, bis der Mindestbestellwert erreicht ist

Checkout-Ablauf

  1. Validierung: System prüft, ob alle Artikel noch verfügbar sind
  2. Prüfung nicht verfügbarer Artikel: Bei nicht mehr verfügbaren Artikeln wird eine Warnung angezeigt
  3. Bestellübermittlung: Bei Erfolg → automatische Weiterleitung zur Bestellhistorie
  4. Ladeoverlay: Während der Übermittlung wird ein Lade-Bildschirm angezeigt
  5. Erfolg: Bestätigungsmeldung, Warenkorb wird geleert
  6. Fehler: Snackbar mit Fehlermeldung wird angezeigt

Server-seitige Validierung

Alle Preise werden bei der Bestellerstellung serverseitig neu berechnet. Eine Manipulation der Preise auf Client-Seite wird erkannt und die Bestellung wird abgelehnt.


22. Bestellhistorie (Mobile)

Seitenaufbau

  • Einklappbarer Header mit Bestellungs-Icon und Gesamtanzahl der Bestellungen
  • Suchfeld: Echtzeit-Suche nach Bestellnummer
  • Pull-to-Refresh: Herunterziehen zum Aktualisieren der Bestellliste

Bestellliste

Jede Bestellung wird als Karte dargestellt:

Element Beschreibung
Bestellnummer z. B. „#12345"
Bestelldatum Formatiertes Datum
Status-Badge Farbkodiert: Ausstehend (🟠), Bestätigt (🔵), Versendet (🟢), Geliefert (🟢 dunkel), Storniert (🔴)
Gesamtbetrag Bestellsumme (falls Preisanzeige aktiv)
Hervorhebung Gerade aufgegebene Bestellungen werden ~2,5 Sekunden farblich hervorgehoben

Bestelldetails

Beim Tippen auf eine Bestellung öffnet sich die Detailansicht:

Bereich Beschreibung
Bestellnummer Große Überschrift
Kunde Kundenname und -nummer
Lieferadresse Vollständig formatierte Adresse
Bestellpositionen Tabelle: Artikelname, Variante, Menge, Einzelpreis, Positionssumme
Bestellsumme Zwischensumme, Rabatt, Versandkosten, Gesamtbetrag
Status Aktueller Bestellstatus

Nachbestellung

  • Nachbestellen-Button: Kopiert alle Artikel der Bestellung in den aktuellen Warenkorb
  • Mengen und Varianten werden übernommen
  • Nicht mehr verfügbare Artikel werden übersprungen

23. Feed & Benachrichtigungen (Mobile)

Feed-Seite

  • Einklappbarer Header mit Feed-Icon
  • Badge: Zeigt die Anzahl ungelesener Einträge in der Navigation

Suche & Filter

Filter Beschreibung
Textsuche Durchsucht Titel und Nachrichteninhalt
Typfilter-Chips Filterung nach Feed-Eintragstyp (Push, In-App, Dokument, System)
Archiv-Toggle Archivierte Einträge ein-/ausblenden

Feed-Karten

Jede Benachrichtigung wird als Karte dargestellt:

Element Beschreibung
Typ-Icon Kanalspezifisches Symbol (Glocke, Sprechblase, Dokument, System)
Titel Fettgedruckt
Nachrichtentext Vorschau des Inhalts
Zeitstempel Relative oder absolute Zeitangabe
Gelesen/Ungelesen Visueller Punkt-Indikator für ungelesene Einträge

Aktionen

Aktion Beschreibung
Tippen Markiert den Eintrag als gelesen und zeigt den vollständigen Inhalt
Wischen (rechts → links) Archiviert den Eintrag (animierter Hintergrund mit Icon)
Automatisches Lesen Beim Verlassen der Feed-Seite werden alle sichtbaren Einträge als gelesen markiert

Push-Benachrichtigungen

  • Vom ERP gesendete Push-Benachrichtigungen erscheinen als native iOS/Android-Benachrichtigungen
  • Tippen auf die Benachrichtigung öffnet die App direkt im Feed

24. Einkaufslisten (Mobile)

Nur für Shop-Administratoren verfügbar (siehe Kapitel 2: Rollen & Berechtigungen)

Übersicht

Die Einkaufslisten-Seite zeigt alle gespeicherten Listen des aktuellen Kunden.

Funktionen

Funktion Beschreibung
Liste erstellen Neue Einkaufsliste mit Name anlegen
Listendetails anzeigen Tippen auf eine Liste zeigt alle enthaltenen Artikel
Aus Liste bestellen Alle Artikel einer Liste in den Warenkorb laden
Artikel zur Liste hinzufügen Aus dem Artikelkatalog Artikel auswählen
Artikel entfernen Einzelne Positionen aus der Liste löschen
Mengen anpassen Bestellmengen pro Position ändern
Liste bearbeiten Name und Beschreibung ändern
Liste löschen Gesamte Liste entfernen (Bestätigungsdialog)

Einkaufslisten-Detail

Jede Position zeigt: - Artikelname und -nummer - Ausgewählte Variante - Menge - Kommentar (editierbar)

Hinweis: Einkaufslisten werden zwischen Mobile-App und ERP in Echtzeit synchronisiert. Änderungen, die im ERP vorgenommen werden, sind sofort in der App sichtbar und umgekehrt.


25. Profil & Einstellungen (Mobile)

Seitenaufbau

  • Einklappbarer Header mit Profil-Icon und Benutzerinitialen
  • Scrollbarer Inhalt mit mehreren Sektionen

Sektion 1: Einstellungen

Sprache

  • Dropdown-Auswahl der Sprache (Deutsch, Englisch und weitere)
  • Ändert die gesamte App-Oberfläche und die Artikelbeschreibungen
  • Wird im Benutzerprofil gespeichert

Kundennummern (Multi-Kunden-Zugriff)

Benutzer, die mehreren Kundenkonten zugeordnet sind, können hier zwischen Konten wechseln:

Element Beschreibung
Genehmigte Kunden Liste aller Kundenkonten, zu denen der Benutzer Zugang hat
Aktiver Kunde Hervorgehobener aktueller Kunde
Ausstehende Anfragen Anfragen, die noch auf Genehmigung warten (mit Status-Anzeige)
Neuen Zugang anfragen Button zum Eingeben einer weiteren Kundennummer
Anfrage abbrechen Ausstehende Anfrage zurückziehen

Lieferadressen (nur für Administratoren)

  • Liste aller hinterlegten Lieferadressen mit Standard-Markierung
  • Neue Adresse anlegen: Formular mit Straße, Hausnummer, PLZ, Ort, Land, Standard-Toggle
  • Adresse bearbeiten: Bestehende Adresse ändern
  • Adresse löschen: Adresse entfernen (Bestätigung)
  • Als Standard setzen: Radio-Button zur Auswahl der primären Lieferadresse

Lieferpausen (nur für Administratoren)

  • Kalenderansicht: Zeigt Zeiträume, in denen keine Lieferung gewünscht ist
  • Lieferpause hinzufügen: Datumsbereichsauswahl (Von–Bis)
  • Lieferpause bearbeiten / löschen: Management bestehender Pausen
  • Berücksichtigt globale Feiertage aus den Systemeinstellungen

Benutzerverwaltung (nur für Administratoren)

  • Aktuelle Rolle des angemeldeten Benutzers anzeigen
  • Ausstehende Registrierungen genehmigen oder ablehnen
  • Benutzer entfernen aus dem Kundenkonto

Sektion 2: Rechtliches

Links zu den rechtlichen Seiten (werden aus den Systemeinstellungen geladen und im Browser geöffnet):

Eintrag Beschreibung
Impressum Impressumsseite des Betreibers
Datenschutzerklärung Datenschutzrichtlinie
AGB Allgemeine Geschäftsbedingungen

Sektion 3: Account

Aktion Beschreibung
Passwort ändern Bottom-Sheet mit: Aktuelles Passwort, Neues Passwort (mit Stärke-Indikator), Passwort bestätigen
Konto löschen Bestätigungsdialog mit Warnhinweis → Löscht das Firebase-Konto und alle zugehörigen Daten
Abmelden Sofortige Abmeldung → Zurück zur Anmeldeseite

Plugin-Support

Die Profilseite unterstützt Plugin-Sektionen, die von kundenspezifischen Erweiterungen eingefügt werden können. Plugins können gruppiert werden (mit eigenen Sektionsüberschriften).

---

Teil III – Shop-System Web-App

Die EasySale Web-App ist eine Flutter-basierte Web-Anwendung, die es Endkunden ermöglicht, über einen Desktop-Browser Artikel zu durchsuchen und Bestellungen aufzugeben. Die Funktionen sind identisch mit der Mobile-App, jedoch für Desktop-Browser optimiert.


26. Übersicht Web-App

Die Web-App verwendet eine fixierte obere Navigationsleiste mit folgender Anordnung (links → rechts):

Position Element Beschreibung
Links Kundenkarte (280px) Zeigt den aktuellen Kunden an – klickbar zum Wechseln zwischen Kundenkonten (bei Multi-Kunden-Zugriff)
Mitte App-Logo Logo aus dem Web-App-Theme
Mitte-rechts Liefertage-Icon 📅 Öffnet den Liefertage-Slider
Mitte-rechts Warenkorb-Icon 🛒 Öffnet das Warenkorb-Seitenpanel (mit Badge für Artikelanzahl)
Mitte-rechts Feed-Icon 🔔 Öffnet das Feed-Seitenpanel (mit Badge für ungelesene Anzahl)
Rechts Profil-Bereich Benutzer-Avatar (Initialen) mit Dropdown-Menü

Profil-Dropdown-Menü

Beim Klick auf den Profil-Avatar öffnet sich ein Dropdown mit folgenden Einträgen:

Eintrag Verfügbarkeit Beschreibung
Profil Alle Profilseite öffnen
Kundendaten Alle Kundenstammdaten einsehen
Bestellungen Alle Bestellhistorie-Dialog öffnen
Benutzer verwalten Nur Administratoren Benutzerverwaltung für den aktuellen Kunden
Kundennummern / Konten Alle Zwischen Kundenkonten wechseln
Einkaufslisten Nur Administratoren Einkaufslisten verwalten
Lieferadressen Nur Administratoren Lieferadressen verwalten
Impressum Alle Rechtliche Informationen
Datenschutzerklärung Alle Datenschutzrichtlinie
AGB Alle Allgemeine Geschäftsbedingungen
Passwort ändern Alle Passwort-Änderungsdialog
Konto löschen Alle Konto-Löschung (mit Bestätigung)
Abmelden Alle Ausloggen

Hinweis: Einträge, die als „Nur Administratoren" markiert sind, werden bei normalen Benutzern mit einem Schloss-Icon versehen und sind nicht klickbar.

Layout-Konzepte

Konzept Beschreibung
Seitenpanels Warenkorb, Feed und Artikeldetails öffnen sich als von rechts einfliegende Overlay-Panels
Dialoge Bestellungen, Profil und Einstellungen öffnen als modale Dialoge
Hover-Effekte Buttons und Karten reagieren auf Mauszeiger mit Hover-Animationen
Responsives Gitter Artikelgitter passt sich der Fensterbreite an (2–6 Spalten)
Maximale Breite Inhaltsbereich ist auf ~1200px begrenzt für optimale Lesbarkeit

27. Anmeldung & Registrierung (Web)

Anmeldeseite

Die Web-Anmeldeseite hat ein zweispaltiges Layout:

Spalte Inhalt
Links Branding, Logo, optionaler Willkommenstext
Rechts Anmeldeformular

Formularfelder

Identisch mit der Mobile-App (E-Mail, Passwort mit Sichtbarkeits-Toggle, Passwort-vergessen-Link, Registrieren-Link), aber in einem größeren Layout mit mehr Weißraum dargestellt.

Registrierung & Genehmigung

Der Registrierungsprozess ist identisch mit der Mobile-App (siehe Kapitel 18): - Gleiche Formularfelder (Vorname, Nachname, E-Mail, Passwort, Sprache) - Gleiche Kundennummer-Zuordnung - Gleiche Warteseite mit Echtzeit-Status-Update

Passwort zurücksetzen

Identische Funktionalität wie in der Mobile-App, im Web-Layout dargestellt.


28. Artikelsuche & Sortiment (Web)

Seitenaufbau

Die Artikelseite im Web besteht aus:

  1. Obere Suchleiste (im Header integriert)
  2. Kategorie-Leiste (volle Breite, horizontal scrollbar)
  3. Liefertage-Slider (zwischen Kategorie-Leiste und Artikelgitter)
  4. Artikel-Gitter (Hauptinhalt, responsiv)

Liefertage-Slider

Ein interaktiver horizontaler Slider, der die verfügbaren Liefertage anzeigt:

Element Farbe Beschreibung
Verfügbare Tage 🟢 Grün Tage, an denen geliefert wird
Feiertage ⚪ Grau Globale Feiertage (keine Lieferung)
Lieferpausen 🔴 Rot Kundenspezifische Lieferpausen (keine Lieferung)
Auswählbare Tage Interaktiv Klickbar zur Auswahl eines Liefertermins

Der Slider berücksichtigt: - Globale Liefertage-Einstellungen (aus dem ERP) - Kunden-individuelle Liefertage - Betriebsferien und Feiertage - Kundenspezifische Lieferpausen

Responsive Artikel-Gitter

Fensterbreite Spaltenanzahl
≥ 2000px 6 Spalten
≥ 1600px 5 Spalten
≥ 1200px 4 Spalten
≥ 900px 3 Spalten
< 900px 2 Spalten

Artikel-Karten (Web)

Vertikale Karten mit: - Artikelbild (mit Hover-Effekt) - Artikelname - Kategorie-Badge - Variantenanzahl - Knappheits-Badge (falls aktiviert) - Preis (falls aktiviert)

Artikeldetail (Seitenpanel)

Beim Klick auf eine Artikelkarte öffnet sich ein Seitenpanel von rechts: - Identischer Inhalt wie auf der mobilen Artikeldetailseite - Bildergalerie, Variantenauswahl, Mengenauswahl, In-den-Warenkorb-Button - Panel kann geschlossen werden (X-Button oder Klick außerhalb)


29. Warenkorb & Bestellung (Web)

Warenkorb-Seitenpanel

Der Warenkorb öffnet sich als von rechts einfliegendes Seitenpanel beim Klick auf das Warenkorb-Icon.

Warenkorb-Seite (Vollansicht)

Die Warenkorb-Seite zeigt von oben nach unten:

1. Seitenkopf

Button Beschreibung
Bestellung laden Dialog zum Nachbestellen einer früheren Bestellung
Einkaufsliste laden Dialog zum Laden einer gespeicherten Einkaufsliste in den Warenkorb

2. Mindestbestellwert-Fortschritt

  • Fortschrittsbalken: Zeigt visuell an, wie weit der aktuelle Betrag vom Mindestbestellwert entfernt ist
  • Wird nur angezeigt, wenn ein Mindestbestellwert konfiguriert ist und noch nicht erreicht

3. Lieferadresse

  • Inline-Dropdown mit allen hinterlegten Lieferadressen
  • Detail-Anzeige der ausgewählten Adresse unterhalb des Dropdowns
  • Standard-Adresse ist vorausgewählt

4. Sonderwünsche

  • Ausklappbare Sektion (standardmäßig eingeklappt)
  • Großes Textfeld für Bestellnotizen

5. Warenkorb-Artikel

Horizontales Layout pro Artikel:

Element Beschreibung
Artikelbild Vorschaubild
Artikelname Bezeichnung inkl. Varianteninfo
Variante Ausgewählte Variante
Mengensteuerung Minus-Button, Eingabefeld, Plus-Button
Preis Positionssumme (falls Preisanzeige aktiv)
Löschen Inline-Löschbestätigung
Position Element Beschreibung
Links „Warenkorb leeren" Alle Artikel entfernen (Bestätigungsdialog)
Mitte Gesamtpreis Summe aller Positionen
Rechts „Jetzt bestellen" Primärer Bestell-Button

Checkout

Der Checkout-Ablauf ist identisch mit der Mobile-App (Validierung → Übermittlung → Bestätigung/Fehler).


30. Bestellhistorie (Web)

Bestellungs-Dialog

Bestellungen werden in einem modalen Dialog angezeigt (erreichbar über „Bestellungen" im Profil-Dropdown):

Element Beschreibung
Kopfzeile „Bestellungen" mit Schließen-Button
Suchfeld Suche nach Bestellnummer
Sortierung Nach Datum (neueste zuerst)
Bestellliste Kartenliste mit den gleichen Informationen wie in der Mobile-App

Bestelldetails

Klick auf eine Bestellung zeigt die Detailansicht innerhalb des Dialogs: - Bestellnummer, Datum, Status-Badge - Positionstabelle (Artikel, Variante, Menge, Preis, Summe) - Lieferadresse - Gesamtsumme

Nachbestellung

  • Nachbestellen-Button pro Bestellung
  • Kopiert alle Artikel in den Warenkorb
  • Nicht mehr verfügbare Artikel werden übersprungen
  • Auch über den Warenkorb-Button „Bestellung laden" nutzbar

31. Feed & Benachrichtigungen (Web)

Feed-Seitenpanel

Der Feed öffnet sich als von rechts einfliegendes Overlay-Panel beim Klick auf das Feed-Icon in der Top-Bar.

Inhalt

Der Inhalt ist identisch mit der mobilen Feed-Seite: - Textsuche und Typfilter - Kartenliste mit Titel, Nachrichtenvorschau, Zeitstempel - Gelesen/Ungelesen-Indikator - Archiv-Toggle

Unterschied zur Mobile-Version

Aspekt Mobile Web
Darstellung Vollbildseite Seitenpanel (Overlay)
Archivieren Wisch-Geste Klick auf Archiv-Button
Schließen Tab-Wechsel X-Button oder Klick außerhalb

Browser-Benachrichtigungen

Die Web-App unterstützt Browser-Push-Benachrichtigungen: - Werden über den WebBrowserNotificationService verwaltet - Toast-artige Popups auf Desktop-Browsern - Klick auf die Benachrichtigung öffnet den Feed


32. Profil & Einstellungen (Web)

Darstellung

Die Profileinstellungen werden im Web als Dialog mit Tabs oder zentrierter Inhaltsbereich dargestellt (erreichbar über das Profil-Dropdown).

Verfügbare Einstellungen

Alle Einstellungen sind identisch mit der Mobile-App (siehe Kapitel 25):

Einstellung Verfügbarkeit Web-Darstellung
Sprache Alle Dropdown in Dialog
Kundennummern Alle Dialog mit Kundenliste
Lieferadressen Nur Administratoren Dialog mit Adressliste und Editor
Lieferpausen Nur Administratoren Dialog mit Kalender und Datum-Picker
Einkaufslisten Nur Administratoren Dialog mit Listenverwaltung
Benutzerverwaltung Nur Administratoren Dialog mit Benutzertabelle
Passwort ändern Alle Modal-Dialog
Konto löschen Alle Bestätigungsdialog
Abmelden Alle Sofortige Umleitung

Kundenkarte (Top-Bar)

Ein Web-exklusives Feature: Die Kundenkarte in der oberen Navigationsleiste (280px breit, links): - Zeigt den Namen und die Nummer des aktuell ausgewählten Kunden - Bei Klick: Kunden-Wechsel-Dropdown (wenn der Benutzer mehreren Kunden zugeordnet ist) - Visuelles Feedback beim Hovern


33. Unterschiede Mobile vs. Web

Übersicht der Plattformunterschiede

Aspekt Mobile-App Web-App
Navigation Bottom-Navigation-Bar (7 Tabs) Top-Bar mit Icons + Profil-Dropdown
Layout Vollbild, eine Seite pro Tab Inhaltsbereich mit fixiertem Header
Artikelgitter 1–2 Spalten 2–6 Spalten (responsive)
Artikeldetail Vollbildseite mit einklappbarer Galerie Seitenpanel von rechts
Warenkorb Vollbildseite Seitenpanel oder Vollseite
Bestellungen Vollbildseite mit Pull-to-Refresh Modaler Dialog
Feed Vollbildseite mit Wisch-Gesten Seitenpanel-Overlay
Profil Scrollbare Seite Dialog mit Tabs
Kundenwechsel Über Profil → Kundennummern Kundenkarte in Top-Bar (Klick)
Liefertage In der Artikelübersicht integriert Eigener Slider zwischen Kategorien und Artikeln
Scroll-Verhalten Bouncing Physics (iOS-Stil) Standard-Scrolling
Interaktion Touch, Wisch-Gesten, Tippen Maus, Hover, Klick
Benachrichtigungen Native iOS/Android Push Browser-Benachrichtigungen (Toast)
Seitenpanels Bottom-Sheets (von unten) Seitenpanels (von rechts)
Maximale Breite Volle Bildschirmbreite ~1200px begrenzt
Safe Area Notch/Home-Indicator-Respektierung Nicht erforderlich

Identische Funktionen

Folgende Funktionen sind auf beiden Plattformen identisch implementiert: - Checkout-Ablauf und Server-seitige Preisvalidierung - Registrierungsprozess und Genehmigungsworkflow - Kundennummer-Zuordnung und Multi-Kunden-Management - Einkaufslisten-Verwaltung und Echtzeit-Synchronisierung - AGB-Akzeptanz und Versionierung - Passwort-Änderung und Konto-Löschung - Feed-Inhalte und Lesebestätigungen

Sicherheitsfeatures (beide Plattformen)

Feature Beschreibung
Session-Timeout Automatische Abmeldung nach Inaktivität – der InactivityService überwacht Pointer-Events (Tippen, Ziehen, Mausbewegung)
Geräte-Integritätsprüfung Prüfung auf kompromittierte/gerootete Geräte (Mobile) – bei Erkennung wird ein Warnbildschirm angezeigt
SSL Certificate Pinning Schutz vor Man-in-the-Middle-Angriffen (Mobile)
URL-Validierung Externe Links werden nur geöffnet, wenn sie HTTPS verwenden
Token-Rotation JWT-Tokens werden automatisch erneuert

Theme-Anpassung

Beide Plattformen laden ihr Theme aus den ERP-Einstellungen: - Mobile: Über die „Mobile-App-Theme"-Einstellungen (Kapitel 11.17) - Web: Über die „Web-App-Theme"-Einstellungen (Kapitel 11.18) - Caching: Themes werden lokal zwischengespeichert (SharedPreferences) für sofortige Anzeige - Stale-while-revalidate: Gespeichertes Theme wird sofort angezeigt, aktualisiertes Theme wird im Hintergrund nachgeladen


Ende des Benutzerhandbuchs

Bei Fragen oder Problemen wenden Sie sich bitte an den Systemadministrator oder nutzen Sie den SAM KI-Assistenten im ERP-System.