WooCommerce Konektor
WooCommerce Konektor
Povežite svoju WooCommerce trgovinu s Brevom putem Taja za potpunu sinkronizaciju e-commerce podataka. Iskoristite WooCommerce REST API za sinkronizaciju kupaca, narudžbi, proizvoda i podataka o kuponima za ciljane marketinške kampanje i automatizirane tijekove rada.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | WooCommerce (WordPress) |
| Kategorija | E-commerce |
| Složenost postavljanja | Srednje |
| Službena integracija | Ne |
| Sinkronizirani podaci | Kupci, Narudžbe, Proizvodi, Kuponi |
| Dostupne vještine | 10 |
Značajke
- Sinkronizacija kupaca - Sinkronizacija podataka o kupcima u stvarnom vremenu s Brevo kontaktima
- Praćenje narudžbi - Potpuno praćenje životnog ciklusa narudžbi za tokove nakon kupnje
- Sinkronizacija kataloga proizvoda - Sinkronizacija proizvoda i varijacija za e-mail preporuke
- Upravljanje kuponima - Sinkronizacija kodova kupona za promotivne kampanje
- Podrška za webhookove - Ažuriranja u stvarnom vremenu putem WooCommerce webhookova
- Napuštanje košarice - Praćenje i oporavak napuštenih košarica
- Podrška za više stranica - Povežite WordPress multisite WooCommerce instalacije
- Prilagođena meta polja - Mapiranje WooCommerce prilagođenih meta polja na Brevo atribute
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- WordPress stranicu s instaliranim i aktiviranim WooCommerce dodatkom
- Omogućeni WooCommerce REST API (Postavke > Napredno > REST API)
- Generirani API Consumer Key i Consumer Secret
- Vaša stranica mora koristiti HTTPS za API autentifikaciju
- Brevo račun s API pristupom
- Tajo račun s API vjerodajnicama
Autentifikacija
REST API ključevi
WooCommerce koristi parove Consumer Key i Consumer Secret za autentifikaciju. Generirajte ih u WooCommerce > Postavke > Napredno > REST API.
OAuth 1.0a (HTTPS stranice)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentifikacija upitnim nizom (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Razine dozvola
| Dozvola | Pristup |
|---|---|
| Čitanje | Samo pregled resursa |
| Pisanje | Kreiranje i uređivanje resursa |
| Čitanje/Pisanje | Puni CRUD pristup |
Konfiguracija
Osnovna konfiguracija
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
# Opcije sinkronizacije podataka sync: customers: true orders: true products: true coupons: true
# Dodjela Brevo popisa lists: all_customers: 50 buyers: 51 abandoned_cart: 52Mapiranje polja kupaca
Mapirajte polja kupaca WooCommercea 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 metrike (izračunate) orders_count: ORDER_COUNT total_spent: TOTAL_SPENT date_created: SIGNUP_DATE
# Meta polja meta_data.loyalty_points: LOYALTY_POINTS meta_data.preferred_category: PREF_CATEGORYKonfiguracija webhookova
Registrirajte webhookove u WooCommerce > Postavke > Napredno > Webhookovi:
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 krajnje točke
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | /wc/v3/customers | Popis kupaca |
POST | /wc/v3/customers | Kreiraj kupca |
GET | /wc/v3/customers/{id} | Dohvati kupca |
PUT | /wc/v3/customers/{id} | Ažuriraj kupca |
GET | /wc/v3/orders | Popis narudžbi |
POST | /wc/v3/orders | Kreiraj narudžbu |
GET | /wc/v3/orders/{id} | Dohvati narudžbu |
GET | /wc/v3/products | Popis proizvoda |
GET | /wc/v3/products/{id} | Dohvati proizvod |
GET | /wc/v3/products/{id}/variations | Popis varijacija proizvoda |
GET | /wc/v3/coupons | Popis kupona |
GET | /wc/v3/reports/sales | Dohvati izvješća o prodaji |
GET | /wc/v3/reports/top_sellers | Dohvati najprodavanije |
POST | /wc/v3/webhooks | Kreiraj webhook |
Primjeri 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});
// Povežite WooCommerce trgovinuawait tajo.connectors.connect('woocommerce', { storeUrl: 'https://yourstore.com', consumerKey: process.env.WC_CONSUMER_KEY, consumerSecret: process.env.WC_CONSUMER_SECRET});Dohvaćanje i sinkronizacija kupaca
// Dohvatite kupce koristeći 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'});
// Popis kupaca s paginacijomconst 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, ... }]
// Informacije o paginaciji iz zaglavljaconst totalPages = response.headers['x-wp-totalpages'];const totalItems = response.headers['x-wp-total'];Rukovanje webhook događajima
// Handler za WooCommerce webhookoveapp.post('/webhooks/woocommerce', async (req, res) => { const topic = req.headers['x-wc-webhook-topic']; const signature = req.headers['x-wc-webhook-signature'];
// Verificirajte potpis webhookova const expectedSignature = crypto .createHmac('sha256', WEBHOOK_SECRET) .update(JSON.stringify(req.body)) .digest('base64');
if (signature !== expectedSignature) { return res.status(401).send('Invalid signature'); }
// Proslijedite Taju await tajo.connectors.handleWebhook('woocommerce', { topic, payload: req.body });
res.status(200).send('OK');});Skupne operacije
// Skupno kreiranje, ažuriranje i brisanje proizvodaconst 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 brzine
WooCommerce sam po sebi ne primjenjuje ograničenja brzine API-ja, ali temeljni WordPress server i pružatelj hostinga mogu nametati ograničenja:
| Faktor | Tipično ograničenje | Detalji |
|---|---|---|
| Dijeljeni hosting | 50-100 zah./min | Ovisi o hostu |
| Upravljani WP hosting | 200-500 zah./min | WP Engine, Kinsta, itd. |
| Self-hosted | Bez tvrdog ograničenja | Ograničeno resursima servera |
| Po stranici | Maks. 100 zapisa | Zadano je 10 |
| Skupne operacije | 100 stavki/skupno | Kreiranje, ažuriranje ili brisanje |
Performanse servera
Velike WooCommerce trgovine mogu doživjeti spore API odgovore. Koristite paginaciju, ograničite polja parametrom _fields i rasporedite skupne sinkronizacije izvan vršnih sati.
Rješavanje problema
| Problem | Uzrok | Rješenje |
|---|---|---|
401 Unauthorized | Nevažeći API ključevi | Regenerirajte Consumer Key/Secret u WooCommerce postavkama |
403 Forbidden | Nedovoljne dozvole | Postavite API ključ na pristup Čitanje/Pisanje |
| Greške SSL certifikata | Nevažeći SSL na stranici | Osigurajte valjani SSL certifikat; postavite verify_ssl: false samo za testiranje |
| Webhookovi se ne pokreću | WordPress cron onemogućen | Omogućite WP-Cron ili konfigurirajte cron na razini servera |
| Spori API odgovori | Velika baza podataka | Optimizirajte WordPress bazu podataka, koristite parametar _fields |
| Nedostaju prilagođena polja | Meta podaci nisu izloženi | Koristite polje meta_data za pristup prilagođenim meta podacima |
| Problemi s paginacijom | Zadana veličina stranice | Eksplicitno postavite parametar per_page (maks. 100) |
Preporučene prakse
- Koristite webhookove za sinkronizaciju u stvarnom vremenu - Konfigurirajte WooCommerce webhookove umjesto anketiranja API-ja
- Verificirajte potpise webhookova - Uvijek validirajte zaglavlje
X-WC-Webhook-Signature - Paginirajte sve zahtjeve za popise - Koristite parametre
pageiper_page; provjerite zaglavljeX-WP-TotalPages - Koristite parametar
_fields- Zatražite samo potrebna polja za smanjenje veličine odgovora i poboljšanje performansi - Skupne operacije - Koristite skupne krajnje točke za skupne operacije kreiranja/ažuriranja/brisanja (do 100 stavki)
- Rasporedite velike sinkronizacije - Pokrenite početne potpune sinkronizacije izvan vršnih sati kako biste izbjegli opterećenje servera
- Omogućite HTTPS - WooCommerce API zahtijeva HTTPS za OAuth autentifikaciju
Sigurnost
- OAuth 1.0a - Sigurna autentifikacija putem parova Consumer Key/Secret
- HMAC potpisi webhookova - Verifikacija SHA-256 potpisa za dolazne webhookove
- HTTPS obavezno - API zahtijeva TLS šifriranje za autentifikaciju
- Opsežavanje dozvola - API ključevi mogu se postaviti na Čitanje, Pisanje ili Čitanje/Pisanje
- WordPress sigurnost - Koristi od sigurnosnih ažuriranja WordPress jezgre
- PCI razmatranja - Podaci o plaćanju koje obrađuju WooCommerce platni prolazi, ne izloženi putem API-ja