WooCommerce Connector
WooCommerce Connector
Poveži svojo WooCommerce trgovino z Brevo prek Tajo za popolno sinhronizacijo podatkov e-trgovine. Izkoristi WooCommerce REST API za sinhronizacijo strank, naročil, izdelkov in kuponov za ciljne marketinške kampanje in avtomatizirane delovne tokove.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | WooCommerce (WordPress) |
| Kategorija | E-commerce |
| Zahtevnost nastavitve | Srednja |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Stranke, naročila, izdelki, kuponi |
| Razpoložljivi Skills | 10 |
Funkcionalnosti
- Sinhronizacija strank – sinhronizacija podatkov strank v stike Brevo v realnem času
- Sledenje naročilom – popolno sledenje življenjskemu ciklu naročila za tokove po nakupu
- Sinhronizacija kataloga izdelkov – sinhronizacija izdelkov in variacij za priporočila v e-mailih
- Upravljanje kuponov – sinhronizacija kuponskih kod za promocijske kampanje
- Podpora za webhooke – posodobitve v realnem času prek WooCommerce webhookov
- Opuščanje košarice – sledi in obnovi zapuščene košarice
- Podpora za več spletnih mest – poveži namestitve WordPress multisite WooCommerce
- Meta polja po meri – preslikaj WooCommerce meta polja po meri v atribute Brevo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- WordPress stran z nameščenim in aktiviranim vtičnikom WooCommerce
- Omogočen WooCommerce REST API (Settings > Advanced > REST API)
- Generirani API Consumer Key in Consumer Secret
- Tvoja stran mora uporabljati HTTPS za API avtentikacijo
- Brevo račun z dostopom do API
- Tajo račun z API poverilnicami
Avtentikacija
REST API ključi
WooCommerce uporablja pare Consumer Key in Consumer Secret za avtentikacijo. Generiraj jih v WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (HTTPS strani)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Avtentikacija prek poizvedbenega niza (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Ravni dovoljenj
| Dovoljenje | Dostop |
|---|---|
| Read | Samo pregled virov |
| Write | Ustvarjanje in urejanje virov |
| Read/Write | Poln CRUD dostop |
Konfiguracija
Osnovna nastavitev
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: 52Preslikava polj strank
Preslikaj polja strank WooCommerce v atribute 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_CATEGORYKonfiguracija webhookov
Registriraj webhooke 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 končne točke
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /wc/v3/customers | Seznam strank |
POST | /wc/v3/customers | Ustvari stranko |
GET | /wc/v3/customers/{id} | Pridobi stranko |
PUT | /wc/v3/customers/{id} | Posodobi stranko |
GET | /wc/v3/orders | Seznam naročil |
POST | /wc/v3/orders | Ustvari naročilo |
GET | /wc/v3/orders/{id} | Pridobi naročilo |
GET | /wc/v3/products | Seznam izdelkov |
GET | /wc/v3/products/{id} | Pridobi izdelek |
GET | /wc/v3/products/{id}/variations | Seznam variacij izdelka |
GET | /wc/v3/coupons | Seznam kuponov |
GET | /wc/v3/reports/sales | Pridobi prodajna poročila |
GET | /wc/v3/reports/top_sellers | Pridobi najboljše prodajalce |
POST | /wc/v3/webhooks | Ustvari webhook |
Primeri kode
Inicializacija WooCommerce konektorja
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});Pridobivanje in sinhronizacija strank
// 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'];Obravnava dogodkov 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');});Paketne 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]});Omejitve zahtevkov
WooCommerce sam ne uveljavlja API omejitev, lahko pa jih omeji WordPress strežnik in gostitelj:
| Dejavnik | Tipična omejitev | Podrobnosti |
|---|---|---|
| Deljeno gostovanje | 50–100 zahtevkov/min | Odvisno od gostitelja |
| Upravljano WP gostovanje | 200–500 zahtevkov/min | WP Engine, Kinsta itd. |
| Lastno gostovanje | Ni trde omejitve | Omejeno z viri strežnika |
| Na stran | Največ 100 zapisov | Privzeto 10 |
| Paketne operacije | 100 elementov/paket | Ustvari, posodobi ali izbriši |
Zmogljivost strežnika
Velike trgovine WooCommerce lahko imajo počasne API odzive. Uporabi paginacijo, omeji polja s parametrom _fields in načrtuj množične sinhronizacije izven konic.
Odpravljanje težav
| Težava | Vzrok | Rešitev |
|---|---|---|
401 Unauthorized | Neveljavni API ključi | Regeneriraj Consumer Key/Secret v nastavitvah WooCommerce |
403 Forbidden | Nezadostna dovoljenja | Nastavi API ključ na Read/Write dostop |
| Napake SSL certifikata | Neveljaven SSL na strani | Zagotovi veljaven SSL certifikat; nastavi verify_ssl: false samo za testiranje |
| Webhooki se ne sprožijo | Onemogočen WordPress cron | Omogoči WP-Cron ali nastavi cron na ravni strežnika |
| Počasni API odzivi | Velika baza podatkov | Optimiziraj WordPress bazo, uporabi parameter _fields |
| Manjkajo polja po meri | Meta podatki niso izpostavljeni | Uporabi polje meta_data za dostop do meta po meri |
| Težave s paginacijo | Privzeta velikost strani | Eksplicitno nastavi parameter per_page (največ 100) |
Najboljše prakse
- Uporabljaj webhooke za sinhronizacijo v realnem času – nastavi WooCommerce webhooke namesto poizvedovanja API
- Preveri podpise webhookov – vedno potrdi glavo
X-WC-Webhook-Signature - Paginaj vse zahteve seznamov – uporabi parametra
pageinper_page; preveri glavoX-WP-TotalPages - Uporabi parameter
_fields– zahtevaj samo potrebna polja za manjše odgovore in boljšo zmogljivost - Paketne operacije – uporabi paketne končne točke za množično ustvarjanje/posodabljanje/brisanje (do 100 elementov)
- Načrtuj velike sinhronizacije – začetne polne sinhronizacije izvajaj izven konic, da preprečiš obremenitev strežnika
- Omogoči HTTPS – WooCommerce API za OAuth avtentikacijo zahteva HTTPS
Varnost
- OAuth 1.0a – varna avtentikacija prek parov Consumer Key/Secret
- HMAC podpisi webhook – preverjanje SHA-256 podpisov za prihajajoče webhooke
- HTTPS obvezen – API zahteva TLS šifriranje za avtentikacijo
- Obsegana dovoljenja – API ključi so lahko nastavljeni na Read, Write ali Read/Write
- Varnost WordPress – koristi varnostne posodobitve jedra WordPress
- PCI premisleki – plačilne podatke obravnavajo plačilni prehodi WooCommerce, niso izpostavljeni prek API