Přeskočit na obsah

Pravidla automatizace

Modul Pravidla automatizace spouští akce (e-mail, SMS, změna stavu, poznámka, štítek zákazníka, webhook) na základě událostí v obchodě. Pravidla definujete v panelu WooCommerce > Automation Rules prostřednictvím React SPA a engine je vykonává v reakci na trigger.

PrvekPopis
TriggerUdálost WooCommerce spouštějící pravidlo (new_order, order_status_changed, …)
FilterLogická podmínka (order_total > 100, geo_scope in eu, …)
ActionOperace k provedení (send_email, add_order_note, webhook, …)
Match modeall - splněny všechny filtry, any - stačí jeden
PriorityPořadí vykonávání (menší = dříve)

Pravidla jsou ukládána v tabulce wp_polski_pro_automation_rules. Vykonání (matched/skipped, dry run, výsledek akce, chyba) putují do wp_polski_pro_automation_logs.

HodnotaKdy se spouští
new_orderwoocommerce_new_order
order_status_changedwoocommerce_order_status_changed
new_customeruser_register
cart_abandoned(rezerva - integrace s AbandonedCartService)
product_savedsave_post_product

Pole dostupná ve filtrech (FilterField):

PoleZdrojOperátory
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 na 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_methodSeznam metod z položek dopravyin, not_in
product_idSeznam ID produktů v objednávcein, not_in
categorySeznam ID product_cat z položek objednávkyin, not_in

Operátor in / not_in přijímá seznam oddělený čárkami (PL,DE,FR).

Pole geo_scope vrací jednu ze čtyř hodnot pro objednávku/uživatele:

HodnotaRozsah
plPolsko (PL)
euZemě EU (27 členských států)
eeaEHP = EU + Norsko, Island, Lichtenštejnsko
non_euZbytek světa

Příklad použití: pravidlo odešle zákazníkům z EU jinou šablonu marketingového e-mailu (s poznámkou o GDPR) než zákazníkům mimo EU.

TypParametry
send_emailto (volitelné), subject, body, marketing (boolean vynucující souhlas)
send_smsDelegováno na polski_pro/automation/send_sms (vyžaduje SmsNotificationService)
change_order_statusstatus, note
add_order_notenote, customer_note (boolean)
add_customer_tagtag (ukládá do user_meta polski_customer_tags)
webhookurl - POST s {subject_type, subject_id}

Akce s params.marketing = true jsou přeskočeny, pokud zákazník nemá platný marketingový souhlas v polski_consent_log. Filtr polski_pro/automation/has_marketing_consent umožňuje nahradit výchozí logiku kontroly souhlasu.

Chcete-li přidat vlastní akci (např. integraci s FreshMail/GetResponse), použijte filtr:

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'];
}
// ... volání API FreshMail ...
return ['provider' => 'freshmail', 'sent' => true];
}
return $override;
}, 10, 4);

Všechny endpointy vyžadují manage_woocommerce + hlavičku X-WP-Nonce.

MetodaCestaPopis
GET/polski-pro/v1/automation/rulesSeznam pravidel
POST/polski-pro/v1/automation/rulesVytvoření pravidla
GET/polski-pro/v1/automation/rules/{id}Načtení jednotlivého pravidla
PUT/polski-pro/v1/automation/rules/{id}Aktualizace pravidla
DELETE/polski-pro/v1/automation/rules/{id}Odstranění + čištění logů
POST/polski-pro/v1/automation/rules/{id}/dry-runSimulace na objednávce/uživateli (order_id nebo user_id)
GET/polski-pro/v1/automation/logs?limit=200Auditní deník (max 500)
GET/polski-pro/v1/automation/schemaSchéma triggerů/filtrů/akcí

V editoru pravidla zadejte Order ID a klikněte na Run dry run. Engine:

  1. Vyhodnotí filtry vůči zadané objednávce.
  2. Zkontroluje marketingový souhlas.
  3. Vykoná akce v režimu dry-run (nemodifikuje stav) a vrátí plánovaný výsledek.
  4. Zapíše záznam do auditního deníku s příznakem dry_run = 1.
  • Indexy na enabled, trigger_type, priority, group_label - engine načítá pouze pravidla odpovídající triggeru.
  • recent($limit) v AutomationLogRepository je omezeno na 500 záznamů na dotaz.
  • Webhooky mají timeout 10s.