Panduan integrasi BigCommerce
Panduan ini memandu Anda mengintegrasikan Tajo dengan toko BigCommerce Anda untuk membuka kemampuan keterlibatan pelanggan, program loyalitas, dan otomatisasi pemasaran.
Ikhtisar
Integrasi Tajo dan BigCommerce memungkinkan Anda untuk:
- Menyinkronkan data pelanggan secara otomatis dari toko BigCommerce Anda
- Melacak pesanan dan produk untuk pemasaran yang dipersonalisasi
- Menjalankan program loyalitas dengan poin, tingkatan, dan hadiah
- Mengotomatiskan kampanye pemasaran lewat Brevo (email, SMS, WhatsApp)
- Menyegmentasi pelanggan berdasarkan perilaku pembelian dan keterlibatan
- Mendukung operasi multi-storefront
Prasyarat
Sebelum memulai integrasi, pastikan Anda memiliki:
- Toko BigCommerce pada paket apa pun (Standard, Plus, Pro, atau Enterprise)
- Akun Tajo dengan langganan aktif
- Akun Brevo (opsional, untuk otomatisasi pemasaran)
- Kredensial API toko (akun API dengan scope yang sesuai)
Langkah 1: Pasang aplikasi Tajo
Dari BigCommerce App Marketplace
- Buka control panel BigCommerce Anda
- Masuk ke Apps → Marketplace
- Cari “Tajo”
- Klik Get This App
- Tinjau izin yang diminta, lalu klik Install
- Ikuti wizard penyiapan untuk menghubungkan akun Tajo Anda
Konfigurasi API
Setelah pemasangan selesai, konfigurasikan akses API:
{ "api_credentials": { "client_id": "your_client_id", "client_secret": "your_client_secret", "access_token": "your_access_token", "store_hash": "your_store_hash" }, "scopes": [ "store_v2_customers", "store_v2_orders", "store_v2_products", "store_cart", "store_checkout" ]}Langkah 2: Konfigurasikan sinkronisasi data
Pengaturan sinkronisasi pelanggan
Tentukan data pelanggan mana yang akan disinkronkan:
{ "sync_settings": { "customers": { "enabled": true, "sync_frequency": "real-time", "fields": [ "email", "first_name", "last_name", "phone", "company", "customer_group_id", "store_credit", "addresses", "date_created" ] }, "orders": { "enabled": true, "sync_frequency": "real-time", "include_products": true, "include_shipping": true, "include_coupons": true }, "products": { "enabled": true, "sync_frequency": "hourly", "include_variants": true, "include_images": true, "include_custom_fields": true } }}Konfigurasi webhook
Tajo mendaftarkan webhook BigCommerce berikut:
| Webhook | Kegunaan |
|---|---|
store/customer/created | Menyinkronkan pelanggan baru ke Tajo & Brevo |
store/customer/updated | Menjaga profil pelanggan tetap mutakhir |
store/order/created | Melacak pembelian, memberikan poin loyalitas |
store/order/statusUpdated | Memicu kampanye berbasis status |
store/cart/created | Melacak keranjang untuk deteksi pengabaian |
store/cart/updated | Memperbarui rangkaian pemulihan keranjang |
store/product/updated | Menjaga katalog produk tetap tersinkronisasi |
Dukungan multi-storefront
Untuk BigCommerce Enterprise dengan beberapa storefront:
{ "multi_storefront": { "enabled": true, "storefronts": [ { "channel_id": 1, "name": "Main Store", "loyalty_program": "default" }, { "channel_id": 2, "name": "Wholesale", "loyalty_program": "b2b_program" }, { "channel_id": 3, "name": "International", "loyalty_program": "global_program" } ], "sync_across_channels": true }}Langkah 3: Siapkan program loyalitas
Konfigurasikan sistem poin
const pointsConfig = { // Points per dollar spent purchasePoints: { enabled: true, rate: 1, // 1 point per $1 roundingMode: 'floor' },
// Bonus actions bonusPoints: { accountCreation: 100, firstPurchase: 200, reviewSubmitted: 50, referralMade: 500, birthdayBonus: 100, newsletterSignup: 25 },
// Customer group multipliers customerGroupMultipliers: { 'Retail': 1.0, 'VIP': 1.5, 'Wholesale': 0.5, 'Platinum': 2.0 }};Tingkatan loyalitas
const loyaltyTiers = [ { name: 'Bronze', minPoints: 0, benefits: [ '1 point per $1 spent', 'Birthday bonus points', 'Member-only promotions' ] }, { name: 'Silver', minPoints: 1000, benefits: [ '1.25x points multiplier', 'Free shipping on orders $50+', 'Early access to sales' ] }, { name: 'Gold', minPoints: 5000, benefits: [ '1.5x points multiplier', 'Free shipping on all orders', 'Exclusive product access', 'Priority support' ] }, { name: 'Platinum', minPoints: 15000, benefits: [ '2x points multiplier', 'Free express shipping', 'VIP experiences', 'Dedicated account manager' ] }];Langkah 4: Manajemen pelanggan B2B
Akun perusahaan
BigCommerce mendukung fitur B2B yang terintegrasi dengan Tajo:
const b2bConfig = { companyAccounts: { enabled: true, syncCompanyData: true, fields: [ 'company_name', 'tax_id', 'credit_limit', 'payment_terms', 'price_list' ] },
// B2B-specific loyalty rules b2bLoyalty: { orderVolumeBonus: { threshold: 10000, bonusMultiplier: 1.5 }, reorderPoints: { enabled: true, rate: 0.5 // 0.5 points per $1 on reorders } }};Integrasi grup pelanggan
// Map BigCommerce customer groups to Tajo segmentsconst customerGroupMapping = { 'Retail': { tajoSegment: 'retail_customers', loyaltyTier: 'Bronze', emailList: 'retail_newsletter' }, 'Wholesale': { tajoSegment: 'wholesale_customers', loyaltyTier: 'Silver', emailList: 'wholesale_updates' }, 'VIP': { tajoSegment: 'vip_customers', loyaltyTier: 'Gold', emailList: 'vip_exclusive' }};Langkah 5: Pemulihan keranjang yang ditinggalkan
Pelacakan keranjang
// BigCommerce cart webhook handlerasync function handleCartWebhook(event) { const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) { return; // Can't track without identity }
await tajo.carts.track({ customerId: cart.customer_id, email: cart.email, cartId: cart.id, items: cart.line_items.physical_items.map(item => ({ productId: item.product_id, variantId: item.variant_id, title: item.name, quantity: item.quantity, price: item.sale_price || item.list_price, image: item.image_url })), totalPrice: cart.cart_amount, currency: cart.currency.code, checkoutUrl: cart.redirect_urls?.checkout_url });}Rangkaian pemulihan
{ "abandoned_cart_sequence": { "trigger": { "event": "cart_abandoned", "delay": "1 hour" }, "messages": [ { "delay": "1 hour", "channel": "email", "template": "cart_reminder_1", "subject": "You left something behind!" }, { "delay": "24 hours", "channel": "email", "template": "cart_reminder_2", "subject": "Your cart is waiting - 10% off inside" }, { "delay": "72 hours", "channel": "sms", "template": "cart_sms_final" } ], "exit_conditions": [ "order_completed", "cart_emptied", "unsubscribed" ] }}Langkah 6: Otomatisasi pemasaran
Segmen pelanggan
const bigcommerceSegments = [ // Purchase behavior { name: 'First-Time Buyers', conditions: { orders_count: 1 } }, { name: 'Repeat Customers', conditions: { orders_count: { $gte: 2 } } }, { name: 'High-Value Customers', conditions: { total_spent: { $gte: 1000 } } },
// Customer groups { name: 'Wholesale Accounts', conditions: { customer_group: 'Wholesale' } },
// Engagement { name: 'At-Risk Customers', conditions: { last_order_date: { $lt: '-90 days' }, orders_count: { $gte: 2 } } }];Kampanye otomatis
// Order status change triggersbigcommerce.webhooks.on('store/order/statusUpdated', async (event) => { const order = await bigcommerce.orders.get(event.data.orderId); const customer = await tajo.customers.getByEmail(order.billing_address.email);
switch (event.data.status.new_status) { case 'Shipped': await brevo.trackEvent(customer.email, 'order_shipped', { orderId: order.id, trackingNumber: order.tracking_number, carrier: order.shipping_carrier }); break;
case 'Completed': // Award loyalty points const points = calculatePoints(order, customer); await tajo.loyalty.awardPoints(customer.id, points);
// Trigger review request after 14 days await brevo.scheduleEvent(customer.email, 'review_request', { orderId: order.id, products: order.products }, { delay: '14 days' }); break; }});Langkah 7: Analitik
Metrik dasbor
const dashboardMetrics = { customers: { total: await tajo.analytics.count('customers'), byChannel: await tajo.analytics.groupBy('customers', 'channel_id'), newThisMonth: await tajo.analytics.count('customers', { created_at: { $gte: 'this_month' } }) },
revenue: { total: await tajo.analytics.sum('orders.total'), byChannel: await tajo.analytics.groupBy('orders', 'channel_id', { aggregate: 'sum', field: 'total' }), averageOrderValue: await tajo.analytics.avg('orders.total') },
loyalty: { activeMembers: await tajo.analytics.count('loyalty_members'), pointsIssued: await tajo.analytics.sum('points.awarded'), redemptionRate: await tajo.analytics.pointsRedemptionRate() }};Pemecahan masalah
Batas laju API
// Implement rate limitingasync function bigcommerceApiCall(endpoint, options, retries = 3) { for (let i = 0; i < retries; i++) { try { const response = await fetch(endpoint, options);
if (response.status === 429) { const retryAfter = response.headers.get('X-Rate-Limit-Time-Reset-Ms'); await sleep(parseInt(retryAfter) || Math.pow(2, i) * 1000); continue; }
return response; } catch (error) { if (i === retries - 1) throw error; } }}Verifikasi webhook
// Verify BigCommerce webhook signaturefunction verifyWebhook(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('base64');
return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(signature) );}Langkah berikutnya
- Konfigurasikan integrasi Brevo untuk kampanye email/SMS
- Siapkan webhook untuk event real-time
- Buat segmen pelanggan untuk pemasaran tertarget
- Bangun template email untuk kampanye otomatis
Dukungan
- Dukungan integrasi: [email protected]
- Dokumentasi BigCommerce: developer.bigcommerce.com
- Referensi API: docs.tajo.io/api
- Hubungi dukungan: /in/contact