Konektor WooCommerce
Status konektor: Dalam pengerjaan Sedang dibangun. Belum terverifikasi.
Ilustrasi · data contoh
Contoh sinkronisasi
Sumber
WooCommerce
Status konektor: Dalam pengerjaan
Tujuan
Alat Anda yang lain
Status konektor: Alat khusus
Pemetaan field
| Field sumber | Field tujuan | Nilai contoh |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Susun draf
- Tinjau satu data
- Setujui versi ini
Status berlaku untuk masing-masing konektor dan tidak menjamin sinkronisasi ini siap. Field ini hanya ilustrasi. Periksa skema dan izin sebenarnya sebelum sinkronisasi berjalan.
Hubungkan toko WooCommerce Anda ke Brevo melalui Tajo untuk sinkronisasi data e-commerce yang lengkap. Manfaatkan WooCommerce REST API untuk menyinkronkan data pelanggan, pesanan, produk, dan kupon bagi kampanye pemasaran tertarget serta alur kerja otomatis.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | WooCommerce (WordPress) |
| Kategori | E-commerce |
| Kompleksitas penyiapan | Sedang |
| Integrasi resmi | Tidak |
| Data yang tersinkron | Pelanggan, Pesanan, Produk, Kupon |
| Skill yang tersedia | 10 |
Fitur
- Sinkronisasi pelanggan - Sinkronisasi data pelanggan secara real-time ke kontak Brevo
- Pelacakan pesanan - Pelacakan event siklus hidup pesanan secara penuh untuk alur pascapembelian
- Sinkronisasi katalog produk - Sinkronkan produk dan variasinya untuk rekomendasi email
- Manajemen kupon - Sinkronkan kode kupon untuk kampanye promosi
- Dukungan webhook - Pembaruan real-time melalui webhook WooCommerce
- Keranjang yang ditinggalkan - Lacak dan pulihkan keranjang yang ditinggalkan
- Dukungan multi-situs - Hubungkan instalasi WooCommerce pada WordPress multisite
- Custom meta field - Petakan custom meta WooCommerce ke atribut Brevo
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Situs WordPress dengan plugin WooCommerce terpasang dan aktif
- WooCommerce REST API yang sudah diaktifkan (Settings > Advanced > REST API)
- Consumer Key dan Consumer Secret API yang sudah dibuat
- Situs Anda harus memakai HTTPS untuk autentikasi API
- Akun Brevo dengan akses API
- Akun Tajo dengan kredensial API
Autentikasi
Key REST API
WooCommerce memakai pasangan Consumer Key dan Consumer Secret untuk autentikasi. Buat keduanya di WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (situs HTTPS)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentikasi query string (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Level izin
| Izin | Akses |
|---|---|
| Read | Hanya melihat sumber daya |
| Write | Membuat dan mengubah sumber daya |
| Read/Write | Akses CRUD penuh |
Konfigurasi
Penyiapan dasar
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: 52Pemetaan field pelanggan
Petakan field pelanggan WooCommerce ke atribut 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_CATEGORYKonfigurasi webhook
Daftarkan webhook di 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"Endpoint API
| Metode | Endpoint | Deskripsi |
|---|---|---|
GET | /wc/v3/customers | Daftar pelanggan |
POST | /wc/v3/customers | Buat seorang pelanggan |
GET | /wc/v3/customers/{id} | Ambil seorang pelanggan |
PUT | /wc/v3/customers/{id} | Perbarui seorang pelanggan |
GET | /wc/v3/orders | Daftar pesanan |
POST | /wc/v3/orders | Buat sebuah pesanan |
GET | /wc/v3/orders/{id} | Ambil sebuah pesanan |
GET | /wc/v3/products | Daftar produk |
GET | /wc/v3/products/{id} | Ambil sebuah produk |
GET | /wc/v3/products/{id}/variations | Daftar variasi produk |
GET | /wc/v3/coupons | Daftar kupon |
GET | /wc/v3/reports/sales | Ambil laporan penjualan |
GET | /wc/v3/reports/top_sellers | Ambil daftar produk terlaris |
POST | /wc/v3/webhooks | Buat sebuah webhook |
Contoh kode
Inisialisasi konektor 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});Ambil dan sinkronkan pelanggan
// 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'];Tangani event 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');});Operasi batch
// 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]});Batas rate
WooCommerce sendiri tidak menerapkan batas rate API, tetapi server WordPress yang mendasarinya dan penyedia hosting dapat memberlakukan batas:
| Faktor | Batas umum | Detail |
|---|---|---|
| Shared hosting | 50-100 permintaan/menit | Bervariasi menurut penyedia |
| Managed WP hosting | 200-500 permintaan/menit | WP Engine, Kinsta, dan sejenisnya |
| Self-hosted | Tanpa batas keras | Dibatasi oleh sumber daya server |
| Per halaman | Maksimum 100 record | Default-nya 10 |
| Operasi batch | 100 item/batch | Buat, perbarui, atau hapus |
Performa server
Toko WooCommerce berukuran besar dapat mengalami respons API yang lambat. Gunakan paginasi, batasi field dengan parameter _fields, dan jadwalkan sinkronisasi massal di luar jam sibuk.
Pemecahan masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
401 Unauthorized | Key API tidak valid | Buat ulang Consumer Key/Secret di pengaturan WooCommerce |
403 Forbidden | Izin tidak memadai | Setel key API ke akses Read/Write |
| Error sertifikat SSL | SSL situs tidak valid | Pastikan sertifikat SSL valid, setel verify_ssl: false hanya untuk pengujian |
| Webhook tidak terpicu | Cron WordPress nonaktif | Aktifkan WP-Cron atau konfigurasikan cron di level server |
| Respons API lambat | Database berukuran besar | Optimalkan database WordPress, gunakan parameter _fields |
| Custom field tidak muncul | Meta data tidak diekspos | Gunakan field meta_data untuk mengakses custom meta |
| Masalah paginasi | Ukuran halaman default | Setel parameter per_page secara eksplisit (maksimum 100) |
Praktik terbaik
- Gunakan webhook untuk sinkronisasi real-time - Konfigurasikan webhook WooCommerce alih-alih melakukan polling ke API
- Verifikasi tanda tangan webhook - Selalu validasi header
X-WC-Webhook-Signature - Paginasikan semua permintaan daftar - Gunakan parameter
pagedanper_page, lalu periksa headerX-WP-TotalPages - Gunakan parameter
_fields- Minta hanya field yang diperlukan untuk memperkecil ukuran respons dan meningkatkan performa - Operasi batch - Gunakan endpoint batch untuk operasi buat/perbarui/hapus massal (hingga 100 item)
- Jadwalkan sinkronisasi besar - Jalankan sinkronisasi penuh awal di luar jam sibuk agar server tidak terbebani
- Aktifkan HTTPS - WooCommerce API mewajibkan HTTPS untuk autentikasi OAuth
Keamanan
- OAuth 1.0a - Autentikasi aman melalui pasangan Consumer Key/Secret
- Tanda tangan webhook HMAC - Verifikasi tanda tangan SHA-256 untuk webhook yang masuk
- Wajib HTTPS - API mewajibkan enkripsi TLS untuk autentikasi
- Pembatasan izin - Key API dapat disetel ke Read, Write, atau Read/Write
- Keamanan WordPress - Memperoleh manfaat dari pembaruan keamanan inti WordPress
- Pertimbangan PCI - Data pembayaran ditangani oleh payment gateway WooCommerce dan tidak diekspos melalui API