Zum Inhalt

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

---