BigCommerce 커넥터
BigCommerce 커넥터
BigCommerce 스토어를 Tajo를 통해 Brevo에 연결하여 완전한 이커머스 데이터 동기화를 구현하세요. 고객, 주문, 제품, 장바구니 이벤트를 동기화하여 타겟팅된 마케팅 캠페인, 장바구니 이탈 복구, 구매 후 자동화를 구동할 수 있습니다.
개요
| 속성 | 값 |
|---|---|
| 플랫폼 | BigCommerce |
| 카테고리 | 이커머스 |
| 설정 난이도 | 보통 |
| 공식 통합 | 아니오 |
| 동기화되는 데이터 | 고객, 주문, 제품, 장바구니 |
| 사용 가능한 스킬 | 10 |
주요 기능
- 고객 동기화 - Brevo 연락처로의 실시간 고객 데이터 동기화
- 주문 추적 - 구매 후 마케팅 플로우를 위한 주문 라이프사이클 이벤트
- 제품 카탈로그 동기화 - 이메일 추천 및 동적 콘텐츠를 위한 제품 동기화
- 장바구니 이탈 - 자동화된 이메일로 이탈한 장바구니 추적 및 복구
- 다중 스토어프론트 지원 - 여러 BigCommerce 스토어프론트 연결
- 웹훅 기반 업데이트 - BigCommerce 웹훅을 통한 실시간 데이터 업데이트
- 커스텀 필드 - BigCommerce 커스텀 필드를 Brevo 연락처 속성에 매핑
- 재고 추적 - 재입고 알림을 위한 재고 수준 동기화
사전 준비 사항
시작하기 전에 다음 사항이 준비되어 있어야 합니다.
- Store Owner 또는 Admin 액세스 권한이 있는 BigCommerce 스토어
- 적절한 OAuth 스코프를 가진 BigCommerce API 계정
- Store Hash (스토어 URL 또는 API 자격 증명에서 확인 가능)
- API 액세스가 가능한 Brevo 계정
- API 자격 증명이 있는 Tajo 계정
인증
API 계정 자격 증명
BigCommerce는 OAuth 기반 API 계정을 사용합니다. BigCommerce 관리 패널의 Settings > API > API Accounts에서 생성할 수 있습니다.
다음을 받게 됩니다.
- Client ID - 앱 식별자
- Client Secret - 앱 시크릿 (안전하게 보관)
- Access Token - API 인증에 사용
- Store Hash - 고유한 스토어 식별자
curl https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products \ -H "X-Auth-Token: YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"필수 OAuth 스코프
| 스코프 | 액세스 | 목적 |
|---|---|---|
store_v2_customers | Read | 고객 데이터 동기화 |
store_v2_orders | Read | 주문 이벤트 추적 |
store_v2_products | Read | 제품 카탈로그 동기화 |
store_cart | Read | 장바구니 이탈 추적 |
store_v2_information | Read | 스토어 설정 |
store_v2_content | Read | 스토어프론트 콘텐츠 |
설정
기본 설정
connectors: bigcommerce: enabled: true store_hash: "your-store-hash" access_token: "your-access-token" client_id: "your-client-id"
# Data sync options sync: customers: true orders: true products: true carts: true inventory: false
# Brevo list assignment lists: all_customers: 40 buyers: 41 abandoned_cart: 42고객 필드 매핑
BigCommerce 고객 필드를 Brevo 속성에 매핑합니다.
customer_mapping: email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS company: COMPANY
# Address fields addresses[0].city: CITY addresses[0].state: STATE addresses[0].country: COUNTRY addresses[0].zip: ZIP
# E-commerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_SPENT date_created: SIGNUP_DATE
# Customer group customer_group_id: CUSTOMER_GROUP웹훅 설정
webhooks: - scope: "store/customer/created" destination: "customer_created" - scope: "store/customer/updated" destination: "customer_updated" - scope: "store/order/created" destination: "order_placed" - scope: "store/order/updated" destination: "order_updated" - scope: "store/order/statusUpdated" destination: "order_status_changed" - scope: "store/cart/created" destination: "cart_created" - scope: "store/cart/updated" destination: "cart_updated" - scope: "store/cart/abandoned" destination: "cart_abandoned" - scope: "store/inventory/updated" destination: "inventory_changed"API 엔드포인트
| Method | 엔드포인트 | 설명 |
|---|---|---|
GET | /v3/customers | 고객 목록 조회 |
POST | /v3/customers | 고객 생성 |
PUT | /v3/customers | 고객 업데이트 |
GET | /v2/orders | 주문 목록 조회 |
GET | /v2/orders/{id} | 주문 세부 정보 조회 |
GET | /v3/catalog/products | 제품 목록 조회 |
GET | /v3/catalog/products/{id} | 제품 세부 정보 조회 |
GET | /v3/catalog/products/{id}/variants | 제품 variant 목록 |
GET | /v3/carts | 장바구니 목록 조회 |
GET | /v3/abandoned-carts | 이탈 장바구니 목록 조회 |
POST | /v3/hooks | 웹훅 생성 |
GET | /v3/catalog/categories | 카테고리 목록 조회 |
코드 예제
BigCommerce 커넥터 초기화
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect BigCommerce storeawait tajo.connectors.connect('bigcommerce', { storeHash: process.env.BC_STORE_HASH, accessToken: process.env.BC_ACCESS_TOKEN, clientId: process.env.BC_CLIENT_ID});고객 가져오기 및 동기화
// Fetch customers from BigCommerceconst response = await fetch( `https://api.bigcommerce.com/stores/${STORE_HASH}/v3/customers?limit=250`, { headers: { 'X-Auth-Token': ACCESS_TOKEN, 'Content-Type': 'application/json' } });
const { data, meta } = await response.json();// data: [{ id, email, first_name, last_name, phone, ... }]// meta.pagination: { total, count, per_page, current_page, total_pages }웹훅 이벤트 처리
// BigCommerce webhook handlerapp.post('/webhooks/bigcommerce', async (req, res) => { const { scope, store_id, data } = req.body;
// Verify the webhook is from your store if (store_id !== process.env.BC_STORE_HASH) { return res.status(401).send('Unauthorized'); }
// Forward to Tajo await tajo.connectors.handleWebhook('bigcommerce', { topic: scope, payload: data });
res.status(200).send('OK');});제품 카탈로그 동기화
// Full product catalog syncawait tajo.connectors.sync('bigcommerce', { type: 'full', resources: ['products'], includeVariants: true, includeImages: true});
// Check sync statusconst status = await tajo.connectors.status('bigcommerce');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 8200,// ordersCount: 4500,// productsCount: 620// }요청 제한
| 플랜 | 제한 | 세부 사항 |
|---|---|---|
| Standard | 150회/30초 | 스토어당 |
| Plus | 300회/30초 | 스토어당 |
| Pro | 450회/30초 | 스토어당 |
| Enterprise | 무제한 | 커스텀 제한 |
추가 제한 사항:
| 리소스 | 제한 |
|---|---|
| 웹훅 | 스토어당 100개 |
| 페이지당 | 최대 250개 레코드 |
| 동시 요청 | 플랜에 따라 다름 |
요청 제한 헤더
제한 내에서 API 사용량을 관리하려면 X-Rate-Limit-Requests-Left 및 X-Rate-Limit-Time-Reset-Ms 헤더를 모니터링하세요.
문제 해결
| 문제 | 원인 | 해결 방법 |
|---|---|---|
401 Unauthorized | 유효하지 않은 액세스 토큰 | BigCommerce 관리자에서 API 자격 증명을 재생성하세요 |
403 Forbidden | OAuth 스코프 누락 | API 계정 스코프를 확인하고 필수 권한을 추가하세요 |
| 웹훅이 실행되지 않음 | 웹훅 제한 도달 | 웹훅 수(최대 100개)를 확인하고 사용하지 않는 것을 제거하세요 |
| 장바구니 이벤트 누락 | 스토어프론트 스크립트가 로드되지 않음 | BigCommerce 스토어프론트에서 추적 스크립트를 확인하세요 |
| 제품이 동기화되지 않음 | 카탈로그 캐시 | 수동 동기화를 트리거하거나 웹훅 업데이트를 기다리세요 |
429 Too Many Requests | 요청 제한 초과 | 요청 제한 헤더 모니터링과 함께 요청 큐잉을 구현하세요 |
| 고객 그룹 누락 | V2 vs V3 API | 고객 그룹은 V2 API를 사용합니다. 엔드포인트 버전을 확인하세요 |
모범 사례
- 가능한 경우 V3 API 사용 - V3 API는 더 나은 페이지네이션, 필터링 및 JSON 응답을 제공합니다
- 요청 제한 헤더 모니터링 - 제한에 도달하지 않도록
X-Rate-Limit-Requests-Left를 추적하세요 - 실시간 동기화를 위해 웹훅 등록 - 고객 및 주문 업데이트에 폴링 대신 웹훅을 사용하세요
- 고객 업데이트 배치 처리 - 대규모 데이터 동기화에 V3 대량 고객 엔드포인트를 사용하세요
- 제품 동기화에 variant 포함 - 정확한 재고 추적을 위해 제품 variant를 동기화하세요
- 이탈 장바구니 웹훅 설정 - 장바구니 복구 이메일 자동화에 필수적입니다
- 페이지네이션 사용 - 목록 엔드포인트는 항상 페이지네이션하세요. 페이지당 최대 250개 레코드
보안
- OAuth 토큰 인증 - 안전한 토큰 기반 API 액세스
- 스코프 권한 - API 계정은 특정 데이터 스코프로 제한됩니다
- HTTPS 전용 - 모든 API 통신은 TLS로 암호화됩니다
- 웹훅 검증 - store hash를 사용해 웹훅 출처를 확인합니다
- PCI DSS 규정 준수 - BigCommerce는 결제 데이터를 안전하게 처리합니다
- SOC 2 Type II - BigCommerce 플랫폼은 SOC 2 인증을 받았습니다