Shopifyアプリにはほとんどすべてといっても過言ではありませんが、Webhookが実装されています。WebhookはShopifyにおいて非常に重要な役割を果たしており、Webhookが無ければshopifyアプリは完全体と言えないでしょう。
そこで今回はShopifyアプリにおけるWebhookについて解説していきます。また、Webhookを活用して個人情報や顧客情報の更新を自動的にキャッチする方法についても解説していきます。
目次
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
そもそもWebhookとは
「Webhookは大事!」と何度も言われていますが、そもそもWebhookについての知見が浅い人が多くいます。
もちろん、Shopifyビジネスを成功させるためにはWebhookの知見が必要です。
ましてやShopifyアプリを自社で開発しようものなら、Webhookの知識はShopifyアプリ開発のプログラミング知見よりも必要になるでしょう。
Webhookとは、あるイベントからデータを自動的に取得して格納しておくためのツールのことを指します。
格納形式は、
- JSON
- XML
の2つがあり、「https://URL」の形式で登録することが可能です。
ただ、一般的に格納しておくだけであればWebhookを実装する必要はなく別途外部ツールを活用すれば問題はありません。しかし、ShopifyアプリにはWebhookが必須と言われる理由に「目的」があります。
Webhookの目的とは
Webhookを活用しているEC事業者には一貫して、同じ目的があります。
Shopifyが公表しているWebhookの目的としては、
- 注文
- 商品価格の変更
- IMクライアント・ページャーへの通知
- データウェアハウジングデータの収集
- 会計ソフトウェアの導入・統合
- 注文されたアイテムのフィルタリング
- 注文先の配送業者への通知
- 顧客のアプリインストール時、データベースより顧客データを削除する
などがあります。
一般的にWebhookの目的は以上のようなものがあり、これらをするためだけにWebhookを実装する必要があるのです。色々と難しい目的要素が並んでいますが、要は「通知」をするためにWebhookが必要であると認識すれば大丈夫です。
HTTPのPOSTリクエストに応じてWebhookが応答するようになっており、イベントが発生すればPOSTリクエストを介してWebhookからイベント通知がなされます。
条件分岐を設定することもできますので、Webhookを反応させないようにすることも可能です。
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
ShopifyにおけるWebhook
さて、これでWebhookの必要性については理解して頂けたかと思います。
ShopifyにおいてもWebhookが必要になるのですが、どういった立ち位置なのでしょうか。基本的な立ち位置として、イベント発生源から理解することができます。
以下をご覧ください。
- カート
- チェックアウト
- コレクション
- 顧客
- 顧客グループ
- 注文
- 商品
- ショップ
- テーマ
- 下書き注文
- フルフィルメント
- 返金
これらのイベント発生源に対してWebhookを設定することができます。
Shopifyではこれらのイベントが定期的に発生しますので、全て手動で対処することは現実的ではありません。Webhookを実装して自動的に対処するのが理想でしょう。
ちなみに、Webhookの通知プロパティは以下のようになっています。
- id
- topic
- address
- api_version
- created_at
- updated_at
- format
- filerd
- metafield_namespaces
- private_metafield_namespaces
これらの詳細についてはこちらを参照してください。
Webhookの設定をする際の注意点
続いてWebhookの設定方法をご紹介するのですが、その前に抑えておくべき注意点がいくつかあります。
Webhookを設定する際には、いくつか理解しておくべきポイントがありますので1つ1つご紹介します。
タイムアウト時間
Shopifyに限定した話ではありませんが、WebhookのPOSTリクエストの有効時間はたったの5秒です。5秒経過するとタイムアウトしてしまうため、なるべく5秒以内でリクエストの返答しなければなりません。
返答できずにいるとレスポンスが「エラーレスポンス」として処理されてしまいますので、Webhookの活用ができないのです。
SSL化
WebhookのエンドポイントはSSL化しておくことが最低条件です。
後に解説しますが、エンドポイントには様々なイベントコードがありShopify管理画面からそれぞれに対応させる必要があります。
もともとShopifyはSSL化に対応しているため、デフォルトから設定を弄る必要はありません。ただ、Shopify以外のwebサイトへ移行させる場合は自分でSSL化する必要があります。
SSL化は素人が触ってしまうとwebサイト自体が吹き飛んでしまう恐れがありますので、プロに頼むのがいいでしょう。
ヘッダー
Shopify上でWebhookを活用する場合、独自ヘッダーがPOSTに含まれます。
リクエストを受け取る側は、共有カギが付与されますのでMAC値を算出して結果と合致しているかを確認する必要があります。
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
ShopifyのWebhook設定方法
では本題のShopifyのWebhook設定方法について解説していきます。
ShopifyのWebhook設定方法は2つありますので、1つ1つ解説していきます。
管理画面からWebhookを設定する
まずはShopify管理画面上からWebhookを設定する方法です。
手順は、
- Shopify管理画面を開く
- 「設定」→「通知」→「Webhook」をクリック
- 「Webhookを作成」をクリック
- ドロップダウンに表示されるステータスの中から「イベント」を選択
- 2つ目のドロップダウンメニューから「フォーマット」を選択(JSONかXMLか)
- データ保存先のURLを入力
- 「Webhookを作成」をクリック
でOKです。
後はWebhookが動作するかどうかをテストしてみてください。
APIを活用してのWebhook設定方法
続いて、APIを活用してのWebhook設定方法について解説していきます。
実はShopifyではAPIを活用すれば、Webhookを簡単に設定することができます。ただ、APIに関する知見がある程度必要で全く知見が無い人が1からWebhookを作成することは困難です。できれば、Shopify管理画面上から設定する方法を選んでください。
APIを使って作成する場合は、
- REST API
- GraphQL
の2つを利用することができます。
用意されているエンドポイントとしては、
- GET /webhooks.json
- GET /webhooks/count.json
- GET /webhooks/{webhook_id}.json
- POST /webhooks.json
- PUT /webhooks/{webhook_id}.json
- DELETE /webhooks/{webhook_id}.json
の6つです。
これらを活用してWebhookを設定していきます。
Webhookを削除するには
もしShopifyにWebhookが必要なくなった場合、面倒ではありますが手動でWebhookを削除する必要があります。永続的にWebhookをインストールしておくのもいいのですが、データ通知が鳴りやまない可能性があります。
通知に嫌気がさすのであれば、
- Shopify管理画面を開く
- 「設定」→「通知」→「Webhook」をクリック
- Webhookの横のゴミ箱アイコンをクリック
- 「Webhook」を完全に削除する
でWebhookを削除してしまってください。
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
Shopifyの管理画面でWebhookの通知状況を確認する方法
さて、ここまででWebhookを設定することができました。
APIを活用すれば即座にWebhookを設定することができますが、APIの知見が無い方はShopify管理画面から設定することができます。
ここからはShopifyの管理画面でWebhookの通知状況を確認する方法について解説していきます。
Webhookは「通知」のために導入するものであり、しっかりと動作しているかをテストする必要があります。テスト後、実働するわけですがどのように実働しているかを確認しておきましょう。
確認方法は、
- Shopify管理画面を開く
- 「アプリ管理」→「Webhook配信」をクリック
- メトリクスが表示されるので確認する
でOKです。
ここでメトリクスに何かしらの不具合がある場合は、管理画面上から原因を見つけることができます。一概にどんな原因があるのかを明記することは避けますが、ネット上の意見を参考にしつつ原因究明にあたってください。
ちなみに、「失敗した配信率」というデータが表示されている場合は要チェックです。「失敗した配信率」が0.5%を超えている場合は、Webhookの通知が異常をきたしていることを示しています。
別のShopifyアプリへの影響も考えられますので、「失敗した配信率」を0.5%以下に下げる何かしらの施策が必要になります。
Webhookの通知状況の確認に利用できるコードについて
先ほど、管理画面からWebhookの通知状況の確認について解説しました。一般的には先ほどの方法で確認することができますがコードを使って確認することもできます。
コードについてはこちらを参照してください。
このコードを活用して、
- RequestBin(外部サービス)を開く
- 「Private」→「create a RequestBin」をクリック
- URLが自動発行されるのでコピーしてShopify管理画面を開く
- 「Webhook」→「Setting」→「Notifications」をクリック
- 「Notifications」上で先ほどのURLを貼り付ける
- 「send test notification」をクリック
- RequestBin(外部サービス)へ戻り、画面をリロードする
でOKです。
これでリクエストの確認が完了しました。
テストWebhookのカスタマイズ方法
Webhookのコードを発行して設定が完了した後は、Webhookのテストを行う必要があります。
しかし、初めからテストが完璧にこなせることはありません。どこかしら不具合を抱えていることがありますので以下の手順でWebhookのカスタマイズを完了させてください。
- Shopify管理画面を開く
- 「アプリ管理」→「プライベートアプリを管理する」→「新しいプライベートアプリを作成する」をクリック
- 「商品管理」→「読み取り及び書き込み」をクリック
- コードを該当する箇所へ貼り付ける ▶コードの解説
でOKです。
後は10秒間待ってからページをリロードしてください。
しっかりと「確認中」のタグが表示されていることを確認できればWebhookのテストは完了です。
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
Webhookのバージョン更新を行う方法
では最後にWebhookのバージョン更新を行う方法をご紹介します。
Webhookでは3ヶ月位に1回のスピードで最新版が提供されています。このサイクルは崩れたことはありませんが、毎回手動でバージョンアップを行うことはあまりおすすめできた方法ではありません。
ではWebhookのバージョン更新を行う方法を3つご紹介します。
Shopify公開アプリからバージョンを更新する
一番簡単で一番ベーシックな更新方法になります。
手順は、
- Shopify管理画面を開く
- 「アプリ管理」→「Webhook」→「アプリ設定」をクリック
- 「イベントサブスクリプション」→「イベントバージョン」をクリック
でOKです。
これで手動で最新版へ移行することができました。
ちなみに常に最新版だった場合、「イベントバージョン」がグレーアウトしています。
GDPRへの対応が必須
後に2つのバージョン更新方法をご紹介しますが、公開アプリではGDPRへの対応が必須となっています。GDPRとは「The General Data Protection Regulation」の頭文字をとったものであり個人情報を収集したり保存・管理するための規則のことを指します。
このGDPRに遵守していないShopifyストアは軒並み凍結された過去がありますので、GDPRへの対応は必須と言えます。ちなみに、Shopifyストア運営者だけでなくShopifyアプリ開発者もGDPRに遵守する必要がありますので留意してください。
WebhookでのGDPR対応方法としては、
- customers/redact
- shop/redact
- customers/data_request
の3つのイベントが必要です。
手順は、
- Shopifyストアを介した顧客がShopifyストア運営者に対してデータの開示請求をする
- Shopifyから「customers/data_request」を介してWebhookへ通知がいく
- 200番のレスポンスが返される
- IDで指定してリソース保存を完了させている場合、Shopifyストア運営者に対してデータを直接提供する
- Shopifyストア運営者は顧客に対してデータを全て開示する
となっています。
ややこしい場合は、Shopifyヘルプサービスへ問い合わせをして代行してもらいましょう。
Shopifyプライベートアプリからバージョンを更新する
先ほどは公開アプリからの更新方法でしたが、Shopifyプライベートアプリからバージョンを更新することもできます。
手順は、
- Shopify管理画面を開く
- 「アプリ管理」→「プライベートアプリを管理する」をクリック
- 「Webhook」→「Webhook API」→「バージョン」をクリック
- 最新バージョンをクリックし「保存する」をクリック
でOKです。
これでShopifyプライベートアプリからバージョンを更新することができました。
Shopifyストアからバージョンを更新する
実はアプリ画面を開くことなくWebhookのバージョンを更新することができます。
Shopifyストアからバージョンを更新するには、
- Shopify管理画面を開く
- 「設定」→「通知」→「Webhook」をクリック
- 「イベント」をクリックし、イベントごとのバージョンを更新する
でOKです。
Shopifyストアからのバージョン更新は手軽ですのでおすすめします。
Shopifyやその他ECの制作・運用・保守について、お気軽にご相談ください。
連絡は問い合わせ・無料相談・無料お見積りよりどうぞ。
まとめ
今回はShopifyアプリには欠かせないWebhookについて見ていきました。
Shopifyアプリ開発者はWebhookを欠かすことはできませんし、Shopifyストア運営者もなるべくWebhookを活用したほうがいいです。また、Webhookも例外なくGDPRに準拠しておく必要があります。
GDPRはShopifyのみならず他のECサイトでも適用される規則になっています。Webhookを活用して外部サービスからShopifyストアのデータを同期すること自体は簡単ですが、その設定方法がややこしいと言われています。この記事を参照してWebhookの設定を完了させてください。
ちなみに、Shopify公式HPにはWebhookに関する情報が記載されています。もしわからなくなった場合は、HPを参照してみてください。カスタマーサービスも活用しつつ設定を遂行しましょう!
Shopify制作のお見積もり・ご相談
また、初めてのお取組みで不安のある方などもご不明点などはお気軽にご連絡ください。




に相談する