WooCommerce コネクター
WooCommerce コネクター
WooCommerce ストアを Tajo 経由で Brevo に接続して、完全な eコマースデータ同期を実現します。WooCommerce REST API を活用し、顧客、注文、商品、クーポンデータを同期して、ターゲットを絞ったマーケティングキャンペーンや自動化ワークフローを実現できます。
概要
| 項目 | 値 |
|---|---|
| プラットフォーム | WooCommerce (WordPress) |
| カテゴリー | eコマース |
| セットアップ難易度 | 中 |
| 公式統合 | なし |
| 同期データ | 顧客、注文、商品、クーポン |
| 利用可能なスキル | 10 |
機能
- 顧客同期 - リアルタイムで顧客データを Brevo コンタクトへ同期
- 注文追跡 - 購入後フロー向けに注文ライフサイクルイベントを完全追跡
- 商品カタログ同期 - メールレコメンデーション用に商品とバリエーションを同期
- クーポン管理 - プロモーションキャンペーン用にクーポンコードを同期
- ウェブフック対応 - WooCommerce ウェブフックによるリアルタイム更新
- カゴ落ち - 放棄カートの追跡と回復
- マルチサイト対応 - WordPress マルチサイトの WooCommerce インストールに接続
- カスタムメタフィールド - WooCommerce カスタムメタを Brevo 属性にマッピング
前提条件
開始する前に、以下をご用意ください。
- WooCommerce プラグインがインストール・有効化された WordPress サイト
- 有効化された WooCommerce REST API (Settings > Advanced > REST API)
- 生成済みの API Consumer Key と Consumer Secret
- API 認証用に HTTPS が必須
- API アクセス付きの Brevo アカウント
- API 認証情報を持つ Tajo アカウント
認証
REST API キー
WooCommerce は Consumer Key と Consumer Secret のペアで認証します。WooCommerce > Settings > Advanced > REST API で生成します。
OAuth 1.0a (HTTPS サイト)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"クエリ文字列認証 (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"権限レベル
| 権限 | アクセス |
|---|---|
| Read | リソースの閲覧のみ |
| Write | リソースの作成と編集 |
| Read/Write | 完全な CRUD アクセス |
設定
基本セットアップ
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 属性にマッピングします。
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 でウェブフックを登録します。
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 コネクターの初期化
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect WooCommerce storeawait tajo.connectors.connect('woocommerce', { storeUrl: 'https://yourstore.com', consumerKey: process.env.WC_CONSUMER_KEY, consumerSecret: process.env.WC_CONSUMER_SECRET});顧客の取得と同期
// Fetch customers using WooCommerce REST APIconst 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 paginationconst 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 headersconst totalPages = response.headers['x-wp-totalpages'];const totalItems = response.headers['x-wp-total'];ウェブフックイベントの処理
// WooCommerce webhook handlerapp.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');});バッチ操作
// Batch create, update, and delete productsconst 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) |
ベストプラクティス
- リアルタイム同期にウェブフックを使用 - API ポーリングではなく WooCommerce ウェブフックを設定
- ウェブフック署名を検証 - 常に
X-WC-Webhook-Signatureヘッダーを検証 - すべてのリスト要求でページネーション -
pageとper_pageパラメータを使用し、X-WP-TotalPagesヘッダーを確認 _fieldsパラメータを活用 - 必要なフィールドのみを要求してレスポンスサイズを削減- バッチ操作を活用 - 大量の作成/更新/削除にはバッチエンドポイント (最大 100 件)
- 大規模同期をスケジュール - 初回の完全同期はオフピーク時間に実施
- 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 には露出されない