Conector WooCommerce
Conector WooCommerce
Conectați magazinul WooCommerce la Brevo prin Tajo pentru sincronizarea completă a datelor de e-commerce. Valorificați REST API WooCommerce pentru a sincroniza clienți, comenzi, produse și date de cupoane pentru campanii de marketing targetate și fluxuri de lucru automatizate.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | WooCommerce (WordPress) |
| Categorie | E-commerce |
| Complexitate configurare | Medie |
| Integrare oficială | Nu |
| Date sincronizate | Clienți, Comenzi, Produse, Cupoane |
| Skilluri disponibile | 10 |
Funcționalități
- Sincronizare clienți - Sincronizare în timp real a datelor clienților la contactele Brevo
- Urmărire comenzi - Urmărire completă a evenimentelor de ciclu de viață al comenzilor pentru fluxuri post-cumpărare
- Sincronizare catalog produse - Sincronizați produsele și variantele pentru recomandări în e-mail
- Gestionare cupoane - Sincronizați codurile de cupon pentru campanii promoționale
- Suport webhook - Actualizări în timp real prin webhook-urile WooCommerce
- Recuperare coșuri abandonate - Urmăriți și recuperați coșurile abandonate
- Suport multi-site - Conectați instalările WordPress multisite WooCommerce
- Câmpuri meta personalizate - Mapați meta-urile personalizate WooCommerce la atributele Brevo
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un site WordPress cu plugin-ul WooCommerce instalat și activat
- REST API WooCommerce activat (Settings > Advanced > REST API)
- Consumer Key și Consumer Secret generate
- Site-ul dvs. trebuie să utilizeze HTTPS pentru autentificarea API
- Un cont Brevo cu acces API
- Un cont Tajo cu credențiale API
Autentificare
Chei REST API
WooCommerce utilizează perechi Consumer Key și Consumer Secret pentru autentificare. Generați-le în WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (Site-uri HTTPS)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentificare prin șir de interogare (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Niveluri de permisiuni
| Permisiune | Acces |
|---|---|
| Citire | Vizualizare resurse |
| Scriere | Creare și editare resurse |
| Citire/Scriere | Acces CRUD complet |
Configurare
Configurare de bază
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: 52Mapare câmpuri clienți
Mapați câmpurile clienților WooCommerce la atributele 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_CATEGORYConfigurare webhook
Înregistrați webhook-uri în 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"Puncte finale API
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /wc/v3/customers | Listează clienții |
POST | /wc/v3/customers | Creează un client |
GET | /wc/v3/customers/{id} | Obține un client |
PUT | /wc/v3/customers/{id} | Actualizează un client |
GET | /wc/v3/orders | Listează comenzile |
POST | /wc/v3/orders | Creează o comandă |
GET | /wc/v3/orders/{id} | Obține o comandă |
GET | /wc/v3/products | Listează produsele |
GET | /wc/v3/products/{id} | Obține un produs |
GET | /wc/v3/products/{id}/variations | Listează variantele produsului |
GET | /wc/v3/coupons | Listează cupoanele |
GET | /wc/v3/reports/sales | Obține rapoarte de vânzări |
GET | /wc/v3/reports/top_sellers | Obține cei mai bine vânduți |
POST | /wc/v3/webhooks | Creează un webhook |
Exemple de cod
Inițializare conector WooCommerce
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});Preluare și sincronizare clienți
// 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'];Gestionare evenimente webhook
// 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');});Operații în lot
// 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]});Limite de rată
WooCommerce în sine nu aplică limite de rată API, dar serverul WordPress de bază și furnizorul de hosting pot impune limite:
| Factor | Limită tipică | Detalii |
|---|---|---|
| Hosting partajat | 50-100 cereri/min | Variază după host |
| Hosting WP gestionat | 200-500 cereri/min | WP Engine, Kinsta, etc. |
| Self-hosted | Fără limită fixă | Limitat de resursele serverului |
| Per pagină | Maximum 100 înregistrări | Implicit este 10 |
| Operații în lot | 100 articole/lot | Creare, actualizare sau ștergere |
Performanță server
Magazinele WooCommerce mari pot experimenta răspunsuri API lente. Utilizați paginare, limitați câmpurile cu parametrul _fields și programați sincronizările în bloc în orele de vârf redus.
Depanare
| Problemă | Cauză | Soluție |
|---|---|---|
401 Neautorizat | Chei API invalide | Regenerați Consumer Key/Secret în setările WooCommerce |
403 Interzis | Permisiuni insuficiente | Setați cheia API la acces Read/Write |
| Erori certificat SSL | SSL invalid pe site | Asigurați certificat SSL valid; setați verify_ssl: false doar pentru testare |
| Webhook-urile nu se execută | WordPress cron dezactivat | Activați WP-Cron sau configurați cron la nivel de server |
| Răspunsuri API lente | Bază de date mare | Optimizați baza de date WordPress, utilizați parametrul _fields |
| Câmpuri personalizate lipsă | Meta date neexpuse | Utilizați câmpul meta_data pentru a accesa meta-urile personalizate |
| Probleme de paginare | Dimensiune pagină implicită | Setați explicit parametrul per_page (max 100) |
Bune practici
- Utilizați webhook-uri pentru sincronizare în timp real - Configurați webhook-urile WooCommerce în loc de polling-ul API
- Verificați semnăturile webhook - Validați întotdeauna antetul
X-WC-Webhook-Signature - Paginați toate cererile de listare - Utilizați parametrii
pageșiper_page; verificați antetulX-WP-TotalPages - Utilizați parametrul
_fields- Solicitați doar câmpurile necesare pentru a reduce dimensiunea răspunsului și a îmbunătăți performanța - Operații în lot - Utilizați punctele finale batch pentru operații create/update/delete în bloc (până la 100 articole)
- Programați sincronizările mari - Rulați sincronizările complete inițiale în orele de vârf redus pentru a evita supraîncărcarea serverului
- Activați HTTPS - API-ul WooCommerce necesită HTTPS pentru autentificarea OAuth
Securitate
- OAuth 1.0a - Autentificare securizată prin perechi Consumer Key/Secret
- Semnături HMAC webhook - Verificare semnătură SHA-256 pentru webhook-urile primite
- HTTPS necesar - API-ul necesită criptare TLS pentru autentificare
- Scop permisiuni - Cheile API pot fi setate la Citire, Scriere sau Citire/Scriere
- Securitate WordPress - Beneficiază de actualizările de securitate ale nucleului WordPress
- Considerații PCI - Datele de plată gestionate de gateway-urile de plată WooCommerce, neexpuse prin API