Shopify アプリに関する話題はこちら
お世話になります。現在、C#でShofify連携のアプリを開発しております。
担当しているシステムの商品や在庫数をREST APIでShopifyへ登録し、Shopifyの売上をREST APIで担当システムに取り込むことはできました。
但し上記のアプリは担当システム側に配置しているC#アプリから連携をかけるもので、Shopifyの売上をリアルタイムで取り込むものではありません。
(スケジューラーでバッチ起動しているが、リアルタイムな売上連携ではない)
お客様からは、Shopifyで決済が完了した時点でその売り上げを担当システム(DB)に反映してほしいとの要望を受けております。
(Shopify決済完了時にShopify側から、担当システムに売上を連携する)
上記の要望を実現するための方法(どのようなAPIを使用すれば実現できるのか、など)をご教授頂けないでしょうか?
(使用するAPIはREST APIでなくとも構いません。)
Shopify側から連携をかけるにはどうしたらよいのかが分からずに困っております。
初歩的な質問で申し訳ありませんが、どうぞよろしくお願い致します。
Shopify Webhookを利用すると、購入などShopify側で発生したイベントを自身のシステムに通知することが可能です。
通知されたリクエストにイベントの詳細情報(注文完了であればその情報)が格納されています。
詳細は、helpを見ていただければと!!
https://help.shopify.com/ja/manual/orders/notifications/webhooks
すでにバッチを実装されているのであれば、そちらと上記の方のようにWebhookを合わせればほぼリアルタイムになると思います。(Webhook自体は100%の通達は保証されないので、バッチと併用を推奨します)。
あとは、決済完了画面に下記のAPIを使ってJavaScritptを埋め込み、さらにそこからApp proxyを使ってアプリサーバーに完了した注文情報を送信することも可能です。
https://shopify.dev/docs/admin-api/rest/reference/online-store/scripttag?api[version]=2020-07
ご丁寧なご回答、誠にありがとうございます。
なるほど、webhookでは100%の通達が保証されていないのですね。大変参考になります。
今後ともどうぞよろしくお願い致します。
> なるほど、webhookでは100%の通達が保証されていないのですね。大変参考になります。
Webhookの扱いについては、以下のブログでも触れているので参考にしてください。
https://www.shopify.jp/blog/partner-shopify-app-development
100%の保証がないとの明言はしていないですが、単一方向の通信ですので、途中のインターネットの経路の問題などでロストする可能性はあります。
上記では、そのための再送の仕組みについても書いてありますが、逆にいうと、受け取りのレスポンスが受け取れなかった場合は二重送信もあり得ますので、その辺りを考慮した設計が必要かと思います。
重ね重ねありがとうございます。
参考にさせて頂きます。
決済完了ページでScriptTag動くんですね・・・!知りませんでした。ありがとうございます。
ご回答誠にありがとうございます。大変助かります。
教えて頂いた方法で、実装してみようと思います。
誠にありがとうございました。
オンラインストア運営はとてもやりがいのある活動です。新しい注文が入った時の喜びや世界中のお客様とやりとりできる可能性、商品に対して最高のレビューをもらった時の満足感は、毎日の...
By Mina Mar 13, 2024Shopifyパートナーとして活躍している場合、クライアントのためにストア構築や移行を行うことがございます。今回のブログ記事では移行をスムーズに行い、移行後も問題なく運営できるため...
By Mirai Feb 25, 2024Shopifyではチャージバックや不正注文の被害に遭うことが販売社様にとってストレスが多く、困難な状況である事を理解しています。販売社様の中ではチャージバックを存じていない方、不正...
By JapanGuru Feb 12, 2024