Connecteur WooCommerce

Connecteur WooCommerce

Connectez votre boutique WooCommerce à Brevo via Tajo pour une synchronisation complète des données e-commerce. Exploitez la REST API WooCommerce pour synchroniser clients, commandes, produits et données de coupons afin d’alimenter des campagnes marketing ciblées et des workflows automatisés.

Vue d’ensemble

PropriétéValeur
PlateformeWooCommerce (WordPress)
CatégorieE-commerce
Complexité d’installationMoyenne
Intégration officielleNon
Données synchroniséesClients, commandes, produits, coupons
Skills disponibles10

Fonctionnalités

  • Synchronisation des clients, Synchronisation en temps réel des données client vers les contacts Brevo
  • Suivi des commandes, Suivi complet du cycle de vie des commandes pour les workflows post-achat
  • Synchronisation du catalogue produits, Synchronisez produits et variations pour les recommandations e-mail
  • Gestion des coupons, Synchronisez les codes coupons pour les campagnes promotionnelles
  • Prise en charge des webhooks, Mises à jour en temps réel via les webhooks WooCommerce
  • Abandon de panier, Suivez et récupérez les paniers abandonnés
  • Prise en charge multi-sites, Connectez les installations WooCommerce WordPress multisite
  • Champs meta personnalisés, Mappez les métadonnées personnalisées WooCommerce vers des attributs Brevo

Prérequis

Avant de commencer, assurez-vous de disposer de :

  1. Un site WordPress avec le plugin WooCommerce installé et activé
  2. La REST API WooCommerce activée (Settings > Advanced > REST API)
  3. Une paire Consumer Key et Consumer Secret API générée
  4. Votre site doit utiliser HTTPS pour l’authentification API
  5. Un compte Brevo avec accès API
  6. Un compte Tajo avec des identifiants API

Authentification

Clés REST API

WooCommerce utilise des paires Consumer Key et Consumer Secret pour l’authentification. Générez-les dans WooCommerce > Settings > Advanced > REST API.

OAuth 1.0a (sites HTTPS)

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

Authentification par query string (HTTPS)

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

Niveaux de permission

PermissionAccès
ReadConsultation des ressources uniquement
WriteCréation et édition de ressources
Read/WriteAccès CRUD complet

Configuration

Configuration de base

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

Mappage des champs client

Mappez les champs client WooCommerce vers les attributs Brevo :

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

Configuration des webhooks

Enregistrez les webhooks dans 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"

Endpoints API

MéthodeEndpointDescription
GET/wc/v3/customersLister les clients
POST/wc/v3/customersCréer un client
GET/wc/v3/customers/{id}Récupérer un client
PUT/wc/v3/customers/{id}Mettre à jour un client
GET/wc/v3/ordersLister les commandes
POST/wc/v3/ordersCréer une commande
GET/wc/v3/orders/{id}Récupérer une commande
GET/wc/v3/productsLister les produits
GET/wc/v3/products/{id}Récupérer un produit
GET/wc/v3/products/{id}/variationsLister les variations d’un produit
GET/wc/v3/couponsLister les coupons
GET/wc/v3/reports/salesObtenir les rapports de ventes
GET/wc/v3/reports/top_sellersObtenir les meilleures ventes
POST/wc/v3/webhooksCréer un webhook

Exemples de code

Initialiser le connecteur WooCommerce

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

Récupérer et synchroniser les clients

// 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'];

Gérer les événements webhook

// 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');
});

Opérations par lot

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

Limites de débit

WooCommerce lui-même n’applique pas de limites de débit API, mais le serveur WordPress sous-jacent et l’hébergeur peuvent imposer des limites :

FacteurLimite typiqueDétails
Hébergement mutualisé50-100 req/minVarie selon l’hébergeur
Hébergement WP managé200-500 req/minWP Engine, Kinsta, etc.
Auto-hébergéPas de limite dureLimité par les ressources serveur
Par page100 enregistrements maxPar défaut : 10
Opérations par lot100 éléments/lotCréation, mise à jour ou suppression

Performance du serveur

Les grandes boutiques WooCommerce peuvent connaître des réponses API lentes. Utilisez la pagination, limitez les champs avec le paramètre _fields et planifiez les synchronisations volumineuses en heures creuses.

Dépannage

ProblèmeCauseSolution
401 UnauthorizedClés API invalidesRégénérez Consumer Key/Secret dans les paramètres WooCommerce
403 ForbiddenPermissions insuffisantesRéglez la clé API sur l’accès Read/Write
Erreurs de certificat SSLSSL invalide sur le siteAssurez-vous d’un certificat SSL valide ; définissez verify_ssl: false pour les tests uniquement
Webhooks non déclenchésWP-Cron désactivéActivez WP-Cron ou configurez un cron au niveau serveur
Réponses API lentesBase de données volumineuseOptimisez la base WordPress, utilisez le paramètre _fields
Champs personnalisés manquantsMétadonnées non exposéesUtilisez le champ meta_data pour accéder aux métas personnalisées
Problèmes de paginationTaille de page par défautDéfinissez explicitement le paramètre per_page (max 100)

Bonnes pratiques

  1. Utilisez les webhooks pour la synchronisation en temps réel, Configurez les webhooks WooCommerce plutôt que du polling API
  2. Vérifiez les signatures de webhook, Validez toujours l’en-tête X-WC-Webhook-Signature
  3. Paginez toutes les requêtes de liste, Utilisez les paramètres page et per_page ; vérifiez l’en-tête X-WP-TotalPages
  4. Utilisez le paramètre _fields, Ne demandez que les champs nécessaires pour réduire la taille de la réponse et améliorer les performances
  5. Opérations par lot, Utilisez les endpoints batch pour les opérations de création/mise à jour/suppression en masse (jusqu’à 100 éléments)
  6. Planifiez les synchronisations volumineuses, Exécutez les synchronisations initiales complètes en heures creuses pour éviter la surcharge serveur
  7. Activez HTTPS, L’API WooCommerce requiert HTTPS pour l’authentification OAuth

Sécurité

  • OAuth 1.0a, Authentification sécurisée via des paires Consumer Key/Secret
  • Signatures de webhook HMAC, Vérification de signature SHA-256 pour les webhooks entrants
  • HTTPS requis, L’API nécessite un chiffrement TLS pour l’authentification
  • Portée des permissions, Les clés API peuvent être définies en Read, Write ou Read/Write
  • Sécurité WordPress, Bénéficie des mises à jour de sécurité du cœur WordPress
  • Considérations PCI, Les données de paiement sont gérées par les passerelles de paiement WooCommerce, non exposées via l’API

Ressources associées

Subscribe to updates

developer-docs

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

Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo