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

先行利用を申し込む

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

# WooCommerce コネクター

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

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

WooCommerce ストアを Tajo 経由で Brevo に接続して、完全な eコマースデータ同期を実現します。WooCommerce REST API を活用し、顧客、注文、商品、クーポンデータを同期して、ターゲットを絞ったマーケティングキャンペーンや自動化ワークフローを実現できます。

## 概要

| 項目 | 値 |
| --- | --- |
| **プラットフォーム** | WooCommerce (WordPress) |
| **カテゴリー** | eコマース |
| **セットアップ難易度** | 中 |
| **公式統合** | なし |
| **同期データ** | 顧客、注文、商品、クーポン |
| **利用可能なスキル** | 10 |

## 機能

- **顧客同期** - リアルタイムで顧客データを Brevo コンタクトへ同期
- **注文追跡** - 購入後フロー向けに注文ライフサイクルイベントを完全追跡
- **商品カタログ同期** - メールレコメンデーション用に商品とバリエーションを同期
- **クーポン管理** - プロモーションキャンペーン用にクーポンコードを同期
- **ウェブフック対応** - WooCommerce ウェブフックによるリアルタイム更新
- **カゴ落ち** - 放棄カートの追跡と回復
- **マルチサイト対応** - WordPress マルチサイトの WooCommerce インストールに接続
- **カスタムメタフィールド** - WooCommerce カスタムメタを Brevo 属性にマッピング

## 前提条件

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

1. WooCommerce プラグインがインストール・有効化された WordPress サイト
2. 有効化された WooCommerce REST API (Settings > Advanced > REST API)
3. 生成済みの API Consumer Key と Consumer Secret
4. API 認証用に HTTPS が必須
5. API アクセス付きの Brevo アカウント
6. API 認証情報を持つ Tajo アカウント

## 認証

### REST API キー

WooCommerce は Consumer Key と Consumer Secret のペアで認証します。WooCommerce > Settings > Advanced > REST API で生成します。

#### OAuth 1.0a (HTTPS サイト)

```bash
curl https://yourstore.com/wp-json/wc/v3/orders \
  -u "consumer_key:consumer_secret"
```

#### クエリ文字列認証 (HTTPS)

```bash
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"
```

### 権限レベル

| 権限 | アクセス |
| --- | --- |
| **Read** | リソースの閲覧のみ |
| **Write** | リソースの作成と編集 |
| **Read/Write** | 完全な CRUD アクセス |

## 設定

### 基本セットアップ

```yaml
connectors:
  woocommerce:
    enabled: true
    store_url: "https://yourstore.com"
    consumer_key: "ck_your_consumer_key"
    consumer_secret: "cs_your_consumer_secret"
    api_version: "wc/v3"
    verify_ssl: true

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      coupons: true

    # Brevo list assignment
    lists:
      all_customers: 50
      buyers: 51
      abandoned_cart: 52
```

### 顧客フィールドマッピング

WooCommerce の顧客フィールドを Brevo 属性にマッピングします。

```yaml
customer_mapping:
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  billing.phone: SMS
  billing.company: COMPANY
  billing.city: CITY
  billing.state: STATE
  billing.country: COUNTRY
  billing.postcode: ZIP

  # E-commerce metrics (computed)
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  date_created: SIGNUP_DATE

  # Meta fields
  meta_data.loyalty_points: LOYALTY_POINTS
  meta_data.preferred_category: PREF_CATEGORY
```

### ウェブフック設定

WooCommerce > Settings > Advanced > Webhooks でウェブフックを登録します。

```yaml
webhooks:
  - topic: "customer.created"
    event: "customer_created"
  - topic: "customer.updated"
    event: "customer_updated"
  - topic: "order.created"
    event: "order_placed"
  - topic: "order.updated"
    event: "order_updated"
  - topic: "order.completed"
    event: "order_fulfilled"
  - topic: "order.refunded"
    event: "order_refunded"
  - topic: "coupon.created"
    event: "coupon_created"
  - topic: "product.created"
    event: "product_added"
  - topic: "product.updated"
    event: "product_updated"
```

## API エンドポイント

| メソッド | エンドポイント | 説明 |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | 顧客一覧を取得 |
| `POST` | `/wc/v3/customers` | 顧客を作成 |
| `GET` | `/wc/v3/customers/{id}` | 顧客を取得 |
| `PUT` | `/wc/v3/customers/{id}` | 顧客を更新 |
| `GET` | `/wc/v3/orders` | 注文一覧を取得 |
| `POST` | `/wc/v3/orders` | 注文を作成 |
| `GET` | `/wc/v3/orders/{id}` | 注文を取得 |
| `GET` | `/wc/v3/products` | 商品一覧を取得 |
| `GET` | `/wc/v3/products/{id}` | 商品を取得 |
| `GET` | `/wc/v3/products/{id}/variations` | 商品バリエーション一覧を取得 |
| `GET` | `/wc/v3/coupons` | クーポン一覧を取得 |
| `GET` | `/wc/v3/reports/sales` | 売上レポートを取得 |
| `GET` | `/wc/v3/reports/top_sellers` | トップセラーを取得 |
| `POST` | `/wc/v3/webhooks` | ウェブフックを作成 |

## コード例

### WooCommerce コネクターの初期化

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
  storeUrl: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET
});
```

### 顧客の取得と同期

```javascript
// Fetch customers using WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;

const api = new WooCommerce({
  url: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET,
  version: 'wc/v3'
});

// List customers with pagination
const response = await api.get('customers', {
  per_page: 100,
  page: 1,
  orderby: 'registered_date',
  order: 'desc'
});

const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]

// Pagination info from headers
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];
```

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

```javascript
// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
  const topic = req.headers['x-wc-webhook-topic'];
  const signature = req.headers['x-wc-webhook-signature'];

  // Verify webhook signature
  const expectedSignature = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(req.body))
    .digest('base64');

  if (signature !== expectedSignature) {
    return res.status(401).send('Invalid signature');
  }

  // Forward to Tajo
  await tajo.connectors.handleWebhook('woocommerce', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

### バッチ操作

```javascript
// Batch create, update, and delete products
const batchResponse = await api.post('products/batch', {
  create: [
    { name: 'New Product', type: 'simple', regular_price: '19.99' }
  ],
  update: [
    { id: 123, regular_price: '24.99' }
  ],
  delete: [456]
});
```

## レート制限

WooCommerce 自体は API のレート制限を強制しませんが、基盤となる WordPress サーバーやホスティングプロバイダーが制限を課す場合があります。

| 要因 | 一般的な制限 | 詳細 |
| --- | --- | --- |
| **共有ホスティング** | 50-100 req/分 | ホストにより異なる |
| **マネージド WP ホスティング** | 200-500 req/分 | WP Engine、Kinsta など |
| **セルフホスト** | 厳格な制限なし | サーバーリソース次第 |
| **1 ページあたり** | 最大 100 レコード | 既定は 10 |
| **バッチ操作** | 100 件/バッチ | 作成、更新、削除 |

サーバーパフォーマンス

大規模な WooCommerce ストアでは API レスポンスが遅くなる可能性があります。ページネーション、`_fields` パラメータでのフィールド制限、オフピーク時間のバルク同期スケジューリングを活用してください。

## トラブルシューティング

| 問題 | 原因 | 解決策 |
| --- | --- | --- |
| `401 Unauthorized` | 無効な API キー | WooCommerce 設定で Consumer Key/Secret を再生成 |
| `403 Forbidden` | 権限不足 | API キーを Read/Write に設定 |
| SSL 証明書エラー | サイトの SSL 無効 | 有効な SSL 証明書を使用。テスト時のみ `verify_ssl: false` |
| ウェブフックが発火しない | WordPress cron 無効 | WP-Cron を有効化またはサーバーレベルの cron を設定 |
| API レスポンスが遅い | 大規模データベース | WordPress DB を最適化、`_fields` パラメータを使用 |
| カスタムフィールドが欠落 | メタデータが露出されていない | `meta_data` フィールドでカスタムメタにアクセス |
| ページネーションの問題 | 既定のページサイズ | `per_page` パラメータを明示的に指定 (最大 100) |

## ベストプラクティス

1. **リアルタイム同期にウェブフックを使用** - API ポーリングではなく WooCommerce ウェブフックを設定
2. **ウェブフック署名を検証** - 常に `X-WC-Webhook-Signature` ヘッダーを検証
3. **すべてのリスト要求でページネーション** - `page` と `per_page` パラメータを使用し、`X-WP-TotalPages` ヘッダーを確認
4. **`_fields` パラメータを活用** - 必要なフィールドのみを要求してレスポンスサイズを削減
5. **バッチ操作を活用** - 大量の作成/更新/削除にはバッチエンドポイント (最大 100 件)
6. **大規模同期をスケジュール** - 初回の完全同期はオフピーク時間に実施
7. **HTTPS を有効化** - WooCommerce API は OAuth 認証に HTTPS を要求

## セキュリティ

- **OAuth 1.0a** - Consumer Key/Secret ペアによる安全な認証
- **HMAC ウェブフック署名** - 受信ウェブフックの SHA-256 署名検証
- **HTTPS 必須** - API 認証には TLS 暗号化が必要
- **権限スコープ** - API キーは Read、Write、Read/Write を設定可能
- **WordPress セキュリティ** - WordPress コアのセキュリティ更新の恩恵
- **PCI に関する考慮** - 決済データは WooCommerce の決済ゲートウェイで処理され API には露出されない

## 関連リソース

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