BigCommerce 연동 가이드
이 가이드는 고객 인게이지먼트, 로열티 프로그램, 마케팅 자동화 기능을 활용할 수 있도록 Tajo를 BigCommerce 스토어와 연동하는 과정을 안내합니다.
개요
Tajo와 BigCommerce를 연동하면 다음을 할 수 있습니다:
- 고객 데이터 동기화 BigCommerce 스토어에서 자동으로 가져옵니다
- 주문과 상품 추적 개인화된 마케팅에 활용합니다
- 로열티 프로그램 운영 포인트, 등급, 리워드를 제공합니다
- 마케팅 캠페인 자동화 Brevo를 통해 이메일, SMS, WhatsApp으로 실행합니다
- 고객 세분화 구매 행동과 인게이지먼트를 기준으로 나눕니다
- 다중 스토어프런트 지원 여러 스토어프런트 운영을 지원합니다
사전 준비 사항
연동을 시작하기 전에 다음을 준비하세요:
- BigCommerce 스토어 모든 요금제 가능 (Standard, Plus, Pro, Enterprise)
- Tajo 계정 활성 구독 상태
- Brevo 계정 (선택 사항, 마케팅 자동화용)
- 스토어 API 자격 증명 (적절한 스코프를 가진 API 계정)
1단계: Tajo 앱 설치
BigCommerce 앱 마켓플레이스에서 설치
- BigCommerce 관리자 패널로 이동합니다
- Apps → Marketplace로 이동합니다
- “Tajo”를 검색합니다
- Get This App을 클릭합니다
- 권한을 검토하고 Install을 클릭합니다
- 설정 마법사를 따라 Tajo 계정을 연결합니다
API 설정
설치가 끝나면 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" ]}2단계: 데이터 동기화 설정
고객 동기화 설정
동기화할 고객 데이터를 설정합니다:
{ "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 } }}웹훅 설정
Tajo는 다음 BigCommerce 웹훅을 등록합니다:
| 웹훅 | 목적 |
|---|---|
store/customer/created | 신규 고객을 Tajo와 Brevo로 동기화 |
store/customer/updated | 고객 프로필을 최신 상태로 유지 |
store/order/created | 구매를 추적하고 로열티 포인트 적립 |
store/order/statusUpdated | 상태 기반 캠페인 트리거 |
store/cart/created | 장바구니 방치 추적을 위한 장바구니 기록 |
store/cart/updated | 장바구니 방치 시퀀스 업데이트 |
store/product/updated | 상품 카탈로그 동기화 유지 |
다중 스토어프런트 지원
스토어프런트가 여러 개인 BigCommerce Enterprise의 경우:
{ "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 }}3단계: 로열티 프로그램 설정
포인트 시스템 설정
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 }};로열티 등급
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' ] }];4단계: B2B 고객 관리
회사 계정
BigCommerce는 Tajo와 연동되는 B2B 기능을 지원합니다:
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 } }};고객 그룹 연동
// 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' }};5단계: 방치된 장바구니 복구
장바구니 추적
// 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 });}복구 시퀀스
{ "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" ] }}6단계: 마케팅 자동화
고객 세그먼트
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 } } }];자동화된 캠페인
// 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; }});7단계: 분석
대시보드 지표
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() }};문제 해결
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; } }}웹훅 검증
// 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) );}다음 단계
- Brevo 연동 설정 이메일과 SMS 캠페인을 위해 설정합니다
- 웹훅 설정 실시간 이벤트를 위해 설정합니다
- 고객 세그먼트 만들기 타깃 마케팅을 위해 만듭니다
- 이메일 템플릿 만들기 자동화된 캠페인을 위해 만듭니다
지원
- 연동 지원: [email protected]
- BigCommerce 문서: developer.bigcommerce.com
- API 레퍼런스: docs.tajo.io/api
- 지원 문의하기: /kr/contact