WooCommerce konektor
WooCommerce konektor
Poveži svoju WooCommerce prodavnicu sa Brevo preko Tajo za kompletnu sinhronizaciju e-commerce podataka. Iskoristi WooCommerce REST API za sinhronizaciju kupaca, porudžbina, proizvoda i kupona za ciljane marketing kampanje i automatizovane tokove rada.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | WooCommerce (WordPress) |
| Kategorija | E-commerce |
| Složenost podešavanja | Srednja |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Kupci, porudžbine, proizvodi, kuponi |
| Dostupne veštine | 10 |
Karakteristike
- Sinhronizacija kupaca - Sinhronizacija podataka o kupcima sa Brevo kontaktima u realnom vremenu
- Praćenje porudžbina - Praćenje događaja kroz kompletan životni ciklus porudžbine za post-purchase tokove
- Sinhronizacija kataloga proizvoda - Sinhronizuj proizvode i varijacije za preporuke u email-u
- Upravljanje kuponima - Sinhronizuj kodove kupona za promotivne kampanje
- Webhook podrška - Ažuriranja u realnom vremenu preko WooCommerce webhook-ova
- Napuštanje korpe - Prati i oporavi napuštene korpe
- Multi-site podrška - Poveži WordPress multisite WooCommerce instalacije
- Prilagođena meta polja - Mapiraj WooCommerce prilagođene meta podatke na Brevo atribute
Preduslovi
Pre nego što započneš, proveri da imaš:
- WordPress sajt sa instaliranim i aktiviranim WooCommerce plugin-om
- Omogućen WooCommerce REST API (Settings > Advanced > REST API)
- Generisane API Consumer Key i Consumer Secret
- Tvoj sajt mora koristiti HTTPS za API autentifikaciju
- Brevo nalog sa API pristupom
- Tajo nalog sa API kredencijalima
Autentifikacija
REST API ključevi
WooCommerce koristi parove Consumer Key i Consumer Secret za autentifikaciju. Generiši ih u WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (HTTPS sajtovi)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentifikacija preko Query String-a (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Nivoi dozvola
| Dozvola | Pristup |
|---|---|
| Read | Samo pregled resursa |
| Write | Kreiranje i izmena resursa |
| Read/Write | Potpun CRUD pristup |
Konfiguracija
Osnovno podešavanje
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: 52Mapiranje polja kupca
Mapiraj WooCommerce polja kupca na Brevo atribute:
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_CATEGORYKonfiguracija webhook-a
Registruj webhook-ove u 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 endpoint-i
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /wc/v3/customers | Lista kupaca |
POST | /wc/v3/customers | Kreiraj kupca |
GET | /wc/v3/customers/{id} | Preuzmi kupca |
PUT | /wc/v3/customers/{id} | Ažuriraj kupca |
GET | /wc/v3/orders | Lista porudžbina |
POST | /wc/v3/orders | Kreiraj porudžbinu |
GET | /wc/v3/orders/{id} | Preuzmi porudžbinu |
GET | /wc/v3/products | Lista proizvoda |
GET | /wc/v3/products/{id} | Preuzmi proizvod |
GET | /wc/v3/products/{id}/variations | Lista varijacija proizvoda |
GET | /wc/v3/coupons | Lista kupona |
GET | /wc/v3/reports/sales | Preuzmi izveštaje o prodaji |
GET | /wc/v3/reports/top_sellers | Preuzmi najprodavanije |
POST | /wc/v3/webhooks | Kreiraj webhook |
Primeri koda
Inicijalizacija WooCommerce konektora
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});Preuzimanje i sinhronizacija kupaca
// 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'];Obrada webhook događaja
// 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 operacije
// 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]});Ograničenja stope
WooCommerce sam po sebi ne primenjuje API limite, ali WordPress server i hosting provajder mogu nametnuti ograničenja:
| Faktor | Tipičan limit | Detalji |
|---|---|---|
| Shared hosting | 50-100 zahteva/min | Varira po hostu |
| Managed WP hosting | 200-500 zahteva/min | WP Engine, Kinsta, itd. |
| Self-hosted | Bez čvrstog limita | Ograničeno resursima servera |
| Po stranici | Najviše 100 zapisa | Podrazumevano je 10 |
| Batch operacije | 100 stavki/batch | Kreiraj, ažuriraj ili obriši |
Performanse servera
Velike WooCommerce prodavnice mogu doživeti spore API odgovore. Koristi paginaciju, ograniči polja parametrom _fields i zakaži masovne sinhronizacije van udarnih sati.
Rešavanje problema
| Problem | Uzrok | Rešenje |
|---|---|---|
401 Unauthorized | Neispravni API ključevi | Regeneriši Consumer Key/Secret u WooCommerce podešavanjima |
403 Forbidden | Nedovoljne dozvole | Postavi API ključ na Read/Write pristup |
| SSL sertifikatske greške | Neispravan SSL na sajtu | Obezbedi validan SSL sertifikat; postavi verify_ssl: false samo za testiranje |
| Webhook-ovi se ne okidaju | WordPress cron onemogućen | Uključi WP-Cron ili konfiguriši cron na nivou servera |
| Spori API odgovori | Velika baza podataka | Optimizuj WordPress bazu, koristi _fields parametar |
| Nedostaju prilagođena polja | Meta podaci nisu izloženi | Koristi meta_data polje za pristup prilagođenim meta podacima |
| Problemi sa paginacijom | Podrazumevana veličina stranice | Eksplicitno postavi per_page parametar (maks 100) |
Najbolje prakse
- Koristi webhook-ove za sinhronizaciju u realnom vremenu - Konfiguriši WooCommerce webhook-ove umesto pollinga API-ja
- Verifikuj potpise webhook-ova - Uvek validiraj
X-WC-Webhook-Signatureheader - Paginiraj sve list zahteve - Koristi
pageiper_pageparametre; proveriX-WP-TotalPagesheader - Koristi
_fieldsparametar - Traži samo potrebna polja da smanjiš veličinu odgovora i poboljšaš performanse - Batch operacije - Koristi batch endpoint-e za masovno kreiranje/ažuriranje/brisanje (do 100 stavki)
- Zakaži velike sinhronizacije - Pokreni inicijalne pune sinhronizacije van udarnih sati da izbegneš opterećenje servera
- Uključi HTTPS - WooCommerce API zahteva HTTPS za OAuth autentifikaciju
Bezbednost
- OAuth 1.0a - Bezbedna autentifikacija preko Consumer Key/Secret parova
- HMAC potpisi webhook-ova - SHA-256 verifikacija potpisa za dolazne webhook-ove
- Obavezan HTTPS - API zahteva TLS enkripciju za autentifikaciju
- Skopiranje dozvola - API ključevi se mogu postaviti na Read, Write ili Read/Write
- WordPress bezbednost - Koristi bezbednosna ažuriranja WordPress jezgra
- PCI razmatranja - Podatke o plaćanju obrađuju WooCommerce payment gateway-ovi, ne izlažu se preko API-ja