BigCommerce コネクター
BigCommerce コネクター
BigCommerce ストアを Tajo 経由で Brevo に接続して、完全な eコマースデータ同期を実現します。顧客、注文、商品、カートイベントを同期し、ターゲットを絞ったマーケティングキャンペーン、カゴ落ち回復、購入後オートメーションを支えます。
概要
| 項目 | 値 |
|---|---|
| プラットフォーム | BigCommerce |
| カテゴリー | eコマース |
| セットアップ難易度 | 中 |
| 公式統合 | なし |
| 同期データ | 顧客、注文、商品、カート |
| 利用可能なスキル | 10 |
機能
- 顧客同期 - リアルタイムで顧客データを Brevo コンタクトへ同期
- 注文追跡 - 購入後マーケティングフロー向けの注文ライフサイクルイベント
- 商品カタログ同期 - メールレコメンデーションや動的コンテンツ用に商品を同期
- カゴ落ち - 放棄カートを追跡し自動メールで回復
- マルチストアフロント対応 - 複数の BigCommerce ストアフロントを接続
- ウェブフック駆動の更新 - BigCommerce ウェブフックによるリアルタイム更新
- カスタムフィールド - BigCommerce のカスタムフィールドを Brevo コンタクト属性にマッピング
- 在庫追跡 - 入荷通知のために在庫数を同期
前提条件
開始する前に、以下をご用意ください。
- ストアオーナーまたは管理者権限のある BigCommerce ストア
- 適切な OAuth スコープを持つ BigCommerce API アカウント
- ストアハッシュ (ストア 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 エンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
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 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 |
| 1 ページあたり | 最大 250 レコード |
| 同時リクエスト | プラン依存 |
レート制限ヘッダー
X-Rate-Limit-Requests-Left と X-Rate-Limit-Time-Reset-Ms ヘッダーを監視して、API の利用状況を制限内に収めてください。
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
401 Unauthorized | 無効なアクセストークン | BigCommerce 管理画面で API 認証情報を再生成 |
403 Forbidden | OAuth スコープ不足 | API アカウントのスコープを確認し必要権限を追加 |
| ウェブフックが発火しない | ウェブフック上限到達 | ウェブフック数を確認 (最大 100) し未使用分を削除 |
| カートイベントが欠落 | ストアフロントスクリプト未読込 | BigCommerce ストアフロントのトラッキングスクリプトを確認 |
| 商品が同期されない | カタログキャッシュ | 手動同期をトリガーするかウェブフック更新を待つ |
429 Too Many Requests | レート制限超過 | レート制限ヘッダー監視による待機キューを実装 |
| 顧客グループが欠落 | V2 と V3 API の違い | 顧客グループは V2 API を使用。エンドポイントのバージョンを確認 |
ベストプラクティス
- 可能な限り V3 API を使用 - V3 API はページネーション、フィルタリング、JSON レスポンスが優れています
- レート制限ヘッダーを監視 -
X-Rate-Limit-Requests-Leftを追跡して制限到達を回避 - リアルタイム同期にウェブフックを登録 - 顧客と注文の更新にはポーリングではなくウェブフックを使用
- 顧客更新をバッチで処理 - 大規模データ同期には V3 の一括顧客エンドポイントを使用
- 商品同期にバリアントを含める - 正確な在庫追跡のため商品バリアントも同期
- カゴ落ちウェブフックを設定 - カート回復メールオートメーションには必須
- ページネーションを使用 - リストエンドポイントは必ずページ分割 (1 ページ最大 250 レコード)
セキュリティ
- OAuth トークン認証 - 安全なトークンベースの API アクセス
- スコープ権限 - API アカウントは特定データスコープに限定
- HTTPS 限定 - すべての API 通信は TLS で暗号化
- ウェブフック検証 - ストアハッシュでウェブフック送信元を検証
- PCI DSS 準拠 - BigCommerce は決済データを安全に処理
- SOC 2 Type II - BigCommerce プラットフォームは SOC 2 認証取得済み