WooCommerce Bağlayıcısı
WooCommerce Bağlayıcısı
WooCommerce mağazanızı eksiksiz e-ticaret veri senkronizasyonu için Tajo üzerinden Brevo’ya bağlayın. Hedefli pazarlama kampanyaları ve otomatik iş akışları için müşterileri, siparişleri, ürünleri ve kupon verilerini senkronize etmek üzere WooCommerce REST API’sini kullanın.
Genel Bakış
| Özellik | Değer |
|---|---|
| Platform | WooCommerce (WordPress) |
| Kategori | E-ticaret |
| Kurulum Karmaşıklığı | Orta |
| Resmi Entegrasyon | Hayır |
| Senkronize Edilen Veri | Müşteriler, Siparişler, Ürünler, Kuponlar |
| Mevcut Yetenekler | 10 |
Özellikler
- Müşteri senkronizasyonu - Brevo kişilerine gerçek zamanlı müşteri verisi senkronizasyonu
- Sipariş takibi - Satın alma sonrası akışlar için tam sipariş yaşam döngüsü olay takibi
- Ürün kataloğu senkronizasyonu - E-posta önerileri için ürünleri ve varyasyonları senkronize edin
- Kupon yönetimi - Promosyon kampanyaları için kupon kodlarını senkronize edin
- Webhook desteği - WooCommerce webhook’ları aracılığıyla gerçek zamanlı güncellemeler
- Sepet terki - Terk edilmiş sepetleri takip edin ve kurtarın
- Çoklu site desteği - WordPress multisite WooCommerce kurulumlarını bağlayın
- Özel meta alanları - WooCommerce özel meta verilerini Brevo özniteliklerine eşleyin
Ön Koşullar
Başlamadan önce sahip olmanız gerekenler:
- WooCommerce eklentisi yüklü ve etkinleştirilmiş bir WordPress sitesi
- WooCommerce REST API etkin (Settings > Advanced > REST API)
- API Consumer Key ve Consumer Secret oluşturulmuş
- Sitenizin API kimlik doğrulaması için HTTPS kullanması gerekir
- API erişimi olan bir Brevo hesabı
- API kimlik bilgilerine sahip bir Tajo hesabı
Kimlik Doğrulama
REST API Anahtarları
WooCommerce, kimlik doğrulama için Consumer Key ve Consumer Secret çiftlerini kullanır. Bunları WooCommerce > Settings > Advanced > REST API bölümünde oluşturun.
OAuth 1.0a (HTTPS siteleri)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Sorgu Dizesi Kimlik Doğrulaması (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"İzin Seviyeleri
| İzin | Erişim |
|---|---|
| Read | Yalnızca kaynakları görüntüle |
| Write | Kaynakları oluştur ve düzenle |
| Read/Write | Tam CRUD erişimi |
Yapılandırma
Temel Kurulum
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: 52Müşteri Alan Eşleme
WooCommerce müşteri alanlarını Brevo özniteliklerine eşleyin:
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_CATEGORYWebhook Yapılandırması
WooCommerce > Settings > Advanced > Webhooks bölümünden webhook’ları kaydedin:
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 Uç Noktaları
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /wc/v3/customers | Müşterileri listele |
POST | /wc/v3/customers | Bir müşteri oluştur |
GET | /wc/v3/customers/{id} | Bir müşteri getir |
PUT | /wc/v3/customers/{id} | Bir müşteriyi güncelle |
GET | /wc/v3/orders | Siparişleri listele |
POST | /wc/v3/orders | Bir sipariş oluştur |
GET | /wc/v3/orders/{id} | Bir sipariş getir |
GET | /wc/v3/products | Ürünleri listele |
GET | /wc/v3/products/{id} | Bir ürün getir |
GET | /wc/v3/products/{id}/variations | Ürün varyasyonlarını listele |
GET | /wc/v3/coupons | Kuponları listele |
GET | /wc/v3/reports/sales | Satış raporlarını getir |
GET | /wc/v3/reports/top_sellers | En çok satanları getir |
POST | /wc/v3/webhooks | Bir webhook oluştur |
Kod Örnekleri
WooCommerce Bağlayıcısını Başlat
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});Müşterileri Getir ve Senkronize Et
// 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'];Webhook Olaylarını İşle
// 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');});Toplu İşlemler
// 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]});Hız Limitleri
WooCommerce kendisi API hız limitleri uygulamaz, ancak alttaki WordPress sunucusu ve barındırma sağlayıcısı limitler getirebilir:
| Faktör | Tipik Limit | Detaylar |
|---|---|---|
| Paylaşımlı barındırma | 50-100 istek/dakika | Sağlayıcıya göre değişir |
| Yönetilen WP barındırma | 200-500 istek/dakika | WP Engine, Kinsta, vb. |
| Kendi sunucunuz | Sabit limit yok | Sunucu kaynaklarıyla sınırlı |
| Sayfa başına | Maksimum 100 kayıt | Varsayılan 10 |
| Toplu işlemler | Toplu başına 100 öğe | Oluştur, güncelle veya sil |
Sunucu Performansı
Büyük WooCommerce mağazaları yavaş API yanıtları yaşayabilir. Sayfalama kullanın, _fields parametresiyle alanları sınırlandırın ve toplu senkronizasyonları yoğun olmayan saatlere planlayın.
Sorun Giderme
| Sorun | Neden | Çözüm |
|---|---|---|
401 Unauthorized | Geçersiz API anahtarları | WooCommerce ayarlarında Consumer Key/Secret’ı yeniden oluşturun |
403 Forbidden | Yetersiz izinler | API anahtarını Read/Write erişimine ayarlayın |
| SSL sertifika hataları | Sitede geçersiz SSL | Geçerli SSL sertifikası sağlayın; yalnızca test için verify_ssl: false ayarlayın |
| Webhook’lar tetiklenmiyor | WordPress cron devre dışı | WP-Cron’u etkinleştirin veya sunucu seviyesi cron yapılandırın |
| Yavaş API yanıtları | Büyük veritabanı | WordPress veritabanını optimize edin, _fields parametresini kullanın |
| Özel alanlar eksik | Meta veriler ortaya çıkmamış | Özel meta verilere erişmek için meta_data alanını kullanın |
| Sayfalama sorunları | Varsayılan sayfa boyutu | Açıkça per_page parametresini ayarlayın (maks. 100) |
En İyi Uygulamalar
- Gerçek zamanlı senkronizasyon için webhook kullanın - API’yi sorgulamak yerine WooCommerce webhook’larını yapılandırın
- Webhook imzalarını doğrulayın -
X-WC-Webhook-Signaturebaşlığını her zaman doğrulayın - Tüm liste isteklerini sayfalandırın -
pageveper_pageparametrelerini kullanın;X-WP-TotalPagesbaşlığını kontrol edin _fieldsparametresini kullanın - Yanıt boyutunu azaltmak ve performansı artırmak için yalnızca gerekli alanları isteyin- Toplu işlemler - Toplu oluşturma/güncelleme/silme işlemleri için toplu uç noktaları kullanın (en fazla 100 öğe)
- Büyük senkronizasyonları planlayın - Sunucu yükünden kaçınmak için ilk tam senkronizasyonları yoğun olmayan saatlerde çalıştırın
- HTTPS’i etkinleştirin - WooCommerce API, OAuth kimlik doğrulaması için HTTPS gerektirir
Güvenlik
- OAuth 1.0a - Consumer Key/Secret çiftleri ile güvenli kimlik doğrulama
- HMAC webhook imzaları - Gelen webhook’lar için SHA-256 imza doğrulaması
- HTTPS gerekli - API, kimlik doğrulama için TLS şifrelemesi gerektirir
- İzin kapsamı - API anahtarları Read, Write veya Read/Write olarak ayarlanabilir
- WordPress güvenliği - WordPress çekirdek güvenlik güncellemelerinden faydalanır
- PCI değerlendirmeleri - Ödeme verileri WooCommerce ödeme ağ geçitleri tarafından işlenir, API üzerinden açık değildir