---
title: "WooCommerce-Integrationsleitfaden | Tajo"
description: "Verbinde deinen WooCommerce-Store mit dem Plugin Tajo for WooCommerce mit Tajo: Engagement-Events, dauerhafte Zustellung und datensparsame Kundendaten. In Arbeit, noch nicht durchgängig verifiziert."
url: https://tajo.io/de/docs/ecommerce-platforms/woocommerce/
markdown: https://tajo.io/de/docs/ecommerce-platforms/woocommerce.md
lang: de-DE
author: "Set Noa"
author_url: https://tajo.io/de/set-noa/
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# WooCommerce-Integrationsleitfaden

[Set Noa](https://tajo.io/de/set-noa/)

Dieser Leitfaden verbindet einen WooCommerce-Store mit Tajo. Die Integration besteht aus zwei Hälften, die zusammenarbeiten:

- **Plugin Tajo for WooCommerce**: erfasst Engagement-Events (Bestellungen, Warenkörbe, Rückerstattungen, Bewertungen, Formularübermittlungen) innerhalb von WordPress, sobald sie eintreten, und liefert sie über eine dauerhafte, signierte Outbox an Tajo. Am 14. Oktober 2026 wurde das Plugin auf einer lokalen Seite getestet; die Zustellung an Tajo wurde noch nicht verifiziert.
- **WooCommerce-REST-Verbindung**: Tajo liest Kund:innen, Bestellungen, Produkte, Gutscheine, Rückerstattungen und Bewertungen deines Stores für den historischen Import und den laufenden Sync. Das reine REST-Setup beschreibt die [WooCommerce-Connector-Referenz](https://tajo.io/de/docs/connectors/ecommerce/woocommerce/).

Die Marketing-Automatisierung selbst (E-Mail, SMS, WhatsApp über Brevo und andere Anbieter) richtest du in Tajo ein, nicht im Plugin. Die Aufgabe des Plugins ist es, verlässliche Events aus WordPress herauszubekommen.

## Voraussetzungen

- **WordPress 6.3+** mit Admin-Zugang
- **PHP 7.4+**
- **WooCommerce 7.0+** (das Plugin funktioniert auch auf WordPress-Sites ohne WooCommerce, die Commerce-Adapter bleiben dann einfach inaktiv)
- **Tajo-Konto** mit einer angelegten WordPress-Verbindung
- HTTPS auf dem Tajo-Endpunkt (bei gehostetem Tajo immer gegeben)

## Schritt 1: Das Plugin Tajo for WooCommerce installieren

### Manuelle Installation

```bash
# 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
```

Aktiviere es anschließend im WordPress-Admin:

1. Gehe zu **Plugins → Installed Plugins**
2. Suche „Tajo for WooCommerce“
3. Klicke auf **Activate**

Du kannst die ZIP-Datei auch direkt über **Plugins → Add New → Upload Plugin** hochladen. Zu jedem Release wird unter [tajo.io/downloads/woocommerce/](https://tajo.io/downloads/woocommerce/tajo-woocommerce-1.0.0.zip.sha256) eine SHA-256-Prüfsumme veröffentlicht. Das Plugin ist noch nicht im WordPress.org-Verzeichnis gelistet; die manuelle Installation ist heute der unterstützte Weg.

## Schritt 2: Die Verbindung konfigurieren

Gehe zu **WooCommerce → Tajo** (auf Sites ohne WooCommerce: **Settings → Tajo**) und trage die drei Werte aus deiner Tajo-WordPress-Verbindung ein:

| Feld | Wert |
| --- | --- |
| **Tajo-Endpunkt** | Die HTTPS-Webhook-URL, die in Tajo angezeigt wird, z. B. `https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement` |
| **Binding-ID** | Die Binding-ID der Verbindung aus Tajo |
| **Signing Secret** | Das gemeinsame Secret (32-256 Zeichen). Das Plugin erzeugt bei der Aktivierung ein starkes lokales Secret; füge es in Tajo ein oder trage hier das Secret aus Tajo ein |

Es gibt keine API-Key-Konstanten, die du in `wp-config.php` ergänzen musst. Events bleiben sicher in der lokalen Outbox in der Warteschlange, bis alle drei Werte gespeichert sind.

Prüfe danach die Strecke von Anfang bis Ende:

1. Klicke auf **Queue test event** und dann auf **Process now**.
2. Die Tabelle der Zustell-Outbox sollte das Event als zugestellt anzeigen.
3. Prüfe in Tajo, dass das Event `connection.test` an der WordPress-Verbindung angekommen ist.

## Was das Plugin sendet

Jedes Event ist ein kompakter, datensparsamer Umschlag, signiert mit HMAC-SHA256. WordPress verlassen nur Engagement-Identitätsfelder (E-Mail, Telefon, lokale IDs) sowie begrenzte Event-Metadaten, nie Namen, Postadressen, IP-Adressen, User Agents, Kommentartexte, beliebige Formularfelder, Bestellnotizen oder Zahlungsdaten.

### WooCommerce-Events

| Hook | Event |
| --- | --- |
| `woocommerce_created_customer` / `woocommerce_update_customer` | `customer.created` / `customer.updated` |
| `woocommerce_new_product` / `woocommerce_update_product` | `product.created` / `product.updated` |
| `woocommerce_add_to_cart`, Entfernen von Positionen, Gutschein anwenden oder entfernen | `cart.updated` (mit Warenkorb-Zusammenfassung für Abbruch-Flows) |
| `woocommerce_cart_emptied` | `cart.emptied` |
| `woocommerce_new_order` / `woocommerce_update_order` | `order.placed` / `order.updated` |
| `woocommerce_order_status_changed` | `order.status_changed` (+ `order.fulfilled` bei Abschluss) |
| `woocommerce_payment_complete` | `order.paid` |
| `woocommerce_order_refunded` | `refund.created` |
| Statusänderungen von WooCommerce Subscriptions | `subscription.status_changed` |

Bestell-Events enthalten Bestellnummer, Status, Währung, Summen, Positionen und fertige URLs für Bewertung und Nachbestellung, genug für Automationen nach dem Kauf und zur Rückgewinnung, ganz ohne weiteren API-Aufruf.

### WordPress-Events

- `contact.created` / `contact.updated` / `contact.deleted` für Benutzerkonten
- `content.published` / `content.updated` / `content.unpublished` für öffentliche Inhalte
- `comment.created` / `comment.status_changed` für Besucherkommentare und Produktbewertungen (interne WooCommerce-Bestellnotizen, Pingbacks und Trackbacks werden nie gesendet)
- `form.submitted` für erfolgreiche Übermittlungen von **Contact Form 7**, **WPForms**, **Gravity Forms** und **Fluent Forms**, extrahiert werden nur typisierte Identitätsfelder für E-Mail und Telefon sowie Formular-Metadaten; beliebige übermittelte Felder werden verworfen

## Zuverlässigkeit: die Zustell-Outbox

Das Plugin feuert Events nie direkt beim Seitenaufruf an Tajo. Jedes Event wird zuerst in eine lokale Outbox-Tabelle geschrieben und dann per WP-Cron zugestellt, mit:

- Begrenztem exponentiellem Backoff (bis zu 8 Versuche, mit Beachtung von `Retry-After`)
- Dead Letters mit **Replay dead letters** per Klick im Admin
- Aufbewahrungsgrenzen, damit ein nicht erreichbarer Endpunkt nie personenbezogene Daten anhäuft (zugestellt: 7 Tage; in der Warteschlange: 30 Tage; Dead Letters: 30 Tage nach der letzten Aktualisierung)
- Idempotenten Event-IDs, damit Wiederholungen und Replays nie Duplikate im nachgelagerten System erzeugen

Wenn dein Hoster WP-Cron deaktiviert (`DISABLE_WP_CRON`), rufe `wp-cron.php` mindestens einmal pro Minute über einen echten Scheduler auf.

## Einverständnis wird nie abgeleitet

Kontoerstellung, Checkout, Kauf und allgemeine Formularübermittlungen gelten **nicht** als Marketing-Einverständnis. Eingebaute Events tragen eine leere Einverständnisliste. Um ein ausdrückliches Einverständnis festzuhalten (zum Beispiel aus einer angehakten Newsletter-Box), sende es über den Erweiterungs-Hook:

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

Derselbe Hook erlaubt jedem Plugin und jedem Theme, eigene Events zu senden; alles läuft durch denselben Sanitizer, dieselbe Outbox und dieselbe Signatur.

## Schritt 3: Historischer Import

Plugin-Events decken alles ab der Installation ab. Für die Historie vor dem Plugin importiert die WooCommerce-REST-Verbindung von Tajo bestehende Kund:innen, Bestellungen, Produkte, Gutscheine, Rückerstattungen und Bewertungen, vollständig auf der Tajo-Seite konfiguriert mit einem WooCommerce-REST-API-Key (**WooCommerce → Settings → Advanced → REST API**, Leseberechtigung). Details findest du in der [WooCommerce-Connector-Referenz](https://tajo.io/de/docs/connectors/ecommerce/woocommerce/).

## Datenschutz und DSGVO

- Das Plugin registriert sich bei WordPress unter **Tools → Export Personal Data** und **Tools → Erase Personal Data**; aufbewahrte Outbox-Events zu einer passenden E-Mail-Adresse werden lokal exportiert oder gelöscht.
- Löschung und Zustellung teilen sich einen fail-closed Mutex, damit eine Löschung nie den Abschluss meldet, während ein Payload gerade versendet wird.
- Die lokale Löschung umfasst nur die WordPress-Outbox, für nachgelagerte Daten reiche die entsprechende Anfrage in Tajo ein.
- Eine Deaktivierung pausiert die Zustellung, behält aber Konfiguration und Events in der Warteschlange; das **Löschen** des Plugins entfernt Outbox, Einstellungen, Secret und Zeitpläne dauerhaft.

## Kompatibilität

- **HPOS**: Das Plugin erklärt Kompatibilität mit WooCommerce High-Performance Order Storage und nutzt ausschließlich CRUD-Objekte und öffentliche Hooks.
- **WooCommerce Subscriptions**: Statusänderungen von Abos werden erfasst, wenn die Extension aktiv ist.
- **Multisite**: Die Deinstallation räumt jede Site im Netzwerk auf.

## Referenz für den Betrieb

Server-zu-Server-Discovery und Outbox-Steuerung stehen Admins über die Authentifizierung mit Application Password zur Verfügung:

| Methode | Route | Zweck |
| --- | --- | --- |
| `GET` | `/wp-json/tajo/v1/capabilities` | Plugin-Version, erkannte Adapter, Event-Inventar, Zustand der Outbox |
| `GET` | `/wp-json/tajo/v1/outbox` | Outbox-Zähler (Payloads werden nie offengelegt) |
| `POST` | `/wp-json/tajo/v1/outbox/process` | Einen Batch sofort verarbeiten |
| `POST` | `/wp-json/tajo/v1/outbox/replay` | Dead Letters erneut senden |

## Fehlerbehebung

| Symptom | Ursache und Lösung |
| --- | --- |
| Events bleiben auf „Queued“ | Endpunkt, Binding-ID oder Secret sind noch nicht gespeichert, die Zustellung pausiert, bis alle drei konfiguriert sind |
| Events bleiben auf „Retrying“ | Der Tajo-Endpunkt ist von deinem Hoster aus nicht erreichbar, oder WP-Cron läuft nicht, prüfe die Fehlerspalte der Outbox-Tabelle und dein Cron-Setup |
| Dead Letters häufen sich | Ein nicht wiederholbarer Fehler (meist eine falsche Binding-ID oder ein falsches Secret), korrigiere die Konfiguration und nutze dann **Replay dead letters** |
| „Enter a valid HTTPS Tajo webhook endpoint“ | Der Endpunkt muss HTTPS sein und darf keine eingebetteten Zugangsdaten enthalten |
| Test-Event zugestellt, aber nichts in Tajo | Prüfe, ob du die Binding-ID aus demselben Tajo-Workspace bzw. derselben Verbindung eingefügt hast, zu der der Endpunkt gehört |

## Nächste Schritte

- [WooCommerce-Connector-Referenz](https://tajo.io/de/docs/connectors/ecommerce/woocommerce/): REST-Sync, Details zur Webhook-Signatur, Konfigurationsschlüssel
- [Kundensynchronisation](https://tajo.io/de/docs/skills/data-sync/customer-sync/): WooCommerce-Kund:innen in dein System of Record übernehmen
- Richte in Tajo Automationen für Warenkorbabbrüche, nach dem Kauf und zur Rückgewinnung ein, auf Basis der Events `cart.updated`, `order.placed` und `order.fulfilled`
