Ein modernes, domänenorientiertes (Domain-Driven Design) E-Commerce Retouren-Management-System auf Basis von Laravel 13, Filament 5 und reiner Hexagonal-Architektur.
„Warum bekommt der Kunde für das zurückgesendete Produkt nur 39,90 € statt 59,90 € zurück?“
In klassischen E-Commerce-Systemen führen Retouren oft zu pauschalen 100%-Rücküberweisungen, selbst wenn die Ware gebraucht, geöffnet oder unvollständig zurückkommt.
Dieses System löst das Problem durch eine deterministische, transparente und auditierbare Erstattungsberechnung:
Original Order (Kaufpreis: 59,90 €)
│
â–Ľ
Return Request (Online-Portal)
│
â–Ľ
Eligibility Check (Fristen, Mengen, Berechtigung)
│
â–Ľ
Goods Received (Wareneingang im Lager)
│
â–Ľ
Inspection (Physischer Befund)
├─ Zustand: USED (Gebraucht)
├─ Wiederverkauf: B_GOOD (B-Ware)
└─ Wertminderung (Value Adjustment): -20,00 €
│
â–Ľ
Refund Calculation (Deterministische Berechnung)
│
â–Ľ
Final Refund: 39,90 € (Auditierbar & im Filament Backend aufgeschlüsselt)
app/Domain/Returns/ # 100% PURE PHP 8.4 (Keine Framework-Abhängigkeiten)
├── Model/
│ ├── ReturnOrder.php # Aggregate Root (State Machine & Invarianten)
│ ├── Entities/ # ReturnItem, Inspection
│ └── ValueObjects/ # Money, Quantity, ReturnStatus, ReturnCondition, etc.
├── Services/
│ ├── ReturnEligibilityService.php
│ ├── RefundCalculator.php
│ └── ProportionalDiscountAllocationStrategy.php
├── Specifications/ # ReturnIsWithinAllowedPeriod, ProductIsReturnable
├── Events/ # ReturnRequested, ReturnInspected, RefundCalculated, etc.
└── Repositories/ # ReturnRepositoryInterface, OrderReadPortInterface
app/Application/Returns/ # Orchestrierung von Use Cases (Commands & Handlers)
├── Commands/ # CreateReturn, ApproveReturn, RecordInspection, CompleteReturn...
└── Handlers/ # Transaktionale Ausführung der Domänenoperationen
app/Infrastructure/ # Technische Adapter & Persistenz
├── Persistence/Eloquent/Models/ # OrderModel, ReturnModel, ReturnInspectionModel, AuditLogs
└── Repositories/ # EloquentReturnRepository, EloquentOrderReadPort
app/Filament/ # UI-Steuerung (Filament 5 Admin Panel)
└── Resources/Returns/ # Tabellen, Inspektions-Dialog, Explainability-Infolist
./zenv up./zenv artisan migrate --seed- URL: http://localhost/admin
- E-Mail:
admin@example.com - Passwort:
password
- URL: http://localhost:5540
- Host:
redis| Port:6379
Das gesamte Projekt ist lĂĽckenlos mit Pest PHP getestet:
# Alle Unit-, Feature- und Architecture-Tests ausfĂĽhren:
./zenv pest
# Nur Architecture-Tests (Schichtenreinheit der Domain):
./zenv pest tests/Architecture
# Code-Style prĂĽfen mit Laravel Pint:
./zenv vendor/bin/pint --test- Konzept: docs/concepts/returns-management.md
- Value Proposition: docs/marketing/returns-management-showcase.md
- Changelog: CHANGELOG.md