# Pakajo Dashboard · Entwicklungsschritte für die Backend-Anbindung

Stand: 10.10.2026 · Basis: Mockup-Build 2026-10-10-47 · Zielsystem: Pakajo-Backend

Die Schritte sind klein geschnitten und in sinnvoller Reihenfolge. Jeder Schritt ist für sich testbar; das Mockup bleibt währenddessen lauffähig, weil alle Module nur über `window.PakajoBackend` auf Daten zugreifen (siehe *Backend-Integration*).

---

## Phase 0 · Projekt aufsetzen

### 0.1 Repository und Build einrichten
Mockup in ein Repo übernehmen, Script-Blöcke als einzelne Dateien herauslösen (Adapter, Module, Styles), Build für `dashboard.html`/`index.html` + Service Worker.

### 0.2 Konfiguration und Umgebungen
`PakajoBackend.config` auf Umgebungsvariablen (Dev / Staging / Prod), API-Basis-URL, MwSt-Satz, Währung.

### 0.3 Authentifizierung
Login/Registrierung (`pakajo-login.html`) an den Auth-Service anbinden: Session-Token statt `?selfreg=<base64>`; E-Mail-Bestätigung (Mail 1) und Willkommensmail (Mail 2) über den Mail-Service.

---

## Phase 1 · Stammdaten aus dem Backend

### 1.1 Versanddienste
`carriers.all / forScreen / forCountry` → `GET /carriers` (ID, Name, Service-Klasse, Laufzeit, Max-Gewicht, Länder-Abdeckung, Features).

### 1.2 Versandprodukte
`products.all` → `GET /products` (Codes 1–7) sowie Pickup-/Drop-off-/Retoure-Produkte `products.pickup(mode)`.

### 1.3 Länder und Glocal-Länder
`countries.list` (ISO-2/ISO-3/Name/Flagge) und `glocal.countries` aus der Produktgruppe Glocal.

### 1.4 Kunden und Mandanten
`customers.list / get / save` → Bestandskunden aus dem Backend; Master-Mandant + Standorte; Enterprise-Kunden, die direkt im Backend angelegt werden, erscheinen im Frontend.

### 1.5 User und Rollen
`users.list / current` → User, Rollen, Mandanten-Zuordnung, Unter-User-Login (sieht nur zugeordnete Mandanten).

---

## Phase 2 · Preise und Abonnements

### 2.1 Preisabfrage
`pricing.quote` → `POST /quote` (Carrier, Land, Gewicht, Maße, Produkt, Versicherung, Express → netto/MwSt/brutto) aus den Angebotsgruppen des Kunden.

### 2.2 Angebotsgruppen und Abonnements
`subscriptions.*` → Angebotsgruppe je Kunde, aktives Abo, Rabatte, Feature-Freischaltungen (Box-Presets ab Silber, Versandregeln ab Gold, Mandanten-/User-Limits) **serverseitig** prüfen.

### 2.3 Billing
`billing.*` → Prepaid-Aufladung, Zahlungsmethode (Karte/PayPal), SEPA-Mandat beantragen und durch Pakajo freigeben, Plan-Wechsel, Prepaid-Gutschrift beim Abo-Start, Bronze-Testmonat.

### 2.4 Brutto/Netto
Flag „vorsteuerabzugsberechtigt" aus der Registrierung am Master-Mandanten speichern; Preise aus `quote()` direkt als netto/brutto rendern (DOM-Umrechnung entfällt).

---

## Phase 3 · Versand

### 3.1 Einzelversand
Sendung anlegen → `POST /shipments` (Mandant, Ziel-Land ISO-2, Maße, Produkt, Carrier-ID, Empfänger, Zusatzversicherung); Label/Tracking-Nummer vom Server.

### 3.2 Aufträge und Sammelaufträge
`shipments.orders` → Aufträge, Tages-Sammelauftrag, Sendungen je Auftrag; Status-Enum vereinheitlichen.

### 3.3 Massenversand
Import (XLSX/CSV) → Backend-Validierung und -Kalkulation; Zeilen liefern `dest`, `gewicht`, `produkt`, `carrierId`; Workflow-Schritte (kalkuliert → Versanddaten → Label) aus dem Backend.

### 3.4 Versandregeln
`rules.list / save` → Regeln je Kunde persistieren; Anwendung im Einzel- und Massenversand (erste passende Regel gewinnt); KI-Vorschläge `rules.aiSuggestions` aus der Versandanalyse.

### 3.5 Zoll und Handelsrechnung
Einfuhrsteuer `importTax(iso)`, CN22/Handelsrechnung aus Kundeneingaben, Zoll-Tarifprodukte je Sendung.

### 3.6 Pickup, Drop-off, Retoure-Pickup
Buchung → Backend (Termin/feste Slots, Abgabestellen, Abhol-Kontingent je Abo, Füllregel); Label/QR-Code vom Carrier bzw. Backend.

---

## Phase 4 · Nach dem Versand

### 4.1 Tracking
`tracking.events(nr)` → KI-Tracking (vorhanden); Master-Detail-Ansicht liest nur noch Backend-Daten.

### 4.2 Retouren
`returns.list` → Retourenportal aus dem Backend (vorhanden) im Frontend ausspielen.

### 4.3 Reklamationen (Bitrix24)
`claims.tickets / webhook` → Ticket legt der Service an, Kunde ist Mitwirkender; Webhooks ONTASKADD / ONTASKUPDATE / ONTASKCOMMENTADD; Messenger im Dashboard; E-Mail-Einladung.

### 4.4 Rechnungen und ESN-Daten
`billing.invoices` → Rechnungsübersicht und XLSX-Export aus den ESN-Versanddaten; Gutschriften.

---

## Phase 5 · Shop, Daten, Auswertung

### 5.1 Shop- und Marktplatzbestellungen, Artikel
`orders.shopOrders / articles` → vorhandene Backend-Daten anzeigen; Bestellung → Sendung.

### 5.2 Versandperformance
`performance.query` → SQL-Editor-Abfragen ins Frontend (Charts/KPIs).

### 5.3 Pricing-Tool
Preisübersicht aus echten Angebotsgruppen-Preisen je Abo (+ KI-Vorschläge); XLSX-Export.

### 5.4 Integrationen und API-Doku
`integrations.list`, `apiDocs.url` → vorhandene Backend-Integrationen und Doku einbinden; API-Keys serverseitig.

---

## Phase 6 · Kundenbereich

### 6.1 Adressbuch
`addressbook.list` + Speichern/Ändern im Backend (Anzeige bleibt Frontend).

### 6.2 Paketgrößen (Box-Presets)
Frontend-Speicherung je Kunde (optional Backend-Sync).

### 6.3 Branding
Logo/Farben/Absenderdaten für Label, Handelsrechnung, Retourenportal (Frontend + Backend).

### 6.4 Paku Points
`points.*` → Punktestand, Gutschrift je Sendung, Einlösen; nur Free/Bronze/Silber/Gold (nicht Enterprise).

### 6.5 Profil, Sprache, Währung, 2FA
Profildaten je User aus dem Backend; Sprache/Währung als Präferenz; 2FA im Frontend.

---

## Phase 7 · Härtung und Abnahme

### 7.1 Sicherheit
LLM-Aufrufe (Chatbot/KI-Vorschläge) über das Backend proxyen, keine API-Keys im Browser; Tracking-Abfragen über das Backend; IDs (Tracking, Buchung, Ticket, Gutschrift) vom Server.

### 7.2 Enums und i18n
Status-, Plan- und Produkt-Enums zentral; Labels über i18n (DE/EN/ES/FR/IT …).

### 7.3 Demo-Daten entfernen
Demo-Mandanten 2600–2607 und statische Tabellenzeilen durch Seed-Daten aus dem Backend ersetzen.

### 7.4 Mobile und PWA
Responsive Prüfung aller Screens, Service Worker/Caching, Offline-Hinweise.

### 7.5 Abnahme
Testfälle je Phase (Neuregistrierung → erste Sendung, Abo-Wechsel, Massenversand mit Regeln, Reklamation per Webhook, Pickup mit Label/QR), Launch-Vorbereitung.
