155 lines
3.9 KiB
Markdown
155 lines
3.9 KiB
Markdown
# E-Mail-System Dokumentation
|
|
|
|
## Übersicht
|
|
|
|
Das E-Mail-System des Fursuit Shops versendet automatisch Benachrichtigungen an Kunden und Administratoren bei verschiedenen Shop-Ereignissen. Das System ist mehrsprachig (DE/EN) und verwendet responsive HTML-Templates mit Text-Alternativen.
|
|
|
|
## Konfiguration
|
|
|
|
### E-Mail-Einstellungen
|
|
|
|
Die E-Mail-Konfiguration erfolgt über Umgebungsvariablen in der `.env`-Datei:
|
|
|
|
```env
|
|
EMAIL_HOST=smtp.gmail.com
|
|
EMAIL_PORT=587
|
|
EMAIL_USE_TLS=True
|
|
EMAIL_HOST_USER=your-email@gmail.com
|
|
EMAIL_HOST_PASSWORD=your-app-specific-password
|
|
DEFAULT_FROM_EMAIL=Fursuit Shop <noreply@fursuitshop.com>
|
|
```
|
|
|
|
### Admin-Benachrichtigungen
|
|
|
|
Administratoren werden in `settings.py` konfiguriert:
|
|
|
|
```python
|
|
ADMINS = [
|
|
('Shop Admin', 'admin@fursuitshop.com'),
|
|
]
|
|
```
|
|
|
|
### Lagerbestand-Schwellenwert
|
|
|
|
```python
|
|
LOW_STOCK_THRESHOLD = 5 # Benachrichtigung bei ≤ 5 Artikeln
|
|
```
|
|
|
|
## E-Mail-Typen
|
|
|
|
### 1. Kundenbenachrichtigungen
|
|
|
|
#### Bestellbestätigung
|
|
- Gesendet nach erfolgreicher Zahlung
|
|
- Enthält Bestelldetails, Produkte und Preise
|
|
- Template: `order_confirmation.html/txt`
|
|
|
|
#### Status-Updates
|
|
- Gesendet bei Statusänderungen der Bestellung
|
|
- Kann Fortschrittsbilder und Beschreibungen enthalten
|
|
- Template: `order_status_update.html/txt`
|
|
|
|
#### Versandbestätigung
|
|
- Gesendet wenn Bestellung versendet wurde
|
|
- Enthält Tracking-Nummer und Versanddetails
|
|
- Template: `shipping_confirmation.html/txt`
|
|
|
|
### 2. Admin-Benachrichtigungen
|
|
|
|
#### Neue Bestellung
|
|
- Bei jeder neuen Bestellung
|
|
- Spezielle Markierung für Fursuit-Bestellungen
|
|
- Template: `admin_notification.html/txt`
|
|
|
|
#### Zahlungsfehler
|
|
- Bei fehlgeschlagenen Zahlungen
|
|
- Enthält detaillierte Fehlerinformationen
|
|
- Template: `admin_notification.html/txt`
|
|
|
|
#### Custom Design
|
|
- Bei Bestellungen mit Custom Designs
|
|
- Enthält Design-Dateien und Notizen
|
|
- Template: `admin_notification.html/txt`
|
|
|
|
#### Niedriger Lagerbestand
|
|
- Bei Unterschreitung des Schwellenwerts
|
|
- Enthält Produktdetails und aktuellen Bestand
|
|
- Template: `low_stock_notification.html/txt`
|
|
|
|
## Signal-Handler
|
|
|
|
Das System verwendet Django-Signals für automatische Benachrichtigungen:
|
|
|
|
### Order-Signals
|
|
```python
|
|
@receiver(post_save, sender=Order)
|
|
def handle_order_notifications(sender, instance, created, **kwargs):
|
|
# Sendet Benachrichtigungen bei neuen Bestellungen und Statusänderungen
|
|
```
|
|
|
|
### Payment-Signals
|
|
```python
|
|
@receiver(post_save, sender=PaymentError)
|
|
def handle_payment_error(sender, instance, created, **kwargs):
|
|
# Benachrichtigt Admins über Zahlungsfehler
|
|
```
|
|
|
|
### Product-Signals
|
|
```python
|
|
@receiver(pre_save, sender=Product)
|
|
def check_stock_level(sender, instance, **kwargs):
|
|
# Überprüft Lagerbestand und sendet Warnungen
|
|
```
|
|
|
|
## E-Mail-Templates
|
|
|
|
Alle E-Mail-Templates:
|
|
- Sind vollständig responsive
|
|
- Unterstützen HTML und Text-Alternativen
|
|
- Sind mehrsprachig (DE/EN)
|
|
- Verwenden einheitliches Branding
|
|
|
|
### Template-Struktur
|
|
```
|
|
shop/templates/shop/emails/
|
|
├── order_confirmation.html
|
|
├── order_confirmation.txt
|
|
├── order_status_update.html
|
|
├── order_status_update.txt
|
|
├── shipping_confirmation.html
|
|
├── shipping_confirmation.txt
|
|
├── admin_notification.html
|
|
├── admin_notification.txt
|
|
├── low_stock_notification.html
|
|
└── low_stock_notification.txt
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- TLS-Verschlüsselung für E-Mail-Versand
|
|
- Keine sensiblen Daten in E-Mails
|
|
- Sichere Links zu Admin-Bereich
|
|
- App-spezifische Passwörter für SMTP
|
|
|
|
## Fehlerbehandlung
|
|
|
|
- Robuste Exception-Handling
|
|
- Logging von Versandfehlern
|
|
- Vermeidung von Doppel-Benachrichtigungen
|
|
- Fallback auf Text-Version bei HTML-Problemen
|
|
|
|
## Wartung
|
|
|
|
### Neue E-Mail-Typen hinzufügen
|
|
|
|
1. Templates erstellen (HTML und Text)
|
|
2. E-Mail-Funktion in `emails.py` hinzufügen
|
|
3. Signal-Handler in `signals.py` registrieren
|
|
4. Übersetzungen in `.po`-Dateien hinzufügen
|
|
|
|
### Template-Anpassung
|
|
|
|
- CSS-Styles in Template-Header
|
|
- Einheitliche Farbcodes und Abstände
|
|
- Bootstrap-kompatible Klassen
|
|
- Responsive Breakpoints |