Guide til WooCommerce-integration
Denne guide forbinder en WooCommerce-butik til Tajo. Integrationen har to halvdele, der arbejder sammen:
- Pluginnet Tajo for WooCommerce fanger engagementhændelser i realtid (ordrer, kurve, refusioner, anmeldelser, formularindsendelser) inde i WordPress og leverer dem til Tajo gennem en robust, signeret outbox.
- WooCommerce REST-forbindelsen lader Tajo læse din butiks kunder, ordrer, produkter, rabatkoder, refusioner og anmeldelser til historisk import og løbende synkronisering. Se referencen for WooCommerce-connectoren for opsætningen med REST alene.
Selve marketingautomatiseringen (e-mail, SMS, WhatsApp via Brevo og andre udbydere) sættes op i Tajo, ikke i pluginnet. Pluginnets opgave er at få pålidelige hændelser ud af WordPress.
Forudsætninger
- WordPress 6.3+ med admin-adgang
- PHP 7.4+
- WooCommerce 7.0+ (pluginnet virker også på WordPress-sites uden WooCommerce, hvor commerce-adapterne blot forbliver inaktive)
- Tajo-konto med en oprettet WordPress-forbindelse
- HTTPS på Tajo-endpointet (altid opfyldt for hostet Tajo)
Trin 1: Installer pluginnet Tajo for WooCommerce
Manuel installation
# Download the plugincd wp-content/pluginswget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip
# Verify and unzipunzip tajo-woocommerce-latest.zipAktivér det derefter fra WordPress-administrationen:
- Gå til Plugins → Installed Plugins
- Find “Tajo for WooCommerce”
- Klik på Activate
Du kan også uploade zip-filen direkte via Plugins → Add New → Upload Plugin. Der offentliggøres en SHA-256-kontrolsum sammen med hver udgivelse på tajo.io/downloads/woocommerce/. Pluginnet er endnu ikke opført i kataloget på WordPress.org; manuel installation er den understøttede vej i dag.
Trin 2: Konfigurer forbindelsen
Gå til WooCommerce → Tajo (på sites uden WooCommerce: Settings → Tajo), og indtast de tre værdier fra din Tajo-WordPress-forbindelse:
| Felt | Værdi |
|---|---|
| Tajo-endpoint | Den HTTPS-webhook-URL, der vises i Tajo, f.eks. https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement |
| Binding-ID | Forbindelsens binding-ID fra Tajo |
| Signeringsnøgle | Den delte hemmelighed (32-256 tegn). Pluginnet danner en stærk lokal nøgle ved aktivering; indsæt den i Tajo, eller indsæt Tajos nøgle her |
Der er ingen API-nøglekonstanter, du skal tilføje i wp-config.php. Hændelser står trygt i kø i den lokale outbox, indtil alle tre værdier er gemt.
Kontrollér derefter hele kæden fra ende til anden:
- Klik på Queue test event og derefter på Process now.
- Tabellen over leverings-outboxen bør vise hændelsen som leveret.
- Bekræft i Tajo, at hændelsen
connection.tester ankommet på WordPress-forbindelsen.
Hvad pluginnet sender
Hver hændelse er en kompakt konvolut med minimeret persondata, signeret med HMAC-SHA256. Kun identitetsfelter til engagement (e-mail, telefon, lokale ID’er) plus afgrænsede hændelsesmetadata forlader WordPress, aldrig navne, postadresser, IP-adresser, user agents, kommentartekster, vilkårlige formularfelter, ordrenoter eller betalingsoplysninger.
WooCommerce-hændelser
| Hook | Hændelse |
|---|---|
woocommerce_created_customer / woocommerce_update_customer | customer.created / customer.updated |
woocommerce_new_product / woocommerce_update_product | product.created / product.updated |
woocommerce_add_to_cart, fjernelse af vare, tilføjelse/fjernelse af rabatkode | cart.updated (med kurvoversigt til flows for forladte kurve) |
woocommerce_cart_emptied | cart.emptied |
woocommerce_new_order / woocommerce_update_order | order.placed / order.updated |
woocommerce_order_status_changed | order.status_changed (+ order.fulfilled ved gennemførelse) |
woocommerce_payment_complete | order.paid |
woocommerce_order_refunded | refund.created |
| Statusopdateringer fra WooCommerce Subscriptions | subscription.status_changed |
Ordrehændelser indeholder ordrenummer, status, valuta, totaler, ordrelinjer og klar-til-brug-URL’er til anmeldelse og genbestilling, nok til automatiseringer efter køb og til win-back uden et opfølgende API-kald.
WordPress-hændelser
contact.created/contact.updated/contact.deletedfor brugerkonticontent.published/content.updated/content.unpublishedfor offentligt indholdcomment.created/comment.status_changedfor besøgendes kommentarer og produktanmeldelser (interne WooCommerce-ordrenoter, pingbacks og trackbacks udsendes aldrig)form.submittedfor gennemførte indsendelser fra Contact Form 7, WPForms, Gravity Forms og Fluent Forms, hvor kun typede identitetsfelter med e-mail og telefon samt formularmetadata udtrækkes; vilkårlige indsendte felter kasseres
Pålidelighed: leverings-outboxen
Pluginnet sender aldrig hændelser til Tajo direkte fra en sideindlæsning. Hver hændelse skrives først til en lokal outbox-tabel og leveres derefter af WP-Cron med:
- Afgrænset eksponentiel backoff (op til 8 forsøg, med respekt for
Retry-After) - Dead letters med Replay dead letters i administrationen med ét klik
- Opbevaringsgrænser, så et endpoint, der ikke kan nås, aldrig kan hobe persondata op (leveret: 7 dage; i kø: 30 dage; dead letters: 30 dage efter seneste opdatering)
- Idempotente hændelses-ID’er, så nye forsøg og replays aldrig giver dubletter længere nede i kæden
Hvis din hostingudbyder slår WP-Cron fra (DISABLE_WP_CRON), skal du kalde wp-cron.php fra en rigtig scheduler mindst én gang i minuttet.
Samtykke udledes aldrig
Oprettelse af konto, checkout, køb og almindelige formularindsendelser behandles ikke som marketingsamtykke. Indbyggede hændelser bærer en tom samtykkeliste. Vil du registrere udtrykkeligt samtykke (for eksempel fra et afkrydset felt om nyhedsbrev), skal du sende det via udvidelses-hooket:
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' ));Det samme hook lader ethvert plugin eller tema udsende egne hændelser; alt passerer gennem den samme sanitizer, den samme outbox og den samme signatur.
Trin 3: Historisk import
Hændelser i realtid dækker alt fra installationen og frem. Historikken fra før pluginnet henter Tajos WooCommerce REST-forbindelse ind: eksisterende kunder, ordrer, produkter, rabatkoder, refusioner og anmeldelser, sat op udelukkende på Tajo-siden med en WooCommerce REST API-nøgle (WooCommerce → Settings → Advanced → REST API, læserettighed). Se referencen for WooCommerce-connectoren for detaljer.
Privatliv og GDPR
- Pluginnet registrerer sig i WordPress under Tools → Export Personal Data og Tools → Erase Personal Data; gemte outbox-hændelser for en matchende e-mail eksporteres eller slettes lokalt.
- Sletning og levering deler en fail-closed-mutex, så en sletning aldrig kan meldes gennemført, mens en payload er undervejs.
- Lokal sletning dækker kun WordPress-outboxen, indsend den tilsvarende anmodning i Tajo for data længere nede i kæden.
- Deaktivering sætter leveringen på pause, men bevarer konfiguration og hændelser i kø; sletter du pluginnet, fjernes outbox, indstillinger, nøgle og planlagte kørsler permanent.
Kompatibilitet
- HPOS: pluginnet erklærer kompatibilitet med WooCommerce High-Performance Order Storage og bruger kun CRUD-objekter og offentlige hooks.
- WooCommerce Subscriptions: ændringer i abonnementsstatus opfanges, når udvidelsen er aktiv.
- Multisite: afinstallation rydder op på alle sites i netværket.
Driftsreference
Server-til-server-opdagelse og styring af outboxen er tilgængelig for administratorer via godkendelse med Application Password:
| Metode | Rute | Formål |
|---|---|---|
GET | /wp-json/tajo/v1/capabilities | Pluginversion, fundne adaptere, hændelsesoversigt, outboxens tilstand |
GET | /wp-json/tajo/v1/outbox | Antal i outboxen (payloads eksponeres aldrig) |
POST | /wp-json/tajo/v1/outbox/process | Behandl en batch med det samme |
POST | /wp-json/tajo/v1/outbox/replay | Afspil dead letters igen |
Fejlfinding
| Symptom | Årsag og løsning |
|---|---|
| Hændelser bliver stående som “Queued” | Endpoint, binding-ID eller nøgle er ikke gemt endnu, leveringen er på pause, indtil alle tre er konfigureret |
| Hændelser bliver stående som “Retrying” | Tajo-endpointet kan ikke nås fra din host, eller WP-Cron kører ikke, tjek fejlkolonnen i outbox-tabellen og din cron-opsætning |
| Dead letters hober sig op | En fejl, der ikke kan prøves igen (typisk et forkert binding-ID eller en forkert nøgle), ret konfigurationen, og vælg derefter Replay dead letters |
| ”Enter a valid HTTPS Tajo webhook endpoint” | Endpointet skal være HTTPS uden indlejrede loginoplysninger |
| Testhændelse leveret, men intet i Tajo | Kontrollér, at du har indsat binding-ID’et fra det samme Tajo-workspace og den samme forbindelse, som endpointet hører til |
Næste trin
- Reference for WooCommerce-connectoren, REST-synkronisering, detaljer om webhook-signatur, konfigurationsnøgler
- Kundesynkronisering, sådan mapper du WooCommerce-kunder ind i dit primære datasystem
- Sæt automatiseringer for forladte kurve, efter køb og win-back op i Tajo ud fra hændelserne
cart.updated,order.placedogorder.fulfilled