Konektor WooCommerce
Konektor WooCommerce
Propoj svůj WooCommerce obchod s Brevo přes Tajo pro kompletní synchronizaci e-commerce dat. Využij WooCommerce REST API k synchronizaci zákazníků, objednávek, produktů a slevových kupónů pro cílené marketingové kampaně a automatizované workflowy.
Přehled
| Vlastnost | Hodnota |
|---|---|
| Platforma | WooCommerce (WordPress) |
| Kategorie | E-commerce |
| Složitost nastavení | Střední |
| Oficiální integrace | Ne |
| Synchronizovaná data | Zákazníci, Objednávky, Produkty, Kupóny |
| Dostupné skilly | 10 |
Funkce
- Synchronizace zákazníků - Real-time synchronizace zákaznických dat do kontaktů Brevo
- Sledování objednávek - Sledování celého životního cyklu objednávky pro post-purchase flow
- Synchronizace katalogu produktů - Synchronizace produktů a variant pro doporučení v emailech
- Správa kupónů - Synchronizace slevových kódů pro promo kampaně
- Podpora webhooků - Aktualizace v reálném čase přes WooCommerce webhooky
- Opuštěné košíky - Sledování a obnova opuštěných košíků
- Multi-site podpora - Propojení WordPress multisite instalací s WooCommerce
- Vlastní meta pole - Mapování WooCommerce vlastních meta dat na atributy Brevo
Předpoklady
Než začneš, ujisti se, že máš:
- WordPress stránku s nainstalovaným a aktivovaným WooCommerce pluginem
- Zapnuté WooCommerce REST API (Settings > Advanced > REST API)
- Vygenerovaný API Consumer Key a Consumer Secret
- Stránka musí používat HTTPS pro API autentizaci
- Brevo účet s API přístupem
- Tajo účet s API přihlašovacími údaji
Autentizace
REST API klíče
WooCommerce používá páry Consumer Key a Consumer Secret pro autentizaci. Vygeneruj je v WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (HTTPS stránky)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentizace přes query string (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Úrovně oprávnění
| Oprávnění | Přístup |
|---|---|
| Read | Pouze zobrazení prostředků |
| Write | Vytvoření a úprava prostředků |
| Read/Write | Plný CRUD přístup |
Konfigurace
Základní nastavení
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: 52Mapování polí zákazníků
Namapuj WooCommerce pole zákazníků na atributy 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_CATEGORYKonfigurace webhooků
Registruj webhooky v 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 endpointy
| Metoda | Endpoint | Popis |
|---|---|---|
GET | /wc/v3/customers | Seznam zákazníků |
POST | /wc/v3/customers | Vytvoření zákazníka |
GET | /wc/v3/customers/{id} | Získání zákazníka |
PUT | /wc/v3/customers/{id} | Aktualizace zákazníka |
GET | /wc/v3/orders | Seznam objednávek |
POST | /wc/v3/orders | Vytvoření objednávky |
GET | /wc/v3/orders/{id} | Získání objednávky |
GET | /wc/v3/products | Seznam produktů |
GET | /wc/v3/products/{id} | Získání produktu |
GET | /wc/v3/products/{id}/variations | Seznam variant produktu |
GET | /wc/v3/coupons | Seznam kupónů |
GET | /wc/v3/reports/sales | Reporty prodejů |
GET | /wc/v3/reports/top_sellers | Nejprodávanější produkty |
POST | /wc/v3/webhooks | Vytvoření webhooku |
Příklady kódu
Inicializace konektoru 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});Načtení a synchronizace zákazníků
// 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'];Zpracování událostí webhooku
// 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');});Dávkové operace
// 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]});Rate limity
WooCommerce sám o sobě nevynucuje API rate limity, ale podkladový WordPress server a hosting mohou uplatnit vlastní limity:
| Faktor | Typický limit | Detaily |
|---|---|---|
| Shared hosting | 50-100 req/min | Liší se dle hostingu |
| Managed WP hosting | 200-500 req/min | WP Engine, Kinsta atd. |
| Self-hosted | Bez pevného limitu | Omezeno zdroji serveru |
| Na stránku | Max 100 záznamů | Výchozí je 10 |
| Dávkové operace | 100 položek/dávka | Vytvoření, úprava nebo smazání |
Výkon serveru
Velké WooCommerce obchody mohou mít pomalé API odpovědi. Použij stránkování, omez pole parametrem _fields a plánuj hromadné synchronizace mimo špičku.
Řešení problémů
| Problém | Příčina | Řešení |
|---|---|---|
401 Unauthorized | Neplatné API klíče | Znovu vygeneruj Consumer Key/Secret v nastavení WooCommerce |
403 Forbidden | Nedostatečná oprávnění | Nastav API klíč na Read/Write přístup |
| Chyby SSL certifikátu | Neplatný SSL na stránce | Zajisti platný SSL certifikát; pro testování nastav verify_ssl: false |
| Webhooky nestřílí | Vypnutý WordPress cron | Povol WP-Cron nebo nakonfiguruj cron na úrovni serveru |
| Pomalé API odpovědi | Velká databáze | Optimalizuj WordPress databázi, použij parametr _fields |
| Chybí vlastní pole | Meta data nejsou vystavena | Pro přístup k vlastním meta použij pole meta_data |
| Problémy se stránkováním | Výchozí velikost stránky | Explicitně nastav parametr per_page (max 100) |
Best practices
- Pro real-time synchronizaci používej webhooky - Nakonfiguruj WooCommerce webhooky místo pollování API
- Ověřuj podpisy webhooků - Vždy validuj hlavičku
X-WC-Webhook-Signature - Stránkuj všechny list requesty - Používej parametry
pageaper_page; kontroluj hlavičkuX-WP-TotalPages - Používej parametr
_fields- Žádej jen potřebná pole pro zmenšení odpovědi a lepší výkon - Dávkové operace - Používej batch endpointy pro hromadné create/update/delete operace (až 100 položek)
- Plánuj velké synchronizace - Úvodní plné synchronizace pouštěj mimo špičku, abys nezatížil server
- Zapni HTTPS - WooCommerce API vyžaduje HTTPS pro OAuth autentizaci
Bezpečnost
- OAuth 1.0a - Bezpečná autentizace přes páry Consumer Key/Secret
- HMAC podpisy webhooků - SHA-256 verifikace podpisu pro příchozí webhooky
- Vyžadováno HTTPS - API vyžaduje TLS šifrování pro autentizaci
- Rozsahy oprávnění - API klíče lze nastavit na Read, Write nebo Read/Write
- Bezpečnost WordPressu - Profituje z bezpečnostních aktualizací WordPress jádra
- PCI úvahy - Platební data zpracovávají platební brány WooCommerce, nejsou vystavena přes API