WooCommerce-connector
Connectorstatus: In ontwikkeling In aanbouw. Nog niet geverifieerd.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
WooCommerce
Connectorstatus: In ontwikkeling
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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