Implement shopping cart functionality with UI components and API integration
- Added CartItem, CartSummary, CartEmpty, CartSidebar, and CartSheet components for managing cart display and interactions. - Integrated useCart and useCartUI composables for cart state management and UI control. - Implemented API endpoints for cart operations, including fetching, adding, updating, and removing items. - Enhanced user experience with loading states and notifications using vue-sonner for cart actions. - Configured session management for guest and authenticated users, ensuring cart persistence across sessions. This commit completes the shopping cart feature, enabling users to add items, view their cart, and proceed to checkout. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit is contained in:
31
docs/PRD.md
31
docs/PRD.md
@@ -523,10 +523,41 @@ Beim Import von Produkten aus dem NAV ERP werden Rollen basierend auf der Katego
|
||||
|
||||
#### F-005: Warenkorb-Funktionalität
|
||||
|
||||
**Desktop Design:**
|
||||
- Sidebar von rechts (400px breit)
|
||||
- Kann durch Button im Header geöffnet/geschlossen werden
|
||||
- Zeigt aktuelle Cart-Artikel mit Produktdetails
|
||||
- Live-Summenberechnung
|
||||
- Sticky Footer mit "Zur Kasse" Button
|
||||
|
||||
**Mobile Design:**
|
||||
- FAB (Floating Action Button) mit Warenkorb-Icon
|
||||
- FAB zeigt Artikelanzahl als Badge an
|
||||
- Klick öffnet Bottom Sheet mit voller Cart-Anzeige
|
||||
- Bottom Sheet scrollbar für lange Warenkörbe
|
||||
- Bedingte FAB-Renderung: Nur auf Produktseiten wenn Cart nicht leer
|
||||
|
||||
**Funktionalität:**
|
||||
- Session-basierter Warenkorb für nicht-angemeldete User
|
||||
- DB-persistenter Warenkorb für angemeldete User
|
||||
- CRUD-Operationen: Hinzufügen, Entfernen, Mengenänderung
|
||||
- Warenkorb-Icon mit Badge (Artikelanzahl)
|
||||
- Automatische Verfügbarkeitsprüfung
|
||||
- Entfernung nicht verfügbarer Produkte
|
||||
|
||||
**Persistierung:**
|
||||
- 30 Tage Persistierung für User-Carts (DB-gespeichert)
|
||||
- 30 Tage Persistierung für Guest-Carts (session_id-basiert)
|
||||
- Auto-Cleanup: Nicht verfügbare Produkte werden automatisch aus dem Warenkorb entfernt
|
||||
|
||||
**Rollenbasierte Sichtbarkeit:**
|
||||
- Nur Produkte, die zur Rolle des Users passen, sind im Warenkorb sichtbar
|
||||
- Bei Rollenwechsel werden inkompatible Produkte markiert/entfernt
|
||||
|
||||
**Session Management:**
|
||||
- Warenkorb-ID wird in Session gespeichert
|
||||
- Cart wird bei Session-Ablauf gelöscht
|
||||
- Gast-Cart wird zu User-Cart migriert, wenn sich Gast anmeldet (optional)
|
||||
|
||||
#### F-006: Checkout-Prozess
|
||||
|
||||
|
||||
Reference in New Issue
Block a user