5.2 KiB
5.2 KiB
DHL Versandmodul - Optimierter Programmierplan (MVP)
Bewertung der Optimierungsvorschläge
✅ Akzeptierte Optimierungen:
- Vereinfachtes Datenbank-Schema: Eine
dhl_shipmentsTabelle mittypeSpalte für Outbound/Return - Tracking vereinfacht: Aktueller Status in Haupttabelle, separate Events-Tabelle für Phase 2
- Konsolidierte Service-Klasse: Ein
DhlApiServicestatt drei separate Services - Advanced Features verschoben: Excel Export, Webhooks, Notifications als Phase 2
🔄 Kleine Anpassungen am Vorschlag:
- Jobs bleiben getrennt (CreateShipment, Cancel, ReturnLabel) für bessere Queue-Verwaltung
- Tracking-Job für Scheduler-Integration beibehalten
- Admin-Navigation früher implementieren für bessere UX
Finaler Optimierter Plan - DHL Modul (MVP)
Phase 1: Fundament und Kernlogik (8 Schritte)
1. Setup & Dependencies ✅ AKTUALISIERT
Composer:(veraltet, Probleme mit DHL-Login)dhl-sdk-api-php/dhl-sdk-bcsinstallieren- NEUER ANSATZ: Eigenständiges Laravel-Paket
packages/acme-laravel-dhl - Direkte DHL API-Integration über HTTP-Client (Guzzle)
- Queue-System aktivieren (database driver)
2. Konfiguration
config/dhl.phperstellen (API-Credentials, Absenderadressen)- Environment-Variablen in
.envdefinieren
3. Datenbank & Model ✅ ABGESCHLOSSEN
- Migration für
dhl_shipmentsTabelle: ✅- order_id, dhl_shipment_no, type (outbound/return)
- related_shipment_id (für Retouren), weight_kg, label_path
- status, tracking_status, last_tracked_at
- api_response_data (JSON), created_at, updated_at
DhlShipmentModel mit vollständigen Relationships ✅DhlTrackingEventModel für detaillierte Events ✅
4. Zentraler Service ✅ ABGESCHLOSSEN
(SDK-Ansatz verworfen)DhlApiServiceals Wrapper um DHL SDK- NEUE STRUKTUR:
DhlClient- HTTP-Client für API-Kommunikation ✅ShippingService- Label-Erstellung und -Verwaltung ✅TrackingService- Status-Tracking und -Updates ✅ReturnsService- Retourenlabel-Management ✅
- Vollständige Error-Behandlung und Validation ✅
5. Queue Jobs
CreateShipmentJobfür asynchrone Label-ErstellungCancelShipmentJobfür StornierungenCreateReturnLabelJobfür Retourenetiketten
6. Controller Foundation
DhlShipmentControllermit store/show/cancel Methoden- Basis-Routen in
routes/web.php
7. Error Handling & Logging ✅ ABGESCHLOSSEN
- Exception-Handling für DHL API-Fehler ✅
- HTTP-Status spezifische Exceptions
- Retry-Mechanismus (3x mit 300ms Delay)
- Timeout-Handling (30s)
- Aussagekräftige Fehlermeldungen ✅
- Validation aller Eingabedaten ✅
8. Basic Testing
- Unit-Tests für
DhlApiService - Feature-Tests für Controller
Phase 2: Admin-Oberfläche (6 Schritte)
9. Navigation & Layout
- Admin-Menüpunkt "DHL Cockpit"
- Bootstrap 5 Layout für DHL-Views
10. Cockpit (Zentrale Übersicht)
index()Methode im Controllercockpit.blade.phpView mit DataTable- Filter: Datum, Status, Sendungstyp
11. Einzelaktionen
- "Label herunterladen" Button
- "Sendung stornieren" Button mit Confirmation
12. Batch-Operationen
- Mehrere Sendungen auswählen
- Stapeldruck von Labels
- Massen-Stornierung
13. Integration in Bestellverwaltung
- DHL-Button in Bestelldetails
- Direkter Zugang zu Sendungsinformationen
14. Status-Anzeige & Feedback
- Alert-System für Erfolgsmeldungen/Fehler
- Real-time Status-Updates
Phase 3: Tracking und Retouren (5 Schritte)
15. Tracking-System
UpdateTrackingStatusJobfür automatische Updates- Artisan Command
dhl:update-tracking - Scheduler-Integration
16. Tracking-Anzeige
- Tracking-Status im Cockpit
- Tracking-Details in Sendungsansicht
- Timeline-View für Sendungsverlauf
17. Retouren-Management
- Button "Retourenlabel erstellen"
- Retouren-Workflow im Admin
- Verknüpfung Original-Sendung ↔ Retoure
18. Customer-Interface (Basic)
- Einfache öffentliche Tracking-Seite
- Tracking-Nummer-Eingabe
19. Notifications (Basic)
- E-Mail bei Sendungserstellung
- E-Mail bei wichtigen Status-Änderungen
Phase 4: Finalisierung & Polish (4 Schritte)
20. Performance-Optimierung
- Eager Loading für Relationships
- Caching für häufige API-Abfragen
- Database-Indexe
21. Comprehensive Testing
- Integration-Tests für DHL SDK
- Browser-Tests für Admin-Interface
- Error-Scenario Tests
22. Documentation
- Benutzerhandbuch für Shop-Mitarbeiter
- Code-Dokumentation
- API-Dokumentation
23. Production-Ready Features
- Environment-spezifische Konfiguration
- Monitoring & Alerting
- Backup & Recovery-Konzept
Optionale Erweiterungen (Phase 2 des Projekts)
Advanced Features (später):
- Separate
dhl_tracking_eventsTabelle für detaillierte Historie - Excel/CSV Export von Sendungsdaten
- Webhook-Integration für automatische Updates
- SMS-Notifications
- Erweiterte Reporting-Features
- Multi-Tenant Support
- API für externe Systeme
Total: 23 konkrete Schritte für ein vollständig funktionsfähiges DHL Versandmodul
Dieser Plan fokussiert sich auf die Kernfunktionalitäten und liefert schnell ein nutzbares Ergebnis.