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
| 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:
- Een WordPress-site met de WooCommerce-plug-in geïnstalleerd en geactiveerd
- WooCommerce REST API ingeschakeld (Settings > Advanced > REST API)
- Aangemaakte API Consumer Key en Consumer Secret
- Je site moet HTTPS gebruiken voor API-authenticatie
- Een Brevo-account met API-toegang
- 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)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Querystring-authenticatie (HTTPS)
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
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: 52Klantveldmapping
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_CATEGORYWebhook-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
| 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
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});Klanten ophalen en synchroniseren
// 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 afhandelen
// 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-operaties
// 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]});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
- Gebruik webhooks voor realtime-sync - Configureer WooCommerce-webhooks in plaats van polling op de API
- Verifieer webhook-signatures - Valideer altijd de
X-WC-Webhook-Signature-header - Pagineer alle list-requests - Gebruik
page- enper_page-parameters; controleer deX-WP-TotalPages-header - Gebruik de
_fields-parameter - Vraag alleen benodigde velden op om responsegrootte te verkleinen en prestaties te verbeteren - Batch-operaties - Gebruik batch-endpoints voor bulk-create/update/delete (tot 100 items)
- Plan grote syncs - Draai initiële full syncs buiten piekuren om serverbelasting te voorkomen
- 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