Zum Inhalt springen

Automation Rules

Das Modul Automation Rules führt Aktionen (E-Mail, SMS, Statusänderung, Notiz, Kunden-Tag, Webhook) auf Basis von Ereignissen im Shop aus. Sie definieren Regeln im Panel WooCommerce > Automation Rules über eine React-SPA, und die Engine führt sie als Reaktion auf einen Trigger aus.

Element Beschreibung
Trigger Ein WooCommerce-Ereignis, das die Regel ausführt (new_order, order_status_changed, …)
Filter Eine logische Bedingung (order_total > 100, geo_scope in eu, …)
Action Eine auszuführende Operation (send_email, add_order_note, webhook, …)
Match mode all - alle Filter erfüllt, any - einer genügt
Priority Ausführungsreihenfolge (niedriger = früher)

Regeln werden in der Tabelle wp_polski_pro_automation_rules gespeichert. Ausführungen (matched/skipped, Probelauf, Aktionsergebnis, Fehler) gelangen in wp_polski_pro_automation_logs.

Wert Wann ausgelöst
new_order woocommerce_new_order
order_status_changed woocommerce_order_status_changed
new_customer user_register
cart_abandoned (reserviert - Integration mit AbandonedCartService)
product_saved save_post_product

Verfügbare Felder in Filtern (FilterField):

Feld Quelle Operatoren
order_total WC_Order::get_total() equals, gt, lt, not_equals
order_status WC_Order::get_status() equals, in, not_in
item_count WC_Order::get_item_count() gt, lt, equals
billing_country ISO 3166-1 alpha-2 equals, in, not_in
shipping_country ISO 3166-1 alpha-2 (Fallback auf billing) equals, in, not_in
geo_scope pl, eu, eea, non_eu equals
customer_email WC_Order::get_billing_email() equals, contains
payment_method WC_Order::get_payment_method() equals, in
shipping_method Liste der Methoden aus der Versandposition in, not_in
product_id Liste der Produkt-IDs in der Bestellung in, not_in
category Liste der product_cat-IDs aus den Bestellpositionen in, not_in

Der Operator in / not_in akzeptiert eine durch Kommas getrennte Liste (PL,DE,FR).

Das Feld geo_scope gibt für eine Bestellung/einen Benutzer einen von vier Werten zurück:

Wert Bereich
pl Polen (PL)
eu EU-Länder (27 Mitgliedstaaten)
eea EWR = EU + Norwegen, Island, Liechtenstein
non_eu Der Rest der Welt

Anwendungsbeispiel: Eine Regel sendet Kunden aus der EU eine andere Marketing-E-Mail-Vorlage (mit DSGVO-Hinweis) als jenen außerhalb der EU.

Typ Parameter
send_email to (optional), subject, body, marketing (Boolean, der Einwilligung erzwingt)
send_sms Delegiert an polski_pro/automation/send_sms (erfordert SmsNotificationService)
change_order_status status, note
add_order_note note, customer_note (Boolean)
add_customer_tag tag (speichert in das user_meta polski_customer_tags)
webhook url - ein POST mit {subject_type, subject_id}

Aktionen mit params.marketing = true werden übersprungen, wenn der Kunde keine gültige Marketing-Einwilligung in polski_consent_log hat. Der Filter polski_pro/automation/has_marketing_consent erlaubt es, die standardmäßige Logik zur Einwilligungsprüfung zu ersetzen.

Um eine benutzerdefinierte Aktion hinzuzufügen (z. B. Integration mit FreshMail/GetResponse), verwenden Sie den Filter:

add_filter('polski_pro/automation/action', function ($override, $action, $subject, $dryRun) {
if ($action->type->value === 'send_email' && ($action->params['provider'] ?? '') === 'freshmail') {
if ($dryRun) {
return ['dry_run' => true, 'provider' => 'freshmail'];
}
// ... FreshMail-API-Aufruf ...
return ['provider' => 'freshmail', 'sent' => true];
}
return $override;
}, 10, 4);

Alle Endpunkte erfordern manage_woocommerce + den Header X-WP-Nonce.

Methode Pfad Beschreibung
GET /polski-pro/v1/automation/rules Liste der Regeln
POST /polski-pro/v1/automation/rules Regel erstellen
GET /polski-pro/v1/automation/rules/{id} Einzelne Regel abrufen
PUT /polski-pro/v1/automation/rules/{id} Regel aktualisieren
DELETE /polski-pro/v1/automation/rules/{id} Löschen + Protokolle bereinigen
POST /polski-pro/v1/automation/rules/{id}/dry-run Auf einer Bestellung/einem Benutzer simulieren (order_id oder user_id)
GET /polski-pro/v1/automation/logs?limit=200 Audit-Protokoll (max. 500)
GET /polski-pro/v1/automation/schema Schema von Triggern/Filtern/Aktionen

Geben Sie im Regeleditor eine Order ID an und klicken Sie auf Run dry run. Die Engine:

  1. Wertet die Filter gegen die angegebene Bestellung aus.
  2. Prüft die Marketing-Einwilligung.
  3. Führt die Aktionen im Probelauf-Modus aus (verändert den Zustand nicht) und gibt das geplante Ergebnis zurück.
  4. Schreibt einen Eintrag in das Audit-Protokoll mit dem Flag dry_run = 1.
  • Indizes auf enabled, trigger_type, priority, group_label - die Engine ruft nur Regeln ab, die zum Trigger passen.
  • recent($limit) in AutomationLogRepository ist auf 500 Datensätze pro Abfrage begrenzt.
  • Webhooks haben ein Timeout von 10s.