3.9 KiB
3.9 KiB
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:
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:
ADMINS = [
('Shop Admin', 'admin@fursuitshop.com'),
]
Lagerbestand-Schwellenwert
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
@receiver(post_save, sender=Order)
def handle_order_notifications(sender, instance, created, **kwargs):
# Sendet Benachrichtigungen bei neuen Bestellungen und Statusänderungen
Payment-Signals
@receiver(post_save, sender=PaymentError)
def handle_payment_error(sender, instance, created, **kwargs):
# Benachrichtigt Admins über Zahlungsfehler
Product-Signals
@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
- Templates erstellen (HTML und Text)
- E-Mail-Funktion in
emails.pyhinzufügen - Signal-Handler in
signals.pyregistrieren - Übersetzungen in
.po-Dateien hinzufügen
Template-Anpassung
- CSS-Styles in Template-Header
- Einheitliche Farbcodes und Abstände
- Bootstrap-kompatible Klassen
- Responsive Breakpoints