WooCommerce-connector

WooCommerce-connector

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

EigenschapWaarde
PlatformWooCommerce (WordPress)
CategorieE-commerce
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataKlanten, Bestellingen, Producten, Coupons
Beschikbare skills10

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)

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

Querystring-authenticatie (HTTPS)

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

Rechtenniveaus

RechtToegang
ReadAlleen resources bekijken
WriteResources aanmaken en bewerken
Read/WriteVolledige CRUD-toegang

Configuratie

Basisopzet

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:

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:

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

MethodeEndpointBeschrijving
GET/wc/v3/customersKlanten opvragen
POST/wc/v3/customersKlant aanmaken
GET/wc/v3/customers/{id}Klant ophalen
PUT/wc/v3/customers/{id}Klant bijwerken
GET/wc/v3/ordersBestellingen opvragen
POST/wc/v3/ordersBestelling aanmaken
GET/wc/v3/orders/{id}Bestelling ophalen
GET/wc/v3/productsProducten opvragen
GET/wc/v3/products/{id}Product ophalen
GET/wc/v3/products/{id}/variationsProductvariaties opvragen
GET/wc/v3/couponsCoupons opvragen
GET/wc/v3/reports/salesVerkooprapporten ophalen
GET/wc/v3/reports/top_sellersTopverkopers ophalen
POST/wc/v3/webhooksWebhook aanmaken

Codevoorbeelden

WooCommerce-connector initialiseren

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

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

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

// 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:

FactorTypische limietDetails
Shared hosting50-100 req/minVarieert per host
Managed WP hosting200-500 req/minWP Engine, Kinsta, enz.
Self-hostedGeen harde limietBeperkt door serverresources
Per pagina100 records maxStandaard is 10
Batch-operaties100 items/batchAanmaken, 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

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige API-sleutelsGenereer Consumer Key/Secret opnieuw in WooCommerce-instellingen
403 ForbiddenOnvoldoende rechtenStel de API-sleutel in op Read/Write-toegang
SSL-certificaatfoutenOngeldige SSL op siteZorg voor een geldig SSL-certificaat; zet verify_ssl: false alleen voor testen
Webhooks werken nietWordPress-cron uitgeschakeldSchakel WP-Cron in of stel server-cron in
Trage API-responsesGrote databaseOptimaliseer de WordPress-database, gebruik _fields-parameter
Custom velden ontbrekenMeta-data niet blootgesteldGebruik het meta_data-veld om custom meta op te halen
PaginatieproblemenStandaard-paginagrootteStel 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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI-assistent

Hallo! Stel me vragen over de documentatie.

Start gratis met Brevo