BigCommerce コネクター

BigCommerce コネクター

BigCommerce ストアを Tajo 経由で Brevo に接続して、完全な eコマースデータ同期を実現します。顧客、注文、商品、カートイベントを同期し、ターゲットを絞ったマーケティングキャンペーン、カゴ落ち回復、購入後オートメーションを支えます。

概要

項目
プラットフォームBigCommerce
カテゴリーeコマース
セットアップ難易度
公式統合なし
同期データ顧客、注文、商品、カート
利用可能なスキル10

機能

  • 顧客同期 - リアルタイムで顧客データを Brevo コンタクトへ同期
  • 注文追跡 - 購入後マーケティングフロー向けの注文ライフサイクルイベント
  • 商品カタログ同期 - メールレコメンデーションや動的コンテンツ用に商品を同期
  • カゴ落ち - 放棄カートを追跡し自動メールで回復
  • マルチストアフロント対応 - 複数の BigCommerce ストアフロントを接続
  • ウェブフック駆動の更新 - BigCommerce ウェブフックによるリアルタイム更新
  • カスタムフィールド - BigCommerce のカスタムフィールドを Brevo コンタクト属性にマッピング
  • 在庫追跡 - 入荷通知のために在庫数を同期

前提条件

開始する前に、以下をご用意ください。

  1. ストアオーナーまたは管理者権限のある BigCommerce ストア
  2. 適切な OAuth スコープを持つ BigCommerce API アカウント
  3. ストアハッシュ (ストア URL または API 認証情報に表示)
  4. API アクセス付きの Brevo アカウント
  5. API 認証情報を持つ Tajo アカウント

認証

API アカウント認証情報

BigCommerce は OAuth ベースの API アカウントを使用します。BigCommerce コントロールパネルの Settings > API > API Accounts で作成します。

以下を受け取ります。

  • Client ID - アプリの識別子
  • Client Secret - アプリのシークレット (安全に保管)
  • Access Token - API 認証に使用
  • Store Hash - 固有のストア識別子
Terminal window
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_customersRead顧客データ同期
store_v2_ordersRead注文イベント追跡
store_v2_productsRead商品カタログ同期
store_cartReadカゴ落ち追跡
store_v2_informationReadストア設定
store_v2_contentReadストアフロントコンテンツ

設定

基本セットアップ

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 エンドポイント

メソッドエンドポイント説明
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商品バリアント一覧を取得
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 store
await 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 BigCommerce
const 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 handler
app.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 sync
await tajo.connectors.sync('bigcommerce', {
type: 'full',
resources: ['products'],
includeVariants: true,
includeImages: true
});
// Check sync status
const status = await tajo.connectors.status('bigcommerce');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// customersCount: 8200,
// ordersCount: 4500,
// productsCount: 620
// }

レート制限

プラン制限詳細
Standard150 リクエスト/30 秒ストアごと
Plus300 リクエスト/30 秒ストアごと
Pro450 リクエスト/30 秒ストアごと
Enterprise無制限カスタム制限

追加制限:

リソース制限
ウェブフックストアあたり 100
1 ページあたり最大 250 レコード
同時リクエストプラン依存

レート制限ヘッダー

X-Rate-Limit-Requests-LeftX-Rate-Limit-Time-Reset-Ms ヘッダーを監視して、API の利用状況を制限内に収めてください。

トラブルシューティング

問題原因解決策
401 Unauthorized無効なアクセストークンBigCommerce 管理画面で API 認証情報を再生成
403 ForbiddenOAuth スコープ不足API アカウントのスコープを確認し必要権限を追加
ウェブフックが発火しないウェブフック上限到達ウェブフック数を確認 (最大 100) し未使用分を削除
カートイベントが欠落ストアフロントスクリプト未読込BigCommerce ストアフロントのトラッキングスクリプトを確認
商品が同期されないカタログキャッシュ手動同期をトリガーするかウェブフック更新を待つ
429 Too Many Requestsレート制限超過レート制限ヘッダー監視による待機キューを実装
顧客グループが欠落V2 と V3 API の違い顧客グループは V2 API を使用。エンドポイントのバージョンを確認

ベストプラクティス

  1. 可能な限り V3 API を使用 - V3 API はページネーション、フィルタリング、JSON レスポンスが優れています
  2. レート制限ヘッダーを監視 - X-Rate-Limit-Requests-Left を追跡して制限到達を回避
  3. リアルタイム同期にウェブフックを登録 - 顧客と注文の更新にはポーリングではなくウェブフックを使用
  4. 顧客更新をバッチで処理 - 大規模データ同期には V3 の一括顧客エンドポイントを使用
  5. 商品同期にバリアントを含める - 正確な在庫追跡のため商品バリアントも同期
  6. カゴ落ちウェブフックを設定 - カート回復メールオートメーションには必須
  7. ページネーションを使用 - リストエンドポイントは必ずページ分割 (1 ページ最大 250 レコード)

セキュリティ

  • OAuth トークン認証 - 安全なトークンベースの API アクセス
  • スコープ権限 - API アカウントは特定データスコープに限定
  • HTTPS 限定 - すべての API 通信は TLS で暗号化
  • ウェブフック検証 - ストアハッシュでウェブフック送信元を検証
  • PCI DSS 準拠 - BigCommerce は決済データを安全に処理
  • SOC 2 Type II - BigCommerce プラットフォームは SOC 2 認証取得済み

関連リソース

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。

Brevoで無料で始める