Vraag vroegtijdige toegang aan

Vul je voornaam en een e-mailadres of telefoonnummer in. We nemen daarna contact met je op en leggen uit hoe je toegang krijgt tot Tajo.

WooCommerce-integratiehandleiding

Deze gids koppelt een WooCommerce-winkel aan Tajo. De integratie bestaat uit twee helften die samenwerken:

  • Tajo for WooCommerce-plugin: legt realtime engagement-events (bestellingen, winkelwagens, terugbetalingen, reviews, formulierinzendingen) vast binnen WordPress en levert ze bij Tajo af via een duurzame, ondertekende outbox.
  • WooCommerce REST-verbinding: Tajo leest de klanten, bestellingen, producten, kortingsbonnen, terugbetalingen en reviews van je winkel voor historische import en doorlopende synchronisatie. Zie de referentie van de WooCommerce-connector voor de opzet met alleen REST.

Marketingautomatisering zelf (e-mail, SMS, WhatsApp via Brevo en andere providers) stel je in Tajo in, niet in de plugin. De taak van de plugin is om betrouwbare events uit WordPress te krijgen.

Vereisten

  • WordPress 6.3+ met beheerderstoegang
  • PHP 7.4+
  • WooCommerce 7.0+ (de plugin werkt ook op WordPress-sites zonder WooCommerce, de commerce-adapters blijven dan simpelweg inactief)
  • Tajo-account met een aangemaakte WordPress-verbinding
  • HTTPS op het Tajo-endpoint (altijd het geval bij gehost Tajo)

Stap 1: installeer de Tajo for WooCommerce-plugin

Handmatige installatie

Terminal window
# Download the plugin
cd wp-content/plugins
wget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip
# Verify and unzip
unzip tajo-woocommerce-latest.zip

Activeer de plugin daarna vanuit de WordPress-beheeromgeving:

  1. Ga naar Plugins → Installed Plugins
  2. Zoek “Tajo for WooCommerce”
  3. Klik op Activate

Je kunt de zip ook rechtstreeks uploaden via Plugins → Add New → Upload Plugin. Bij elke release wordt een SHA-256-checksum gepubliceerd op tajo.io/downloads/woocommerce/. De plugin staat nog niet in de WordPress.org-directory; handmatige installatie is vandaag de ondersteunde route.

Stap 2: configureer de verbinding

Ga naar WooCommerce → Tajo (op sites zonder WooCommerce: Settings → Tajo) en vul de drie waarden uit je Tajo WordPress-verbinding in:

VeldWaarde
Tajo-endpointDe HTTPS-webhook-URL die in Tajo staat, bijvoorbeeld https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement
Binding-IDHet binding-ID van de verbinding uit Tajo
OndertekeningssleutelHet gedeelde geheim (32 tot 256 tekens). De plugin genereert bij activering een sterk lokaal geheim; plak dat in Tajo, of plak hier het geheim van Tajo

Er zijn geen API-sleutelconstanten die je aan wp-config.php moet toevoegen. Events blijven veilig in de lokale outbox staan totdat alle drie de waarden zijn opgeslagen.

Controleer daarna de hele keten van begin tot eind:

  1. Klik op Queue test event en daarna op Process now.
  2. In de tabel met de afleveringsoutbox hoort het event als afgeleverd te staan.
  3. Bevestig in Tajo dat het event connection.test op de WordPress-verbinding is aangekomen.

Wat de plugin verstuurt

Elk event is een compacte envelop met zo min mogelijk persoonsgegevens, ondertekend met HMAC-SHA256. Alleen identiteitsvelden voor engagement (e-mailadres, telefoonnummer, lokale ID’s) plus begrensde eventmetadata verlaten WordPress, nooit namen, postadressen, IP-adressen, user agents, reactieteksten, willekeurige formuliervelden, ordernotities of betaalgegevens.

WooCommerce-events

HookEvent
woocommerce_created_customer / woocommerce_update_customercustomer.created / customer.updated
woocommerce_new_product / woocommerce_update_productproduct.created / product.updated
woocommerce_add_to_cart, item verwijderen, kortingsbon toepassen of verwijderencart.updated (met winkelwagensamenvatting voor flows rond verlaten winkelwagens)
woocommerce_cart_emptiedcart.emptied
woocommerce_new_order / woocommerce_update_orderorder.placed / order.updated
woocommerce_order_status_changedorder.status_changed (plus order.fulfilled bij afronding)
woocommerce_payment_completeorder.paid
woocommerce_order_refundedrefund.created
Statusupdates van WooCommerce Subscriptionssubscription.status_changed

Bestellingsevents bevatten het bestelnummer, de status, de valuta, totalen, regelitems en direct bruikbare review- en herbestel-URL’s, genoeg voor automatiseringen na aankoop en voor win-back zonder een extra API-aanroep.

WordPress-events

  • contact.created / contact.updated / contact.deleted voor gebruikersaccounts
  • content.published / content.updated / content.unpublished voor openbare content
  • comment.created / comment.status_changed voor reacties van bezoekers en productreviews (interne WooCommerce-ordernotities, pingbacks en trackbacks worden nooit verstuurd)
  • form.submitted voor geslaagde inzendingen van Contact Form 7, WPForms, Gravity Forms en Fluent Forms. Alleen getypeerde identiteitsvelden voor e-mail en telefoon plus formuliermetadata worden eruit gehaald; willekeurig ingezonden velden worden weggegooid

Betrouwbaarheid: de afleveringsoutbox

De plugin vuurt nooit rechtstreeks vanuit een paginaverzoek events af op Tajo. Elk event wordt eerst naar een lokale outboxtabel geschreven en daarna door WP-Cron afgeleverd, met:

  • Begrensde exponentiële backoff (maximaal 8 pogingen, met respect voor Retry-After)
  • Dead letters met Replay dead letters in de beheeromgeving, in één klik
  • Bewaarlimieten zodat een onbereikbaar endpoint nooit persoonsgegevens kan opstapelen (afgeleverd: 7 dagen; in de wachtrij: 30 dagen; dead letters: 30 dagen na de laatste wijziging)
  • Idempotente event-ID’s, zodat nieuwe pogingen en replays verderop nooit dubbel aankomen

Schakelt je hostingpartij WP-Cron uit (DISABLE_WP_CRON), roep wp-cron.php dan minstens één keer per minuut aan vanuit een echte scheduler.

Toestemming wordt nooit afgeleid

Het aanmaken van een account, checkout, een aankoop en gewone formulierinzendingen gelden niet als marketingtoestemming. Ingebouwde events dragen een lege toestemmingslijst. Wil je expliciete toestemming vastleggen (bijvoorbeeld uit een aangevinkt nieuwsbriefvakje), stuur die dan via de extensiehook:

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' )
);

Met dezelfde hook kan elke plugin of elk thema eigen events versturen; alles gaat door dezelfde sanitizer, dezelfde outbox en dezelfde ondertekening.

Stap 3: historische import

Realtime events dekken alles vanaf de installatie. Voor de geschiedenis van vóór de plugin importeert de WooCommerce REST-verbinding van Tajo bestaande klanten, bestellingen, producten, kortingsbonnen, terugbetalingen en reviews, volledig ingesteld aan de Tajo-kant met een WooCommerce REST API-sleutel (WooCommerce → Settings → Advanced → REST API, leesrechten). Zie de referentie van de WooCommerce-connector voor details.

Privacy en AVG

  • De plugin registreert zich bij WordPress Tools → Export Personal Data en Tools → Erase Personal Data; bewaarde outbox-events met een overeenkomend e-mailadres worden lokaal geëxporteerd of gewist.
  • Wissen en afleveren delen een fail-closed mutex, zodat een wisverzoek nooit als afgerond gemeld kan worden terwijl een payload halverwege de verzending is.
  • Lokaal wissen dekt alleen de WordPress-outbox. Dien voor gegevens verderop in de keten het bijbehorende verzoek in Tajo in.
  • Deactiveren pauzeert de aflevering maar behoudt de configuratie en de events in de wachtrij; de plugin verwijderen haalt de outbox, de instellingen, het geheim en de schema’s definitief weg.

Compatibiliteit

  • HPOS: de plugin verklaart compatibiliteit met WooCommerce High-Performance Order Storage en gebruikt alleen CRUD-objecten en publieke hooks.
  • WooCommerce Subscriptions: statuswijzigingen van abonnementen worden vastgelegd als de extensie actief is.
  • Multisite: bij het verwijderen wordt elke site in het netwerk opgeruimd.

Operationele referentie

Server-naar-serverdetectie en besturing van de outbox zijn via Application Password-authenticatie beschikbaar voor beheerders:

MethodeRouteDoel
GET/wp-json/tajo/v1/capabilitiesPluginversie, gedetecteerde adapters, eventinventaris, gezondheid van de outbox
GET/wp-json/tajo/v1/outboxAantallen in de outbox (payloads worden nooit prijsgegeven)
POST/wp-json/tajo/v1/outbox/processVerwerk direct een batch
POST/wp-json/tajo/v1/outbox/replaySpeel dead letters opnieuw af

Problemen oplossen

SymptoomOorzaak en oplossing
Events blijven op “Queued” staanEndpoint, binding-ID of geheim is nog niet opgeslagen. De aflevering staat gepauzeerd tot alle drie zijn geconfigureerd
Events blijven op “Retrying” staanHet Tajo-endpoint is onbereikbaar vanaf je hosting, of WP-Cron draait niet. Controleer de foutkolom in de outboxtabel en je croninstelling
Dead letters stapelen zich opEen fout waarbij opnieuw proberen niet helpt (meestal een verkeerd binding-ID of geheim). Herstel de configuratie en klik daarna op Replay dead letters
“Enter a valid HTTPS Tajo webhook endpoint”Het endpoint moet HTTPS zijn, zonder ingebedde inloggegevens
Testevent is afgeleverd maar er staat niets in TajoControleer of je het binding-ID hebt geplakt uit dezelfde Tajo-workspace of -verbinding waar het endpoint bij hoort

Volgende stappen

  • Referentie van de WooCommerce-connector: REST-synchronisatie, details van de webhookondertekening, configuratiesleutels
  • Klantsynchronisatie: WooCommerce-klanten koppelen aan je system of record
  • Stel automatiseringen voor verlaten winkelwagens, na aankoop en win-back in Tajo in op basis van de events cart.updated, order.placed en order.fulfilled

Vraag vroegtijdige toegang aan

Vul je voornaam en een e-mailadres of telefoonnummer in. We nemen daarna contact met je op en leggen uit hoe je toegang krijgt tot Tajo.

automatische herkenning
AI-assistent

Hallo! Stel me vragen over de documentatie.