Skip to content

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.

ElementBeschreibung
TriggerEin WooCommerce-Ereignis, das die Regel ausführt (new_order, order_status_changed, …)
FilterEine logische Bedingung (order_total > 100, geo_scope in eu, …)
ActionEine auszuführende Operation (send_email, add_order_note, webhook, …)
Match modeall - alle Filter erfüllt, any - einer genügt
PriorityAusfü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.

WertWann ausgelöst
new_orderwoocommerce_new_order
order_status_changedwoocommerce_order_status_changed
new_customeruser_register
cart_abandoned(reserviert - Integration mit AbandonedCartService)
product_savedsave_post_product

Verfügbare Felder in Filtern (FilterField):

FeldQuelleOperatoren
order_totalWC_Order::get_total()equals, gt, lt, not_equals
order_statusWC_Order::get_status()equals, in, not_in
item_countWC_Order::get_item_count()gt, lt, equals
billing_countryISO 3166-1 alpha-2equals, in, not_in
shipping_countryISO 3166-1 alpha-2 (Fallback auf billing)equals, in, not_in
geo_scopepl, eu, eea, non_euequals
customer_emailWC_Order::get_billing_email()equals, contains
payment_methodWC_Order::get_payment_method()equals, in
shipping_methodListe der Methoden aus der Versandpositionin, not_in
product_idListe der Produkt-IDs in der Bestellungin, not_in
categoryListe der product_cat-IDs aus den Bestellpositionenin, 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:

WertBereich
plPolen (PL)
euEU-Länder (27 Mitgliedstaaten)
eeaEWR = EU + Norwegen, Island, Liechtenstein
non_euDer 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.

TypParameter
send_emailto (optional), subject, body, marketing (Boolean, der Einwilligung erzwingt)
send_smsDelegiert an polski_pro/automation/send_sms (erfordert SmsNotificationService)
change_order_statusstatus, note
add_order_notenote, customer_note (Boolean)
add_customer_tagtag (speichert in das user_meta polski_customer_tags)
webhookurl - 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.

MethodePfadBeschreibung
GET/polski-pro/v1/automation/rulesListe der Regeln
POST/polski-pro/v1/automation/rulesRegel 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-runAuf einer Bestellung/einem Benutzer simulieren (order_id oder user_id)
GET/polski-pro/v1/automation/logs?limit=200Audit-Protokoll (max. 500)
GET/polski-pro/v1/automation/schemaSchema 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.