Konektor WooCommerce
Konektor WooCommerce
Połącz swój sklep WooCommerce z Brevo przez Tajo, aby uzyskać pełną synchronizację danych e-commerce. Wykorzystaj WooCommerce REST API do synchronizacji klientów, zamówień, produktów i kuponów w ukierunkowanych kampaniach marketingowych oraz zautomatyzowanych przepływach pracy.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | WooCommerce (WordPress) |
| Kategoria | E-commerce |
| Poziom konfiguracji | Średni |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Klienci, Zamówienia, Produkty, Kupony |
| Dostępne Skills | 10 |
Funkcje
- Synchronizacja klientów - Synchronizacja danych klientów w czasie rzeczywistym do kontaktów Brevo
- Śledzenie zamówień - Pełne śledzenie zdarzeń cyklu życia zamówienia dla flow po zakupie
- Synchronizacja katalogu produktów - Synchronizuj produkty i wariacje do rekomendacji e-mailowych
- Zarządzanie kuponami - Synchronizuj kody kuponów dla kampanii promocyjnych
- Obsługa webhooków - Aktualizacje w czasie rzeczywistym przez webhooki WooCommerce
- Porzucone koszyki - Śledź i odzyskuj porzucone koszyki
- Obsługa multi-site - Podłącz instalacje multisite WordPress z WooCommerce
- Niestandardowe meta pola - Mapuj niestandardowe meta WooCommerce na atrybuty Brevo
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Witrynę WordPress z zainstalowaną i aktywowaną wtyczką WooCommerce
- Włączone WooCommerce REST API (Settings > Advanced > REST API)
- Wygenerowane Consumer Key i Consumer Secret
- Twoja witryna musi używać HTTPS do uwierzytelniania API
- Konto Brevo z dostępem do API
- Konto Tajo z danymi dostępowymi API
Uwierzytelnianie
Klucze REST API
WooCommerce używa par Consumer Key i Consumer Secret do uwierzytelniania. Wygeneruj je w WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (witryny HTTPS)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Uwierzytelnianie przez query string (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Poziomy uprawnień
| Uprawnienie | Dostęp |
|---|---|
| Read | Tylko odczyt zasobów |
| Write | Tworzenie i edycja zasobów |
| Read/Write | Pełny dostęp CRUD |
Konfiguracja
Podstawowa konfiguracja
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: 52Mapowanie pól klienta
Zmapuj pola klienta WooCommerce na atrybuty 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_CATEGORYKonfiguracja webhooków
Zarejestruj webhooki w 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"Endpointy API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /wc/v3/customers | Lista klientów |
POST | /wc/v3/customers | Utwórz klienta |
GET | /wc/v3/customers/{id} | Pobierz klienta |
PUT | /wc/v3/customers/{id} | Zaktualizuj klienta |
GET | /wc/v3/orders | Lista zamówień |
POST | /wc/v3/orders | Utwórz zamówienie |
GET | /wc/v3/orders/{id} | Pobierz zamówienie |
GET | /wc/v3/products | Lista produktów |
GET | /wc/v3/products/{id} | Pobierz produkt |
GET | /wc/v3/products/{id}/variations | Lista wariacji produktu |
GET | /wc/v3/coupons | Lista kuponów |
GET | /wc/v3/reports/sales | Pobierz raporty sprzedaży |
GET | /wc/v3/reports/top_sellers | Pobierz bestsellery |
POST | /wc/v3/webhooks | Utwórz webhook |
Przykłady kodu
Inicjalizacja konektora 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});Pobieranie i synchronizacja klientów
// 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'];Obsługa zdarzeń webhooków
// 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');});Operacje wsadowe
// 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]});Limity zapytań
Samo WooCommerce nie narzuca limitów API, ale leżący pod spodem serwer WordPress i dostawca hostingu mogą wprowadzać ograniczenia:
| Czynnik | Typowy limit | Szczegóły |
|---|---|---|
| Hosting współdzielony | 50-100 zap./min | Różnie w zależności od hosta |
| Zarządzany hosting WP | 200-500 zap./min | WP Engine, Kinsta itd. |
| Self-hosted | Brak twardego limitu | Ograniczony zasobami serwera |
| Na stronę | Maks. 100 rekordów | Domyślnie 10 |
| Operacje wsadowe | 100 elementów/wsad | Utwórz, zaktualizuj lub usuń |
Wydajność serwera
Duże sklepy WooCommerce mogą doświadczać wolnych odpowiedzi API. Używaj paginacji, ogranicz pola parametrem _fields i planuj synchronizacje masowe poza godzinami szczytu.
Rozwiązywanie problemów
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
401 Unauthorized | Nieprawidłowe klucze API | Wygeneruj ponownie Consumer Key/Secret w ustawieniach WooCommerce |
403 Forbidden | Niewystarczające uprawnienia | Ustaw klucz API na dostęp Read/Write |
| Błędy certyfikatu SSL | Nieprawidłowy SSL na witrynie | Upewnij się, że certyfikat SSL jest ważny; ustaw verify_ssl: false tylko do testów |
| Webhooki nie uruchamiają się | WordPress cron wyłączony | Włącz WP-Cron lub skonfiguruj crona na poziomie serwera |
| Wolne odpowiedzi API | Duża baza danych | Zoptymalizuj bazę WordPress, użyj parametru _fields |
| Brak niestandardowych pól | Meta dane nieujawnione | Użyj pola meta_data, aby uzyskać dostęp do niestandardowych meta |
| Problemy z paginacją | Domyślny rozmiar strony | Ustaw jawnie parametr per_page (maks. 100) |
Najlepsze praktyki
- Używaj webhooków do synchronizacji w czasie rzeczywistym - Konfiguruj webhooki WooCommerce zamiast odpytywać API
- Weryfikuj podpisy webhooków - Zawsze waliduj nagłówek
X-WC-Webhook-Signature - Paginuj wszystkie żądania listowe - Używaj parametrów
pageiper_page; sprawdzaj nagłówekX-WP-TotalPages - Używaj parametru
_fields- Żądaj tylko potrzebnych pól, aby zmniejszyć rozmiar odpowiedzi i poprawić wydajność - Operacje wsadowe - Używaj endpointów wsadowych do masowych operacji tworzenia/aktualizacji/usuwania (do 100 elementów)
- Planuj duże synchronizacje - Uruchamiaj wstępne pełne synchronizacje poza godzinami szczytu, aby nie obciążać serwera
- Włącz HTTPS - WooCommerce API wymaga HTTPS do uwierzytelniania OAuth
Bezpieczeństwo
- OAuth 1.0a - Bezpieczne uwierzytelnianie przez pary Consumer Key/Secret
- Podpisy webhooków HMAC - Weryfikacja podpisu SHA-256 dla przychodzących webhooków
- Wymagany HTTPS - API wymaga szyfrowania TLS do uwierzytelniania
- Zakresy uprawnień - Klucze API można ustawić na Read, Write lub Read/Write
- Bezpieczeństwo WordPress - Korzyści z aktualizacji bezpieczeństwa rdzenia WordPress
- Kwestie PCI - Dane płatności obsługiwane są przez bramki płatnicze WooCommerce, nie są ujawniane przez API