FROM CACHE - jp_header

Shopify決済完了時にその売り上げをShopifyから他のシステムへ連携する方法

tonkotsu
観光客
6 0 1

お世話になります。現在、C#でShofify連携のアプリを開発しております。

担当しているシステムの商品や在庫数をREST APIでShopifyへ登録し、Shopifyの売上をREST APIで担当システムに取り込むことはできました。

但し上記のアプリは担当システム側に配置しているC#アプリから連携をかけるもので、Shopifyの売上をリアルタイムで取り込むものではありません。

(スケジューラーでバッチ起動しているが、リアルタイムな売上連携ではない)

お客様からは、Shopifyで決済が完了した時点でその売り上げを担当システム(DB)に反映してほしいとの要望を受けております。

(Shopify決済完了時にShopify側から、担当システムに売上を連携する)

上記の要望を実現するための方法(どのようなAPIを使用すれば実現できるのか、など)をご教授頂けないでしょうか?

(使用するAPIはREST APIでなくとも構いません。)

Shopify側から連携をかけるにはどうしたらよいのかが分からずに困っております。

初歩的な質問で申し訳ありませんが、どうぞよろしくお願い致します。

7件の返信7

Tomoyuki_K
Shopify Partner
38 10 30

Shopify  Webhookを利用すると、購入などShopify側で発生したイベントを自身のシステムに通知することが可能です。
通知されたリクエストにイベントの詳細情報(注文完了であればその情報)が格納されています。

詳細は、helpを見ていただければと!!

 

https://help.shopify.com/ja/manual/orders/notifications/webhooks

junichiokamura
Community Manager
1199 280 505

すでにバッチを実装されているのであれば、そちらと上記の方のようにWebhookを合わせればほぼリアルタイムになると思います。(Webhook自体は100%の通達は保証されないので、バッチと併用を推奨します)。

あとは、決済完了画面に下記のAPIを使ってJavaScritptを埋め込み、さらにそこからApp proxyを使ってアプリサーバーに完了した注文情報を送信することも可能です。

https://shopify.dev/docs/admin-api/rest/reference/online-store/scripttag?api[version]=2020-07

https://shopify.dev/tutorials/display-data-on-an-online-store-with-an-application-proxy-app-extensio...

Senior Partner Solutions Engineer
tonkotsu
観光客
6 0 1

ご丁寧なご回答、誠にありがとうございます。

なるほど、webhookでは100%の通達が保証されていないのですね。大変参考になります。

今後ともどうぞよろしくお願い致します。

junichiokamura
Community Manager
1199 280 505

なるほど、webhookでは100%の通達が保証されていないのですね。大変参考になります。

Webhookの扱いについては、以下のブログでも触れているので参考にしてください。
https://www.shopify.jp/blog/partner-shopify-app-development

100%の保証がないとの明言はしていないですが、単一方向の通信ですので、途中のインターネットの経路の問題などでロストする可能性はあります。

上記では、そのための再送の仕組みについても書いてありますが、逆にいうと、受け取りのレスポンスが受け取れなかった場合は二重送信もあり得ますので、その辺りを考慮した設計が必要かと思います。

Senior Partner Solutions Engineer
tonkotsu
観光客
6 0 1

重ね重ねありがとうございます。

参考にさせて頂きます。

Toru
Shopify Partner
4 0 1

決済完了ページでScriptTag動くんですね・・・!知りませんでした。ありがとうございます。

tonkotsu
観光客
6 0 1

ご回答誠にありがとうございます。大変助かります。

教えて頂いた方法で、実装してみようと思います。

誠にありがとうございました。