Shopifyと受注管理システムや在庫管理システムなどを連携する際、「Shopifyで注文が入ったら、別のシステムにも自動で知らせたい」「商品や在庫が変更されたら、外部サービスにも反映したい」といったケースがあります。
Shopifyで発生したイベントを外部へ伝えるために利用できるのが「Shopify Webhook」です。特定のイベントが発生すると、その情報をアプリや外部システムへ自動で送信できます。ストア内で発生した注文や商品だけでなく、配送や返品など、さまざまなイベントに対応したWebhookが提供されています。
本記事ではShopify Webhookの仕組みをはじめ、どのような種類の通知を受け取れるのか、Webhookの用途や設定方法、利用時の注意点までわかりやすく解説します。
Shopify Webhookとは
Shopify Webhookは、Shopifyで発生した注文作成や商品更新などをきっかけに、アプリや外部システムへ関連情報を送信する機能です。
Shopifyで起きたことを外部システムへ自動で知らせる
たとえばShopifyで、以下のようなイベントが発生したとします。
- 新しい注文が入った
- 商品情報が更新された
- 在庫数が変わった
- 顧客情報が更新された
- 商品が発送された
Webhookを利用すると、こうした変化が起きたタイミングで外部サービスへ情報を送信できます。新しい注文が入ったら受注管理システムへ注文情報を送り、在庫数が変わったら在庫管理システム側の処理を開始するといった連携が可能です。
Webhookトピックとは?サブスクリプションとの関係
Shopify Webhookでは、「どの出来事が起きたときに通知するのか」をWebhookトピック(Webhook topic)で指定します。
代表的なWebhookトピックには、以下のようなものがあります。
| Webhookトピック | 通知されるイベント |
|---|---|
orders/create |
注文が作成された |
orders/updated |
注文が更新された |
products/update |
商品が更新された |
inventory_levels/update |
在庫レベルが更新された |
customers/update |
顧客情報が更新された |
fulfillments/update |
フルフィルメントが更新された |
refunds/create |
返金が作成された |
たとえばorders/createであれば、注文が作成されたときにWebhookが配信されます。
Webhookを利用する際はどのトピックで、どの送信先へWebhookを配信するかを設定します。この設定をWebhookサブスクリプション(Webhook subscription)と呼びます。設定したイベントが発生すると、そのイベントに関連するデータが指定した送信先へ送られます。
Shopifyには多数のWebhookトピックが用意されているため、「Shopifyで何が起きたときに、外部システムで何をしたいのか」に合わせて、必要なトピックと送信先を設定できます。
APIで定期的に確認する方法との違い
Shopifyの変更を把握する方法には、WebhookのほかにAPIを定期的に呼び出して情報を確認する方法もあります。WebhookとAPIはどちらもShopifyと外部システムを連携する際に利用されますが、それぞれ役割が異なります。
WebhookとAPIの使い分けは以下です。
| Webhook | API | |
|---|---|---|
| 向いている用途 | 変更が発生したことを素早く知る | 必要な情報を取得・作成・更新する |
| タイミング | イベント発生時にShopifyから送信される | 必要なタイミングで外部からShopifyへ問い合わせる |
| 例 | ・注文が入ったら受注管理システムへ連携する ・在庫数が変わったら在庫管理システムへ通知する ・商品が更新されたら検索サービス側の更新処理を開始する |
・注文の詳細情報を参照する ・商品一覧をまとめて取得してアプリ内で利用する ・外部システムから商品情報や在庫情報を更新する |
実際のシステム連携では、Webhookで注文の作成を検知し、その後APIから最新の注文情報を取得するといったように、両方を組み合わせることもあります。
Shopify Webhookの代表的な種類一覧
Shopifyでは、ストア運営に関係するさまざまなイベントをWebhookの対象にできます。代表的な種類は以下のとおりです。
| 分類 | 代表的なWebhookトピック | 主な用途 |
|---|---|---|
| 注文 |
orders/create、orders/updated、orders/paid、orders/cancelled
|
受注・支払い・キャンセル情報の連携 |
| 商品 |
products/create、products/update、products/delete
|
商品情報の同期 |
| コレクション |
collections/create、collections/update、collections/delete
|
コレクション情報の同期 |
| 在庫 | inventory_levels/update |
拠点別在庫の同期 |
| 顧客 |
customers/create、customers/update、customers/delete
|
CRM・MAツールとの連携 |
| 配送・フルフィルメント |
fulfillments/create、fulfillments/update
|
出荷状況の連携 |
| 返品・返金 |
returns/request、returns/update、refunds/create
|
返品管理・会計処理 |
| カート・チェックアウト |
carts/create、carts/updateなど |
カート情報などの連携 |
| 下書き注文 |
draft_orders/create、draft_orders/update
|
BtoB・電話注文などの連携 |
| 割引 |
discounts/create、discounts/update、discounts/delete
|
割引情報の同期 |
| 決済・チャージバック |
disputes/create、disputes/update
|
異議申し立てへの対応 |
| ロケーション |
locations/createなど |
店舗・倉庫情報の同期 |
| テーマ |
themes/create、themes/update、themes/publish
|
テーマ変更・公開の検知 |
| アプリ |
app/uninstalled、app/scopes_update
|
アプリ削除・権限変更への対応 |
| プライバシー |
customers/data_request、customers/redact、shop/redact
|
個人情報の開示・削除対応 |
利用できるトピックや受け取れるデータはAPIバージョンによって変更される可能性があります。2026年8月時点の最新安定版は2026-07です。実装時には、Shopify公式のWebhooksリファレンスで利用するAPIバージョンの仕様を確認してください。
Shopify公式 Webhooksリファレンス(トピック一覧)
ここからは、種類ごとに代表的なWebhookと用途を紹介します。
注文に関するWebhook
注文関連では、新しい注文の作成、注文内容の更新、支払い、キャンセルなど、注文に関するさまざまなイベントを受け取れます。orders/createを利用すると、Shopifyで注文が作成されたタイミングを外部システムへ通知できます。受注管理システムや基幹システムとShopifyを連携し、注文が入ったら自動で受注データを登録するといった用途に活用できます。
商品に関するWebhook
商品関連では、商品の作成、更新、削除などを通知できます。代表的なトピックにはproducts/create、products/update、products/deleteがあります。外部の商品管理システムや検索サービスでもShopifyの商品情報を利用している場合、変更を反映するきっかけとして活用できます。
コレクションに関するWebhook
コレクションの作成・更新・削除に対応したWebhookがあります。collections/create、collections/update、collections/deleteなどを利用することで、Shopify上のコレクションに変更があったことを外部システムへ通知できます。コレクション情報を外部サービスでも利用している場合の同期などに活用できます。
在庫に関するWebhook
在庫レベルや在庫アイテムに関する変更を受け取れます。代表的なinventory_levels/updateでは、ロケーションごとの在庫レベルが更新されたことを検知できます。実店舗や倉庫など複数の拠点で在庫を管理している場合、外部の在庫管理システムと情報を連携するきっかけとして利用できます。
顧客に関するWebhook
顧客の作成、更新、削除などを通知できます。たとえばcustomers/updateを利用すると、Shopify上で顧客情報が変更されたタイミングを外部システムへ知らせることができます。CRMやMAツールなどでも顧客情報を管理している場合、データ連携に活用できます。なお、アプリで顧客データを扱う場合は、必要なアクセススコープなどの権限についても確認が必要です。
配送・フルフィルメントに関するWebhook
商品の発送やフルフィルメントに関するイベントを通知できます。fulfillments/createやfulfillments/updateなどを利用すると、Shopify上の発送状況の変化を外部システムへ通知できます。倉庫管理システムや配送関連システムと出荷状況を連携する用途などに活用できます。
返品・返金に関するWebhook
商品の購入後に発生する返品や返金を通知できます。返品ではreturns/requestやreturns/updateなど、返金ではrefunds/createなどのトピックが用意されています。返品管理システムや会計システムへ情報を連携し、その後の処理を始めるきっかけとして利用できます。
カート・チェックアウトに関するWebhook
注文が確定する前のカートやチェックアウトに関連したイベントを通知できます。カートの作成や更新などを検知し、外部サービス側で必要な処理を行う用途に利用できます。
下書き注文に関するWebhook
下書き注文(Draft Order)の作成・更新・削除などに関するイベントを通知できます。下書き注文は、電話やメールで受け付けた注文をスタッフが作成する場合や、法人向け取引などで利用される機能です。外部の受注管理システムでも下書き注文を扱う場合のデータ連携に活用できます。
割引に関するWebhook
割引では、discounts/create、discounts/update、discounts/deleteなどのイベントを通知できます。Shopify上の割引情報を外部システムでも利用している場合に、割引の追加・変更・削除を連携する用途などが考えられます。
決済・チャージバックに関するWebhook
Dispute(異議申し立て)に関するイベントを通知できます。disputes/createやdisputes/updateを利用すると、チャージバックなどの異議申し立てが発生したことや、その状況が変化したことを検知できます。決済に関する確認や社内対応を開始するきっかけとして利用できます。
ロケーション・ストア設定に関するWebhook
Shopifyでは、実店舗や倉庫など商品を保管・管理する拠点を「ロケーション」として管理できます。Webhookでは、ロケーションの作成、更新、削除、無効化などに関するイベントを受け取れます。店舗・倉庫情報を外部システムでも管理している場合の同期などに利用でき、ショップ情報をはじめとするストアの変更に対応したWebhookトピックも提供されています。
テーマに関するWebhook
テーマの作成、更新、削除のほか、themes/publishを利用すると公開テーマが変更されたことを検知できます。テーマ管理アプリや、テーマ公開をきっかけに別の処理を実行する仕組みなどで活用できます。
アプリ・プライバシーに関するWebhook
Shopifyアプリでは、app/uninstalledでアプリのアンインストール、app/scopes_updateでアクセス権限の変更を検知できます。Shopify App Storeで配布するアプリでは、プライバシーに関するコンプライアンスWebhookへの対応も必要です。
代表的なトピックには、顧客データの開示リクエストに対応するcustomers/data_request、顧客データを削除するcustomers/redact、ストアデータを削除するshop/redactがあります。なお、この3種は通常のWebhookトピック一覧とは別枠のコンプライアンス専用トピックで、アプリの設定ファイル(shopify.app.toml)で設定します。
Shopify Webhookを設定する3つの方法
ShopifyのWebhookを設定する方法は、主に3つあります。Shopify管理画面からストア単位で作成する方法と、Shopifyアプリの開発時にWebhook購読を設定する方法に大きく分けられます。
| 方法 | 向いているケース |
|---|---|
| Shopify管理画面 | 特定のストアでWebhookを個別に作成したい |
shopify.app.toml |
アプリを導入した複数のストアで共通のWebhookを設定したい |
| GraphQL Admin API | アプリからストアごとに異なるWebhookを設定したい |
Shopify管理画面から作成する
Shopify管理画面から、コードを書かずにWebhookを作成することもできます。
Shopify管理画面 → 「設定」→「通知」→「Webhook」→「Webhookを作成」へ進み、通知を受け取りたいイベント、データ形式、送信先URL、Webhook APIバージョンを指定します。

画像出典:Shopify管理画面

画像出典:Shopify管理画面
管理画面では、注文、商品、顧客、在庫、コレクション、フルフィルメント、テーマなどに関するイベントを選択できます。ただし、開発者向けリファレンスに掲載されているすべてのWebhookトピックを管理画面から設定できるわけではありません。特定のストアだけでWebhookを利用したい場合は、まずこの方法から検討しましょう。
shopify.app.tomlで設定する
Shopifyアプリを開発する場合は、アプリの設定ファイルであるshopify.app.tomlに、受け取りたいWebhookをあらかじめ設定できます。
この方法では、アプリをインストールした各ストアに同じWebhook設定を適用できます。そのため、複数のストアで共通して「注文作成」や「商品更新」などのイベントを受け取りたいアプリに向いています。主にShopifyアプリの開発者が利用する設定方法です。
GraphQL Admin APIから設定する
ストアごとに受け取るWebhookを変えたい場合は、GraphQL Admin APIを利用できます。たとえば、あるストアでは注文に関するWebhookを受け取り、別のストアでは注文と在庫に関するWebhookを受け取るといったように、ストアごとに異なる設定が可能です。
アプリ開発では、複数のストアで共通のWebhookを設定する場合はshopify.app.toml、ストアごとに設定を変えたい場合はGraphQL Admin API、という使い分けができます。
Shopify Webhookを利用するときの注意点
Shopify Webhookを利用する際は必要なトピックを選ぶだけでなく、配信失敗や重複、セキュリティなども考慮する必要があります。
主な注意点は以下のとおりです。
必要なWebhookだけを設定する
連携したい内容に合わせて、必要なWebhookトピックを選びます。アプリ向けWebhookでは、条件を指定して通知対象や受け取るデータを絞ることもできます。
Shopifyから送られたWebhookか確認する
外部システムでWebhookを受け取る場合は、本当にShopifyから送られたデータかを確認する必要があります。HTTPSで受信する場合は、X-Shopify-Hmac-Sha256を利用して送信元を検証できます。
また、同じWebhookが複数回届く場合もあるため、同じ注文を二重に登録するなどの処理が起きないようにしておくことも重要です。
配信失敗に備える
Webhookは、受信側のシステム障害や通信エラーなどによって正常に届かない場合があります。Shopifyでは配信に失敗すると4時間にわたり最大8回再試行され、それでも失敗が続くとWebhookサブスクリプション自体が自動的に削除されることがあります。削除に気づかず通知が止まったままにならないよう、Webhookを正常に受信できているか監視できるようにしておきましょう。
Webhookだけにデータ同期を依存しない
通知の遅延や処理失敗、配信順序の前後などによって、Shopifyと外部システムのデータに差が生じる可能性があります。注文や在庫など重要な情報を連携する場合は、必要に応じてAdmin APIから最新情報を取得し、Shopify側のデータと一致しているか確認できるようにしましょう。
APIバージョンを確認する
利用できるWebhookトピックや受け取れるデータは、APIバージョンによって変更される場合があります。開発・改修時には、利用するAPIバージョンのWebhooksリファレンスを確認してください。
Webhookは外部システムとの連携に便利ですが、通知を受け取るだけでなく、配信失敗や重複への対応まで含めて設計することが重要です。
まとめ
Shopify Webhookは、注文作成や商品更新などのイベントが発生した際に、アプリや外部システムへ関連データを送信する機能です。注文、商品、在庫、顧客、配送、返品・返金など幅広いトピックが用意されています。
利用する際は、「Shopifyで何が起きたときに、外部システムで何をしたいのか」を整理して必要なトピックを選ぶことが重要です。重要なデータを扱う場合は、セキュリティや重複配信、配信失敗への対応に加え、APIを使った定期的なデータ確認も検討しましょう。