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

先行利用を申し込む

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

# Shopify コネクター

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

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

Shopify ストアを Brevo に接続することで、完全な顧客データ同期、カゴ落ち回復、マーケティングキャンペーンの自動化が可能になります。

## 概要

| 項目 | 値 |
| --- | --- |
| **プラットフォーム** | Shopify |
| **カテゴリー** | eコマース |
| **セットアップ難易度** | 容易 |
| **公式統合** | なし |
| **同期データ** | 顧客、注文、商品、カート、イベント |
| **利用可能なスキル** | 12 |

## 機能

- **リアルタイム顧客同期** - 顧客データを即座に Brevo コンタクトへ同期
- **注文追跡** - 購入後フロー向けの注文イベント
- **商品カタログ同期** - レコメンデーション用商品の連携
- **カゴ落ち** - 放棄カートの追跡と回復
- **閲覧行動** - ページ閲覧や商品興味の追跡
- **マルチストア対応** - 複数の Shopify ストアを接続

## 前提条件

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

1. 管理者権限のある Shopify ストア
2. API アクセス付きの Brevo アカウント
3. Tajo アカウント

## インストール

### 方法 1: Shopify App Store (推奨)

1. [Shopify App Store の Tajo アプリ](https://apps.shopify.com/tajo) にアクセス
2. 「アプリを追加」をクリック
3. 要求された権限を付与
4. Brevo アカウントを接続

### 方法 2: 手動インストール

#### ステップ 1: Shopify アプリを作成する

1. Shopify 管理画面 → 設定 → アプリと販売チャネル に移動
2. 「アプリを開発」→「アプリを作成」をクリック
3. 「Tajo Integration」と命名

#### ステップ 2: API スコープを設定する

以下のスコープを有効化します。

```
read_customers
write_customers
read_orders
read_products
read_checkouts
write_script_tags
```

#### ステップ 3: アプリをインストールする

```bash
# Using Tajo CLI
tajo connectors install shopify \
  --shop-url your-store.myshopify.com \
  --api-key $SHOPIFY_API_KEY \
  --api-secret $SHOPIFY_API_SECRET
```

#### ステップ 4: ウェブフックを設定する

Tajo は以下のウェブフックを自動的に登録します。

| ウェブフック | 目的 |
| --- | --- |
| `customers/create` | 新規顧客の同期 |
| `customers/update` | 顧客データの変更 |
| `customers/delete` | 顧客の削除 |
| `orders/create` | 注文確定イベント |
| `orders/updated` | 注文ステータスの変更 |
| `checkouts/create` | カート作成 |
| `checkouts/update` | カート更新 |

## 設定

### 基本セットアップ

```yaml
connectors:
  shopify:
    enabled: true
    shop_url: "your-store.myshopify.com"
    api_version: "2024-01"

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      carts: true
      inventory: false  # Optional

    # List assignment
    lists:
      all_customers: 5
      buyers: 6
      abandoned_cart: 7
```

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

Shopify のフィールドを Brevo コンタクト属性にマッピングします。

#### 既定のマッピング

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | 顧客のメールアドレス (一意の識別子) |
| `first_name` optional | string | FIRSTNAME 属性にマッピング |
| `last_name` optional | string | LASTNAME 属性にマッピング |
| `phone` optional | string | WhatsApp/SMS 用の SMS 属性にマッピング |
| `accepts_marketing` optional | boolean | 購読ステータスを制御 |
| `orders_count` optional | integer | 合計注文件数 |
| `total_spent` optional | number | 顧客の生涯価値 |
| `tags` optional | array | Shopify からの顧客タグ |

#### カスタム属性マッピング

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # E-commerce metrics
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  last_order_date: LAST_ORDER_DATE

  # Custom fields
  customer_type: CUSTOMER_TYPE
  preferred_language: LANGUAGE
  loyalty_tier: VIP_TIER

  # Computed fields
  average_order_value: AOV
  days_since_last_order: RECENCY
```

### 商品同期

メール内レコメンデーション用に商品を同期します。

```yaml
sync:
  products:
    enabled: true
    include_variants: true
    include_images: true
    categories_as_tags: true

    # Filter products
    filter:
      status: active
      exclude_tags: ["hidden", "wholesale-only"]
```

### 在庫追跡

在庫数の同期を有効化します。

```yaml
sync:
  inventory:
    enabled: true
    low_stock_threshold: 10
    out_of_stock_events: true
```

## イベント

### 顧客イベント

| イベント | トリガー | 用途 |
| --- | --- | --- |
| `customer_created` | 新規顧客登録 | ウェルカムシリーズ |
| `customer_updated` | プロファイル変更 | データ同期 |
| `customer_tags_added` | タグ割り当て | セグメント更新 |

### 注文イベント

| イベント | トリガー | 用途 |
| --- | --- | --- |
| `order_placed` | チェックアウト完了 | 注文確認 |
| `order_fulfilled` | 注文発送 | 発送通知 |
| `order_cancelled` | 注文キャンセル | キャンセルメール |
| `order_refunded` | 返金処理 | 返金確認 |

### カートイベント

| イベント | トリガー | 用途 |
| --- | --- | --- |
| `cart_created` | カートに商品追加 | 閲覧トラッキング |
| `cart_updated` | カート変更 | カート金額の追跡 |
| `cart_abandoned` | 30 分間チェックアウトなし | 回復メール |

## 有効化されるスキル

Shopify コネクターは以下のスキルを有効化します。

| スキル | 説明 |
| --- | --- |
| [顧客同期](https://tajo.io/jp/docs/skills/data-sync/customer-sync) | リアルタイムの顧客同期 |
| 注文イベント | 注文ライフサイクル追跡 |
| [カゴ落ち](https://tajo.io/jp/docs/skills/email-marketing/abandoned-cart) | カート回復メール |
| ウェルカムシリーズ | 新規顧客オンボーディング |
| 購入後フォロー | 注文後のフォローアップ |
| ウィンバック | 休眠顧客の再エンゲージ |
| 閲覧放棄 | 商品興味フォローアップ |
| リピート購入 | 再注文リマインダー |

## コード例

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

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

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

// Connect Shopify store
await tajo.connectors.connect('shopify', {
  shopUrl: 'your-store.myshopify.com',
  apiKey: process.env.SHOPIFY_API_KEY,
  apiSecret: process.env.SHOPIFY_API_SECRET
});
```

### 初回同期の実行

```javascript
// Full historical sync
await tajo.connectors.sync('shopify', {
  type: 'full',
  resources: ['customers', 'orders', 'products'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('shopify');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   customersCount: 15420,
//   ordersCount: 8234,
//   productsCount: 342
// }
```

### カートイベントのトラッキング

Tajo スクリプトを Shopify テーマに追加します。

```liquid
<!-- Add to theme.liquid before </head> -->
{% if customer %}
<script>
  window.tajoConfig = {
    customerId: "{{ customer.id }}",
    customerEmail: "{{ customer.email }}",
    customerName: "{{ customer.first_name }}"
  };
</script>
{% endif %}
<script src="https://cdn.example.com/shopify.js"></script>
```

Caution

上記の `example.com` のアドレスは、Tajo のエンドポイントが利用可能になるまでのプレースホルダーです。

### カスタムウェブフックハンドラー

```javascript
// Handle Shopify webhooks manually
app.post('/webhooks/shopify', async (req, res) => {
  const hmac = req.get('X-Shopify-Hmac-SHA256');

  // Verify webhook signature
  if (!verifyShopifyWebhook(req.body, hmac)) {
    return res.status(401).send('Unauthorized');
  }

  const topic = req.get('X-Shopify-Topic');

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

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

## モニタリング

### ダッシュボードメトリクス

Tajo ダッシュボードで Shopify 接続をモニタリングします。

- **同期ステータス**: リアルタイムの接続ヘルス
- **同期済み顧客数**: Shopify からの合計コンタクト数
- **追跡済み注文**: 処理された注文イベント
- **カート回復**: 放棄カートのパフォーマンス
- **エラー率**: 同期失敗回数

### ウェブフックログ

ウェブフック配信状況を確認します。

```bash
tajo connectors logs shopify --type webhook --last 24h
```

### 同期履歴

過去の同期操作を確認します。

```bash
tajo connectors history shopify --limit 10
```

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

### よくある問題

API レート制限

Shopify の API レート制限は 1 秒あたり 2 リクエストです。大規模な履歴インポートにはバッチ同期を使用してください。

| 問題 | 原因 | 解決策 |
| --- | --- | --- |
| ウェブフックが受信されない | アプリ権限 | 正しいスコープでアプリを再インストール |
| 顧客が同期されない | メールアドレス不足 | Shopify では顧客にメールが必要 |
| 商品が見当たらない | 商品ステータス | 商品が「active」状態か確認 |
| カートが追跡されない | スクリプト未読込 | theme.liquid のスクリプトを確認 |

### デバッグモード

詳細ログを有効化します。

```yaml
connectors:
  shopify:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### 接続テスト

```bash
tajo connectors test shopify
# ✓ API connection successful
# ✓ Webhooks registered
# ✓ Products accessible
# ✓ Customers readable
# ✓ Orders readable
```

## ベストプラクティス

1. **テストストアから始める** - まず開発用ストアで検証
2. **初回同期はオフピーク時に実行** - 大規模同期は時間を要する
3. **カスタム属性をマッピングする** - 既定のマッピングだけに頼らない
4. **カート追跡を有効化する** - カゴ落ち回復には必須
5. **ウェブフックの健全性を監視する** - 配信失敗のアラートを設定
6. **バッチインポートを利用する** - 10,000 件超の過去データ向け

## セキュリティ

- **OAuth 2.0** - 安全なトークンベース認証
- **ウェブフック検証** - HMAC 署名検証
- **暗号化ストレージ** - API 認証情報を保存時に暗号化
- **スコープ限定アクセス** - 必要最小限の権限のみ

## 関連リソース

- [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)
- [Brevo Contacts API](https://tajo.io/jp/docs/contact-management)
