---
title: "BigCommerce コネクター"
description: "BigCommerce の顧客、注文、商品、ストアフロントデータを Tajo 経由で Brevo と同期するための完全統合ガイド。"
url: https://tajo.io/jp/docs/connectors/ecommerce/bigcommerce/
markdown: https://tajo.io/jp/docs/connectors/ecommerce/bigcommerce.md
lang: ja-JP
robots: noindex
---

先行利用を申し込む

お名前と会社のメールアドレスを入力してください。Tajoへのアクセス申請を確認するためのリンクをメールでお送りします。

# BigCommerce コネクター

コネクターのステータス: 開発中 構築中です。まだ検証されていません。

| 送信元フィールド | 送信先フィールド | サンプル値 |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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** - 固有のストア識別子

```bash
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 | ストアフロントコンテンツ |

## 設定

### 基本セットアップ

```yaml
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 属性にマッピングします。

```yaml
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
```

### ウェブフック設定

```yaml
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 コネクターの初期化

```javascript
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
});
```

### 顧客の取得と同期

```javascript
// 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 }
```

### ウェブフックイベントの処理

```javascript
// 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');
});
```

### 商品カタログの同期

```javascript
// 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
// }
```

## レート制限

| プラン | 制限 | 詳細 |
| --- | --- | --- |
| **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 を使用。エンドポイントのバージョンを確認 |

## ベストプラクティス

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 認証取得済み

## 関連リソース

- [Shopify コネクター](https://tajo.io/jp/docs/connectors/ecommerce/shopify)
- [WooCommerce コネクター](https://tajo.io/jp/docs/connectors/ecommerce/woocommerce)
- [顧客同期スキル](https://tajo.io/jp/docs/skills/data-sync/customer-sync)
- [カゴ落ちスキル](https://tajo.io/jp/docs/skills/email-marketing/abandoned-cart)
