Organisationseinheiten (OU)¶
Organisationseinheiten sind das zentrale Routing-Konzept für Kommunikationsvorgänge im Shop. Sie bündeln:
- Zuständigkeit: Welche Kunden, Produktklassen, Quellen?
- Empfänger: Mitglieder, E-Mail-Adressen, API-Requests
- Ereignisse: Für welche Event-Typen ist die OU zuständig?
- Routing-Filter: Mindest-/Maximalbestellwerte
Typ-Kennzeichnung¶
Jede OU hat ein Pflichtfeld type (seit Migration 0023):
| Wert | Konstante | Bedeutung |
|---|---|---|
| 0 | INTERNAL |
Standard-OU für interne Routing-Regeln |
| 1 | ADDITIONAL_EMAIL_RECIPIENT |
Vom Dashboard angelegter Zusatzempfänger |
Versandablauf¶
OrganizationUnit.get_responsible_ous(event, user, order)
→ OrganizationUnit.send_all(event, user, messages)
→ für jede zuständige OU:
→ ou.send(event, user, messages, order)
→ ou.dispatch_api_requests(instance) # optional
Zuständigkeitsprüfung¶
check_responsibility() filtert OUs nach:
- User-Related Events: Benutzer ist Pflicht, Bestellung wird ignoriert
- Order-Related Events: Bestellung ist Pflicht, Benutzer = Besteller
- Custom Events: Keine Filterung nach Benutzer oder Bestellung
Zusätzlich werden customers, product_classes, source_types und
Wertgrenzen (minimum_order_value, maximum_order_value) geprüft
(&-Verknüpfung).
Zusatzempfänger¶
Dashboard-Zusatzempfänger sind OUs vom Typ ADDITIONAL_EMAIL_RECIPIENT.
Sie werden pro Benutzer angelegt und über customers und event_types
gefiltert. Der Versand erfolgt über denselben send_all-Pfad wie für
alle anderen OUs – kein separater Verarbeitungsweg.