Eコマース(Shopify)
自分のストアを使って(BYOモデル)、Shopifyストアの顧客と注文をCRMに同期します。
Eコマース連携は「あなた自身の」Shopifyストア(BYOモデル:自分のストアを持ち込む)を使用します。あなたのストアのwebhookを受信し、CRMへ同期します。各顧客は連絡先に、各注文は販売注文になります。当社側にコストやマージン、仲介は一切ありません。データはあなたのストアから直接届きます。
この連携は初期状態では無効です。項目を入力して有効化するまで何も起こりません。webhookシークレットと管理者トークンはCRM内で暗号化して保存され、二度と表示されません。
前提条件
- webhookの作成と署名シークレットの確認ができる管理者アクセス権(Shopify管理画面)を持つShopifyストア。
- ストアの.myshopify.comドメイン。
- Sellioで、設定 → 連携で認証情報を保存して連携を有効化するための管理者アクセス権。
入力が必要な項目
- ストアドメイン:あなたのストアの.myshopify.comアドレス(例:mystore.myshopify.com)。
- webhookシークレット(APIシークレット):Shopifyがwebhookに署名するために使うシークレット。Shopify管理画面 → 設定 → 通知に、webhookの「署名シークレット」が表示されます(独自アプリを使う場合はそのAPIシークレット)。この値をCRMが各呼び出しの署名(HMAC)検証に使用します。
- Admin APIアクセストークン(任意):将来CRMがAPI経由でストアのデータを読み取りたい場合のみ必要です。webhookのみを受信する場合は空欄のままにしてください。
設定方法
- 設定 → 連携を開き、「Eコマース(Shopify)」カードを見つけます。
- ストアドメインとwebhookシークレットを入力し、「認証情報を保存」をクリックします。
- 表示された「webhook URL(Shopify)」をコピーします。
- Shopify管理画面 → 設定 → 通知 → Webhooksで、次の各トピックについてそのURLを指すwebhook(JSON形式)を作成します:customers/create、customers/update、orders/create、orders/paid。
- CRMに戻り、「有効化」をクリックします。
各イベントで起こること
- customers/createおよびcustomers/update:顧客はメールアドレスで照合され、連絡先として作成または更新されます。CRMはShopifyの顧客IDを保存し、再送信時の重複を防ぎます。
- orders/createおよびorders/paid:注文は販売注文(番号、金額、通貨、ステータス)として作成または更新され、該当する連絡先が存在する場合はリンクされます。ステータスは、支払い済みの場合「請求済み」、キャンセルされた場合「キャンセル済み」、それ以外は「確認済み」になります。
💡 同期は冪等です。Shopifyが同じwebhookを再送しても、CRMは新規作成せず既存レコードを更新します(Shopify IDでレコードを特定します)。ストアから届いたフィールドのみが更新され、CRMで手動編集した内容は保持されます。
webhook URLとwebhookシークレットは機密情報として扱ってください。CRMは各呼び出しのX-Shopify-Hmac-Sha256署名をwebhookシークレットで検証し、無効な署名は拒否されます。シークレットを入力せずに有効化しようとすると、連携は無効のままとなり、すべてが整うまで何も同期されません。
テスト方法
- 連携が有効化されwebhookが作成された状態で、Shopify管理画面 → 設定 → 通知 → Webhooksで、いずれかのwebhookの「テスト通知を送信」を使用します(またはストアでテスト用の注文・顧客を作成します)。
- CRMで、連絡先オブジェクト(顧客用)と販売注文(注文用)を確認し、対応するレコードが表示されていることを確認します。
- 同じテストを再送し、重複しないことを確認します。CRMはShopify IDでレコードを特定します。
トラブルシューティング
- 無効な署名(呼び出しが拒否される):CRMに保存されたwebhookシークレットがShopifyの署名シークレットと異なります。シークレットを再度コピーし(設定 → 通知、または独自アプリのAPIシークレット)、CRMに貼り付けてください。
- 何も同期されない:customers/create、customers/update、orders/create、orders/paidの各トピックについて、「webhook URL(Shopify)」を指すwebhook(JSON形式)が作成されていることを確認してください。
- URLで404:連携が無効化されているか、URLトークンが変更されています。再有効化してURLをShopifyに再コピーしてください。
- 注文に連絡先がリンクされない:リンクは顧客のメールアドレスで照合されます。顧客がまだ連絡先として存在しない場合、注文はリンクなしで作成され、後で関連付けできます。
- 編集したフィールドが上書きされた:ストアから届くフィールドのみが更新され、それ以外は保持されます。ストア側のフィールドが変更された場合、設計上ストアの内容が反映されます。