Zum Inhalt

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.