furry/docs/email_system.md

312 lines
7.9 KiB
Markdown

<<<<<<< HEAD
# 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
=======
# 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
>>>>>>> 5b9b867963eca600ed64b617dc2dc86c30dbd9cb
- Responsive Breakpoints