---
title: "WooCommerce-connector"
description: "Volledige WooCommerce-integratiegids voor het synchroniseren van klanten, bestellingen, producten en cart-events met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/ecommerce/woocommerce/
markdown: https://tajo.io/nl/docs/connectors/ecommerce/woocommerce.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# WooCommerce-connector

Connectorstatus: In ontwikkeling In aanbouw. Nog niet geverifieerd.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind je WooCommerce-winkel met Brevo via Tajo voor volledige synchronisatie van e-commercedata. Gebruik de WooCommerce REST API om klanten, bestellingen, producten en couponsdata te synchroniseren voor gerichte marketingcampagnes en geautomatiseerde workflows.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | WooCommerce (WordPress) |
| **Categorie** | E-commerce |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Klanten, Bestellingen, Producten, Coupons |
| **Beschikbare skills** | 10 |

## Functies

- **Klantsynchronisatie** - Realtime klantdatasynchronisatie naar Brevo-contacten
- **Ordertracking** - Volledige tracking van order-lifecycle-events voor post-purchase-flows
- **Productcatalogus-sync** - Synchroniseer producten en variaties voor e-mailaanbevelingen
- **Couponsbeheer** - Synchroniseer couponcodes voor promotiecampagnes
- **Webhook-ondersteuning** - Realtime-updates via WooCommerce-webhooks
- **Winkelwagenherstel** - Volg en herstel verlaten winkelwagens
- **Multi-site-ondersteuning** - Verbind WordPress-multisite WooCommerce-installaties
- **Custom meta-velden** - Koppel WooCommerce custom meta aan Brevo-attributen

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een WordPress-site met de WooCommerce-plug-in geïnstalleerd en geactiveerd
2. WooCommerce REST API ingeschakeld (Settings > Advanced > REST API)
3. Aangemaakte API Consumer Key en Consumer Secret
4. Je site moet HTTPS gebruiken voor API-authenticatie
5. Een Brevo-account met API-toegang
6. Een Tajo-account met API-inloggegevens

## Authenticatie

### REST API-sleutels

WooCommerce gebruikt paren van Consumer Key en Consumer Secret voor authenticatie. Maak deze aan onder 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"
```

#### Querystring-authenticatie (HTTPS)

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

### Rechtenniveaus

| Recht | Toegang |
| --- | --- |
| **Read** | Alleen resources bekijken |
| **Write** | Resources aanmaken en bewerken |
| **Read/Write** | Volledige CRUD-toegang |

## Configuratie

### Basisopzet

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

### Klantveldmapping

Koppel WooCommerce-klantvelden aan Brevo-attributen:

```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-configuratie

Registreer webhooks onder 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 | Beschrijving |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | Klanten opvragen |
| `POST` | `/wc/v3/customers` | Klant aanmaken |
| `GET` | `/wc/v3/customers/{id}` | Klant ophalen |
| `PUT` | `/wc/v3/customers/{id}` | Klant bijwerken |
| `GET` | `/wc/v3/orders` | Bestellingen opvragen |
| `POST` | `/wc/v3/orders` | Bestelling aanmaken |
| `GET` | `/wc/v3/orders/{id}` | Bestelling ophalen |
| `GET` | `/wc/v3/products` | Producten opvragen |
| `GET` | `/wc/v3/products/{id}` | Product ophalen |
| `GET` | `/wc/v3/products/{id}/variations` | Productvariaties opvragen |
| `GET` | `/wc/v3/coupons` | Coupons opvragen |
| `GET` | `/wc/v3/reports/sales` | Verkooprapporten ophalen |
| `GET` | `/wc/v3/reports/top_sellers` | Topverkopers ophalen |
| `POST` | `/wc/v3/webhooks` | Webhook aanmaken |

## Codevoorbeelden

### WooCommerce-connector initialiseren

```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
});
```

### Klanten ophalen en synchroniseren

```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 afhandelen

```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-operaties

```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]
});
```

## Ratelimits

WooCommerce legt zelf geen API-ratelimits op, maar de onderliggende WordPress-server en hostingprovider kunnen wel limieten afdwingen:

| Factor | Typische limiet | Details |
| --- | --- | --- |
| **Shared hosting** | 50-100 req/min | Varieert per host |
| **Managed WP hosting** | 200-500 req/min | WP Engine, Kinsta, enz. |
| **Self-hosted** | Geen harde limiet | Beperkt door serverresources |
| **Per pagina** | 100 records max | Standaard is 10 |
| **Batch-operaties** | 100 items/batch | Aanmaken, bijwerken of verwijderen |

Serverprestaties

Grote WooCommerce-winkels kunnen trage API-responses ervaren. Gebruik paginatie, beperk velden met de `_fields`-parameter en plan bulksyncs buiten piekuren.

## Probleemoplossing

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| `401 Unauthorized` | Ongeldige API-sleutels | Genereer Consumer Key/Secret opnieuw in WooCommerce-instellingen |
| `403 Forbidden` | Onvoldoende rechten | Stel de API-sleutel in op Read/Write-toegang |
| SSL-certificaatfouten | Ongeldige SSL op site | Zorg voor een geldig SSL-certificaat; zet `verify_ssl: false` alleen voor testen |
| Webhooks werken niet | WordPress-cron uitgeschakeld | Schakel WP-Cron in of stel server-cron in |
| Trage API-responses | Grote database | Optimaliseer de WordPress-database, gebruik `_fields`-parameter |
| Custom velden ontbreken | Meta-data niet blootgesteld | Gebruik het `meta_data`-veld om custom meta op te halen |
| Paginatieproblemen | Standaard-paginagrootte | Stel `per_page`-parameter expliciet in (max 100) |

## Best practices

1. **Gebruik webhooks voor realtime-sync** - Configureer WooCommerce-webhooks in plaats van polling op de API
2. **Verifieer webhook-signatures** - Valideer altijd de `X-WC-Webhook-Signature`-header
3. **Pagineer alle list-requests** - Gebruik `page`- en `per_page`-parameters; controleer de `X-WP-TotalPages`-header
4. **Gebruik de `_fields`-parameter** - Vraag alleen benodigde velden op om responsegrootte te verkleinen en prestaties te verbeteren
5. **Batch-operaties** - Gebruik batch-endpoints voor bulk-create/update/delete (tot 100 items)
6. **Plan grote syncs** - Draai initiële full syncs buiten piekuren om serverbelasting te voorkomen
7. **Activeer HTTPS** - De WooCommerce API vereist HTTPS voor OAuth-authenticatie

## Beveiliging

- **OAuth 1.0a** - Veilige authenticatie via Consumer Key/Secret-paren
- **HMAC webhook-signatures** - SHA-256-signatureverificatie voor inkomende webhooks
- **HTTPS vereist** - API vereist TLS-encryptie voor authenticatie
- **Rechtenscoping** - API-sleutels kunnen worden ingesteld op Read, Write of Read/Write
- **WordPress-beveiliging** - Profiteert van WordPress-core-beveiligingsupdates
- **PCI-overwegingen** - Betaaldata wordt verwerkt door WooCommerce-payment gateways en niet via de API blootgesteld

## Gerelateerde resources

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