---
title: "WooCommerce-Connector"
description: "Vollständiger Leitfaden zur WooCommerce-Integration für die Synchronisation von Kund:innen, Bestellungen, Produkten und Warenkorb-Events mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/ecommerce/woocommerce/
markdown: https://tajo.io/de/docs/connectors/ecommerce/woocommerce.md
lang: de-DE
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-Connector

Connector-Status: In Arbeit Im Aufbau. Noch nicht verifiziert.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbinde deinen WooCommerce-Shop mit Brevo über Tajo für eine vollständige Synchronisation deiner E-Commerce-Daten. Nutze die WooCommerce-REST-API, um Kund:innen, Bestellungen, Produkte und Gutscheindaten für zielgerichtete Marketingkampagnen und automatisierte Workflows zu synchronisieren.

## Überblick

| Eigenschaft | Wert |
| --- | --- |
| **Plattform** | WooCommerce (WordPress) |
| **Kategorie** | E-Commerce |
| **Einrichtungsaufwand** | Mittel |
| **Offizielle Integration** | Nein |
| **Synchronisierte Daten** | Kund:innen, Bestellungen, Produkte, Gutscheine |
| **Verfügbare Skills** | 10 |

## Funktionen

- **Kundendaten-Synchronisation** – Echtzeit-Synchronisation von Kundendaten mit Brevo-Kontakten
- **Bestellverfolgung** – Vollständiges Lifecycle-Event-Tracking für Post-Purchase-Flows
- **Produktkatalog-Synchronisation** – Synchronisiere Produkte und Variationen für E-Mail-Empfehlungen
- **Gutschein-Management** – Synchronisiere Gutscheincodes für Promo-Kampagnen
- **Webhook-Unterstützung** – Echtzeit-Updates über WooCommerce-Webhooks
- **Warenkorb-Abandonment** – Abgebrochene Warenkörbe verfolgen und reaktivieren
- **Multi-Site-Unterstützung** – Verbinde WordPress-Multisite-WooCommerce-Installationen
- **Benutzerdefinierte Meta-Felder** – Mappe WooCommerce-Custom-Meta auf Brevo-Attribute

## Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

1. Eine WordPress-Site mit installiertem und aktiviertem WooCommerce-Plugin
2. Aktivierte WooCommerce-REST-API (Settings > Advanced > REST API)
3. Generierte Consumer-Key- und Consumer-Secret-API-Zugangsdaten
4. Deine Site muss HTTPS für die API-Authentifizierung verwenden
5. Einen Brevo-Account mit API-Zugang
6. Einen Tajo-Account mit API-Zugangsdaten

## Authentifizierung

### REST-API-Schlüssel

WooCommerce verwendet Consumer-Key- und Consumer-Secret-Paare für die Authentifizierung. Generiere diese unter WooCommerce > Settings > Advanced > REST API.

#### OAuth 1.0a (HTTPS-Sites)

```bash
curl https://yourstore.com/wp-json/wc/v3/orders \
  -u "consumer_key:consumer_secret"
```

#### Query-String-Authentifizierung (HTTPS)

```bash
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"
```

### Berechtigungsstufen

| Berechtigung | Zugriff |
| --- | --- |
| **Read** | Nur Ressourcen ansehen |
| **Write** | Ressourcen erstellen und bearbeiten |
| **Read/Write** | Voller CRUD-Zugriff |

## Konfiguration

### Grundlegende Einrichtung

```yaml
connectors:
  woocommerce:
    enabled: true
    store_url: "https://yourstore.com"
    consumer_key: "ck_your_consumer_key"
    consumer_secret: "cs_your_consumer_secret"
    api_version: "wc/v3"
    verify_ssl: true

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      coupons: true

    # Brevo list assignment
    lists:
      all_customers: 50
      buyers: 51
      abandoned_cart: 52
```

### Kundenfeld-Mapping

Mappe WooCommerce-Kundenfelder auf Brevo-Attribute:

```yaml
customer_mapping:
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  billing.phone: SMS
  billing.company: COMPANY
  billing.city: CITY
  billing.state: STATE
  billing.country: COUNTRY
  billing.postcode: ZIP

  # E-commerce metrics (computed)
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  date_created: SIGNUP_DATE

  # Meta fields
  meta_data.loyalty_points: LOYALTY_POINTS
  meta_data.preferred_category: PREF_CATEGORY
```

### Webhook-Konfiguration

Registriere Webhooks unter WooCommerce > Settings > Advanced > Webhooks:

```yaml
webhooks:
  - topic: "customer.created"
    event: "customer_created"
  - topic: "customer.updated"
    event: "customer_updated"
  - topic: "order.created"
    event: "order_placed"
  - topic: "order.updated"
    event: "order_updated"
  - topic: "order.completed"
    event: "order_fulfilled"
  - topic: "order.refunded"
    event: "order_refunded"
  - topic: "coupon.created"
    event: "coupon_created"
  - topic: "product.created"
    event: "product_added"
  - topic: "product.updated"
    event: "product_updated"
```

## API-Endpoints

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | Kund:innen auflisten |
| `POST` | `/wc/v3/customers` | Kund:in anlegen |
| `GET` | `/wc/v3/customers/{id}` | Kund:in abrufen |
| `PUT` | `/wc/v3/customers/{id}` | Kund:in aktualisieren |
| `GET` | `/wc/v3/orders` | Bestellungen auflisten |
| `POST` | `/wc/v3/orders` | Bestellung anlegen |
| `GET` | `/wc/v3/orders/{id}` | Bestellung abrufen |
| `GET` | `/wc/v3/products` | Produkte auflisten |
| `GET` | `/wc/v3/products/{id}` | Produkt abrufen |
| `GET` | `/wc/v3/products/{id}/variations` | Produktvariationen auflisten |
| `GET` | `/wc/v3/coupons` | Gutscheine auflisten |
| `GET` | `/wc/v3/reports/sales` | Umsatzberichte abrufen |
| `GET` | `/wc/v3/reports/top_sellers` | Top-Seller abrufen |
| `POST` | `/wc/v3/webhooks` | Webhook anlegen |

## Code-Beispiele

### WooCommerce-Connector initialisieren

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
  storeUrl: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET
});
```

### Kund:innen abrufen und synchronisieren

```javascript
// Fetch customers using WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;

const api = new WooCommerce({
  url: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET,
  version: 'wc/v3'
});

// List customers with pagination
const response = await api.get('customers', {
  per_page: 100,
  page: 1,
  orderby: 'registered_date',
  order: 'desc'
});

const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]

// Pagination info from headers
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];
```

### Webhook-Events verarbeiten

```javascript
// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
  const topic = req.headers['x-wc-webhook-topic'];
  const signature = req.headers['x-wc-webhook-signature'];

  // Verify webhook signature
  const expectedSignature = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(req.body))
    .digest('base64');

  if (signature !== expectedSignature) {
    return res.status(401).send('Invalid signature');
  }

  // Forward to Tajo
  await tajo.connectors.handleWebhook('woocommerce', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

### Batch-Operationen

```javascript
// Batch create, update, and delete products
const batchResponse = await api.post('products/batch', {
  create: [
    { name: 'New Product', type: 'simple', regular_price: '19.99' }
  ],
  update: [
    { id: 123, regular_price: '24.99' }
  ],
  delete: [456]
});
```

## Rate Limits

WooCommerce selbst erzwingt keine API-Rate-Limits, der zugrunde liegende WordPress-Server und der Hosting-Provider können jedoch Limits festlegen:

| Faktor | Typisches Limit | Details |
| --- | --- | --- |
| **Shared Hosting** | 50–100 Req./Min. | Variiert je nach Hoster |
| **Managed WP Hosting** | 200–500 Req./Min. | WP Engine, Kinsta usw. |
| **Self-Hosted** | Kein hartes Limit | Durch Server-Ressourcen begrenzt |
| **Pro Seite** | Max. 100 Datensätze | Standard ist 10 |
| **Batch-Operationen** | 100 Items/Batch | Create, Update oder Delete |

Server-Performance

Große WooCommerce-Shops können langsame API-Antworten erleben. Nutze Pagination, beschränke Felder mit dem `_fields`-Parameter und plane Massensynchronisationen außerhalb der Stoßzeiten.

## Fehlerbehebung

| Problem | Ursache | Lösung |
| --- | --- | --- |
| `401 Unauthorized` | Ungültige API-Schlüssel | Consumer Key/Secret in den WooCommerce-Einstellungen neu generieren |
| `403 Forbidden` | Unzureichende Berechtigungen | API-Schlüssel auf Read/Write-Zugriff setzen |
| SSL-Zertifikat-Fehler | Ungültiges SSL auf der Site | Gültiges SSL-Zertifikat sicherstellen; `verify_ssl: false` nur zum Testen setzen |
| Webhooks werden nicht ausgelöst | WordPress-Cron deaktiviert | WP-Cron aktivieren oder serverseitigen Cron konfigurieren |
| Langsame API-Antworten | Große Datenbank | WordPress-Datenbank optimieren, `_fields`-Parameter nutzen |
| Benutzerdefinierte Felder fehlen | Meta-Daten nicht exponiert | `meta_data`-Feld zum Zugriff auf Custom-Meta verwenden |
| Pagination-Probleme | Standard-Seitengröße | Parameter `per_page` explizit setzen (max. 100) |

## Best Practices

1. **Webhooks für Echtzeit-Synchronisation nutzen** – Konfiguriere WooCommerce-Webhooks statt die API zu pollen
2. **Webhook-Signaturen verifizieren** – Validiere immer den Header `X-WC-Webhook-Signature`
3. **Alle List-Requests paginieren** – Nutze die Parameter `page` und `per_page`; prüfe den Header `X-WP-TotalPages`
4. **`_fields`-Parameter verwenden** – Frage nur benötigte Felder ab, um Response-Größe zu reduzieren und Performance zu verbessern
5. **Batch-Operationen** – Nutze Batch-Endpoints für Bulk-Create-/Update-/Delete-Operationen (bis zu 100 Items)
6. **Große Synchronisationen planen** – Führe Erst-Vollsynchronisationen außerhalb der Stoßzeiten aus, um den Server zu entlasten
7. **HTTPS aktivieren** – Die WooCommerce-API verlangt HTTPS für die OAuth-Authentifizierung

## Sicherheit

- **OAuth 1.0a** – Sichere Authentifizierung via Consumer-Key-/Secret-Paare
- **HMAC-Webhook-Signaturen** – SHA-256-Signatur-Verifizierung für eingehende Webhooks
- **HTTPS erforderlich** – API verlangt TLS-Verschlüsselung für die Authentifizierung
- **Berechtigungs-Scoping** – API-Schlüssel können auf Read, Write oder Read/Write gesetzt werden
- **WordPress-Sicherheit** – Profitiert von den Security-Updates des WordPress-Cores
- **PCI-Überlegungen** – Zahlungsdaten werden von den WooCommerce-Zahlungs-Gateways verarbeitet und nicht über die API exponiert

## Verwandte Ressourcen

- [Shopify-Connector](https://tajo.io/de/docs/connectors/ecommerce/shopify)
- [BigCommerce-Connector](https://tajo.io/de/docs/connectors/ecommerce/bigcommerce)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
- [Abandoned-Cart-Skill](https://tajo.io/de/docs/skills/email-marketing/abandoned-cart)
