Preskočiť na obsah

Pravidlá automatizácie

Modul Pravidlá automatizácie spúšťa akcie (e-mail, SMS, zmena stavu, poznámka, tag zákazníka, webhook) na základe udalostí v obchode. Pravidlá definujete v paneli WooCommerce > Automation Rules cez React SPA a engine ich vykonáva ako reakciu na trigger.

PrvokPopis
TriggerUdalosť WooCommerce spúšťajúca pravidlo (new_order, order_status_changed, …)
FilterLogická podmienka (order_total > 100, geo_scope in eu, …)
ActionOperácia na vykonanie (send_email, add_order_note, webhook, …)
Match modeall - všetky filtre splnené, any - stačí jeden
PriorityPoradie vykonávania (menšie = skôr)

Pravidlá sa ukladajú v tabuľke wp_polski_pro_automation_rules. Vykonania (matched/skipped, dry run, výsledok akcie, chyba) sa zapisujú do wp_polski_pro_automation_logs.

HodnotaKedy sa spúšťa
new_orderwoocommerce_new_order
order_status_changedwoocommerce_order_status_changed
new_customeruser_register
cart_abandoned(rezerva - integrácia s AbandonedCartService)
product_savedsave_post_product

Polia dostupné vo filtroch (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_methodZoznam metód z položiek dopravyin, not_in
product_idZoznam ID produktov v objednávkein, not_in
categoryZoznam ID product_cat z položiek objednávkyin, not_in

Operátor in / not_in prijíma zoznam oddelený čiarkami (PL,DE,FR).

Pole geo_scope vracia jednu zo štyroch hodnôt pre objednávku/používateľa:

HodnotaRozsah
plPoľsko (PL)
euKrajiny EÚ (27 členských štátov)
eeaEHP = EÚ + Nórsko, Island, Lichtenštajnsko
non_euZvyšok sveta

Príklad použitia: pravidlo odosiela inú šablónu marketingového e-mailu zákazníkom z EÚ (s GDPR poznámkou) než mimo EÚ.

TypParametre
send_emailto (voliteľné), subject, body, marketing (boolean vynucujúci súhlas)
send_smsDelegované na polski_pro/automation/send_sms (vyžaduje SmsNotificationService)
change_order_statusstatus, note
add_order_notenote, customer_note (boolean)
add_customer_tagtag (ukladá do user_meta polski_customer_tags)
webhookurl - POST s {subject_type, subject_id}

Akcie s params.marketing = true sa preskočia, ak zákazník nemá platný marketingový súhlas v polski_consent_log. Filter polski_pro/automation/has_marketing_consent umožňuje nahradiť predvolenú logiku kontroly súhlasu.

Ak chcete pridať vlastnú akciu (napr. integráciu s FreshMail/GetResponse), použite 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'];
}
// ... wywolanie API FreshMail ...
return ['provider' => 'freshmail', 'sent' => true];
}
return $override;
}, 10, 4);

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

MetódaCestaPopis
GET/polski-pro/v1/automation/rulesZoznam pravidiel
POST/polski-pro/v1/automation/rulesVytvorenie pravidla
GET/polski-pro/v1/automation/rules/{id}Získanie jedného pravidla
PUT/polski-pro/v1/automation/rules/{id}Aktualizácia pravidla
DELETE/polski-pro/v1/automation/rules/{id}Odstránenie + čistenie logov
POST/polski-pro/v1/automation/rules/{id}/dry-runSimulácia na objednávke/používateľovi (order_id alebo user_id)
GET/polski-pro/v1/automation/logs?limit=200Auditný denník (max 500)
GET/polski-pro/v1/automation/schemaSchéma triggerov/filtrov/akcií

V editore pravidla zadajte Order ID a kliknite Run dry run. Engine:

  1. Vyhodnotí filtre voči zadanej objednávke.
  2. Skontroluje marketingový súhlas.
  3. Vykoná akcie v režime dry-run (nemodifikuje stav) a vráti plánovaný výsledok.
  4. Zapíše záznam do auditného denníka s príznakom dry_run = 1.
  • Indexy na enabled, trigger_type, priority, group_label - engine načítava len pravidlá zodpovedajúce triggeru.
  • recent($limit) v AutomationLogRepository je obmedzené na 500 záznamov na dotaz.
  • Webhooky majú timeout 10 s.