WooCommerce-Connector
Connector-Status: In Arbeit Im Aufbau. Noch nicht verifiziert.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
WooCommerce
Connector-Status: In Arbeit
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
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:
- Eine WordPress-Site mit installiertem und aktiviertem WooCommerce-Plugin
- Aktivierte WooCommerce-REST-API (Settings > Advanced > REST API)
- Generierte Consumer-Key- und Consumer-Secret-API-Zugangsdaten
- Deine Site muss HTTPS für die API-Authentifizierung verwenden
- Einen Brevo-Account mit API-Zugang
- 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)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Query-String-Authentifizierung (HTTPS)
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
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: 52Kundenfeld-Mapping
Mappe WooCommerce-Kundenfelder auf Brevo-Attribute:
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_CATEGORYWebhook-Konfiguration
Registriere Webhooks unter WooCommerce > Settings > Advanced > Webhooks:
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
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect WooCommerce storeawait 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
// Fetch customers using WooCommerce REST APIconst 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 paginationconst 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 headersconst totalPages = response.headers['x-wp-totalpages'];const totalItems = response.headers['x-wp-total'];Webhook-Events verarbeiten
// WooCommerce webhook handlerapp.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
// Batch create, update, and delete productsconst 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
- Webhooks für Echtzeit-Synchronisation nutzen – Konfiguriere WooCommerce-Webhooks statt die API zu pollen
- Webhook-Signaturen verifizieren – Validiere immer den Header
X-WC-Webhook-Signature - Alle List-Requests paginieren – Nutze die Parameter
pageundper_page; prüfe den HeaderX-WP-TotalPages _fields-Parameter verwenden – Frage nur benötigte Felder ab, um Response-Größe zu reduzieren und Performance zu verbessern- Batch-Operationen – Nutze Batch-Endpoints für Bulk-Create-/Update-/Delete-Operationen (bis zu 100 Items)
- Große Synchronisationen planen – Führe Erst-Vollsynchronisationen außerhalb der Stoßzeiten aus, um den Server zu entlasten
- 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