Ghid de integrare cu WooCommerce
Acest ghid conectează un magazin WooCommerce la Tajo. Integrarea are două jumătăți care lucrează împreună:
- Pluginul Tajo for WooCommerce: captează evenimente de interacțiune în timp real (comenzi, coșuri, rambursări, recenzii, formulare trimise) în interiorul WordPress și le livrează către Tajo printr-un outbox durabil și semnat.
- Conexiunea REST WooCommerce: Tajo citește clienții, comenzile, produsele, cupoanele, rambursările și recenziile magazinului tău pentru importul istoric și sincronizarea continuă. Vezi referința conectorului WooCommerce pentru configurarea doar prin REST.
Automatizarea de marketing în sine (e-mail, SMS, WhatsApp prin Brevo și alți furnizori) se configurează în Tajo, nu în plugin. Rolul pluginului este să scoată din WordPress evenimente în care poți avea încredere.
Cerințe preliminare
- WordPress 6.3+ cu acces de administrator
- PHP 7.4+
- WooCommerce 7.0+ (pluginul funcționează și pe site-uri WordPress fără WooCommerce; adaptoarele de comerț rămân pur și simplu inactive)
- Cont Tajo cu o conexiune WordPress creată
- HTTPS pe endpointul Tajo (întotdeauna adevărat pentru Tajo găzduit)
Pasul 1: instalează pluginul Tajo for WooCommerce
Instalare manuală
# Download the plugincd wp-content/pluginswget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip
# Verify and unzipunzip tajo-woocommerce-latest.zipApoi activează-l din panoul de administrare WordPress:
- Mergi la Module → Module instalate
- Caută “Tajo for WooCommerce”
- Apasă pe Activează
Poți încărca arhiva zip și direct prin Module → Adaugă nou → Încarcă modul. O sumă de control SHA-256 este publicată alături de fiecare versiune la tajo.io/downloads/woocommerce/. Pluginul nu este încă listat în directorul WordPress.org; instalarea manuală este calea acceptată astăzi.
Pasul 2: configurează conexiunea
Mergi la WooCommerce → Tajo (pe site-urile fără WooCommerce: Setări → Tajo) și introdu cele trei valori din conexiunea ta WordPress din Tajo:
| Câmp | Valoare |
|---|---|
| Endpointul Tajo | URL-ul HTTPS de webhook afișat în Tajo, de exemplu https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement |
| Binding ID | Binding ID-ul conexiunii, luat din Tajo |
| Secretul de semnare | Secretul partajat (între 32 și 256 de caractere). Pluginul generează la activare un secret local puternic; lipește-l în Tajo sau lipește aici secretul din Tajo |
Nu ai de adăugat constante cu chei de API în wp-config.php. Evenimentele rămân în siguranță în coada outboxului local până când sunt salvate toate cele trei valori.
Apoi verifică traseul de la un capăt la altul:
- Apasă pe Queue test event, apoi pe Process now.
- Tabelul outboxului de livrare ar trebui să arate evenimentul ca livrat.
- În Tajo, confirmă că evenimentul
connection.testa ajuns pe conexiunea WordPress.
Ce trimite pluginul
Fiecare eveniment este un plic compact, cu date personale reduse la minimum, semnat cu HMAC-SHA256. Din WordPress ies doar câmpurile de identitate folosite pentru interacțiune (e-mail, telefon, ID-uri locale) plus metadate limitate ale evenimentului, niciodată nume, adrese poștale, adrese IP, user agenți, conținutul comentariilor, câmpuri libere de formular, note de comandă sau date de plată.
Evenimente WooCommerce
| Hook | Eveniment |
|---|---|
woocommerce_created_customer / woocommerce_update_customer | customer.created / customer.updated |
woocommerce_new_product / woocommerce_update_product | product.created / product.updated |
woocommerce_add_to_cart, eliminarea unui produs, aplicarea sau eliminarea unui cupon | cart.updated (cu rezumatul coșului pentru fluxurile de abandon) |
woocommerce_cart_emptied | cart.emptied |
woocommerce_new_order / woocommerce_update_order | order.placed / order.updated |
woocommerce_order_status_changed | order.status_changed (+ order.fulfilled la finalizare) |
woocommerce_payment_complete | order.paid |
woocommerce_order_refunded | refund.created |
| Actualizări de status din WooCommerce Subscriptions | subscription.status_changed |
Evenimentele de comandă conțin numărul comenzii, statusul, moneda, totalurile, liniile de comandă și URL-uri gata de folosit pentru recenzie și pentru repetarea comenzii, suficient pentru automatizări după cumpărare și de recâștigare fără un apel API suplimentar.
Evenimente WordPress
contact.created/contact.updated/contact.deletedpentru conturile de utilizatorcontent.published/content.updated/content.unpublishedpentru conținutul publiccomment.created/comment.status_changedpentru comentariile vizitatorilor și recenziile de produse (notele interne de comandă din WooCommerce, pingback-urile și trackback-urile nu sunt emise niciodată)form.submittedpentru formularele trimise cu succes prin Contact Form 7, WPForms, Gravity Forms și Fluent Forms; se extrag doar câmpurile de identitate de tip e-mail sau telefon și metadatele formularului, restul câmpurilor trimise sunt aruncate
Fiabilitate: outboxul de livrare
Pluginul nu trimite niciodată evenimente direct către Tajo dintr-o încărcare de pagină. Fiecare eveniment este scris mai întâi într-un tabel outbox local, apoi livrat de WP-Cron cu:
- Backoff exponențial limitat (până la 8 încercări, respectând
Retry-After) - Dead letters cu Replay dead letters dintr-un singur clic în panoul de administrare
- Limite de retenție, ca un endpoint inaccesibil să nu poată aduna niciodată date personale (livrate: 7 zile; în coadă: 30 de zile; dead letters: 30 de zile de la ultima actualizare)
- ID-uri de eveniment idempotente, ca reîncercările și retrimiterile să nu producă niciodată duplicate în aval
Dacă găzduirea ta dezactivează WP-Cron (DISABLE_WP_CRON), apelează wp-cron.php dintr-un planificator real cel puțin o dată pe minut.
Consimțământul nu este niciodată dedus
Crearea unui cont, finalizarea comenzii, cumpărarea și formularele generice trimise nu sunt tratate ca acord de marketing. Evenimentele native poartă o listă goală de consimțăminte. Ca să înregistrezi un acord explicit (de exemplu dintr-o casetă bifată de abonare la newsletter), emite-l prin hookul de extensie:
do_action( 'tajo_engagement_emit', 'consent.updated', array( 'email' => $email ), array( 'policyVersion' => '2026-07' ), array( array( 'channel' => 'email', 'status' => 'opt_in', // or 'opt_out' 'purpose' => 'marketing', 'source' => 'newsletter_checkbox', 'evidence' => array( 'formId' => 'newsletter-footer', 'field' => 'marketing_email' ), ), ), gmdate( 'c' ));Același hook permite oricărui plugin sau temă să emită evenimente proprii; totul trece prin același sanitizator, prin același outbox și prin aceeași semnătură.
Pasul 3: importul istoric
Evenimentele în timp real acoperă tot ce se întâmplă de la instalare încolo. Pentru istoricul de dinaintea pluginului, conexiunea REST WooCommerce din Tajo importă clienții, comenzile, produsele, cupoanele, rambursările și recenziile existente, configurată în întregime din Tajo cu o cheie pentru API-ul REST WooCommerce (WooCommerce → Setări → Avansat → REST API, permisiune de citire). Vezi referința conectorului WooCommerce pentru detalii.
Confidențialitate și GDPR
- Pluginul se înregistrează în Unelte → Exportă date personale și Unelte → Șterge date personale din WordPress; evenimentele păstrate în outbox pentru un e-mail care se potrivește sunt exportate sau șterse local.
- Ștergerea și livrarea împart un mutex fail-closed, așa că o ștergere nu poate raporta niciodată că s-a încheiat în timp ce un payload este în curs de trimitere.
- Ștergerea locală acoperă doar outboxul din WordPress; trimite cererea corespunzătoare și în Tajo pentru datele din aval.
- Dezactivarea pune livrarea pe pauză, dar păstrează configurarea și evenimentele din coadă; ștergerea pluginului elimină definitiv outboxul, setările, secretul și planificările.
Compatibilitate
- HPOS: pluginul declară compatibilitate cu WooCommerce High-Performance Order Storage și folosește doar obiecte CRUD și hookuri publice.
- WooCommerce Subscriptions: schimbările de status ale abonamentelor sunt captate când extensia este activă.
- Multisite: dezinstalarea face curățenie pe fiecare site din rețea.
Referință pentru operare
Descoperirea server-to-server și controlul outboxului sunt disponibile administratorilor prin autentificare cu Application Password:
| Metodă | Rută | Scop |
|---|---|---|
GET | /wp-json/tajo/v1/capabilities | Versiunea pluginului, adaptoarele detectate, inventarul de evenimente, starea outboxului |
GET | /wp-json/tajo/v1/outbox | Numărul de intrări din outbox (payloadurile nu sunt expuse niciodată) |
POST | /wp-json/tajo/v1/outbox/process | Procesează imediat un lot |
POST | /wp-json/tajo/v1/outbox/replay | Retrimite dead letters |
Depanare
| Simptom | Cauză și rezolvare |
|---|---|
| Evenimentele rămân la “Queued” | Endpointul, binding ID-ul sau secretul nu sunt încă salvate; livrarea stă pe pauză până când toate trei sunt configurate |
| Evenimentele rămân la “Retrying” | Endpointul Tajo este inaccesibil de pe găzduirea ta sau WP-Cron nu rulează; verifică coloana de eroare din tabelul outboxului și configurarea cronului |
| Se adună dead letters | O eroare care nu se poate reîncerca (de obicei un binding ID sau un secret greșit); corectează configurarea, apoi apasă pe Replay dead letters |
| ”Enter a valid HTTPS Tajo webhook endpoint” | Endpointul trebuie să fie HTTPS și fără credențiale incluse în URL |
| Evenimentul de test a fost livrat, dar în Tajo nu apare nimic | Verifică dacă ai lipit binding ID-ul din același workspace sau din aceeași conexiune Tajo căreia îi aparține endpointul |
Pașii următori
- Referința conectorului WooCommerce: sincronizarea REST, detaliile semnăturii de webhook, cheile de configurare
- Sincronizarea clienților: cum mapezi clienții WooCommerce în sistemul tău de evidență
- Configurează în Tajo automatizări pentru coș abandonat, după cumpărare și de recâștigare folosind evenimentele
cart.updated,order.placedșiorder.fulfilled