【前編】Shopify X Amazon間のデータ連携方法
今回はShopify x Amazon連携に関してまとめていきます。
商品データ連携、注文データ連携、在庫データ連携、配送データ連携をカバーしていきます。本日はまず、Shopifyの商品情報をAmazonにプッシュする方法をカバーします。
長くなるので2部に分けました。まずは、前半を公開します。前半ではShopifyで商品情報が更新された際にWebhookで受け取るところから始まります。 下記がイメージです。
事前に準備するもの
・Shopifyアカウント
・Amazon MWS アカウント
・Azure アカウント
・Visual Studio
ShopifyのWebhookを受け取る
まずはShopify上で商品情報に変更がある際にWebhookで更新された内容を探知します。
そのためにAzure Functionsを用意します。Azure Functionsの用意に関しては下記を参照ください。
https://qiita.com/syantien/items/ab62db3b5ccec230db4e
Webhookに関してはShopifyにあるこちらのドキュメントをベースに進めていきます
https://help.shopify.com/en/api/getting-started/webhooks
ShopifyでWebhookの購読を設定
メニュー右下の「設定」をクリック、設定メニューの「通知」をクリックしてください。
通知設定画面の一番下部分に「Webhookを作成」ボタンがあるのでクリック。
次にWebhookの内容を選択し、それを受信するURLを入力します。
今回は商品の更新がある度にAmazonでも該当する商品の更新を行うので「商品更新」を指定します。
Webhookが作成されると、下記のように表示されます。ここ(①)に表記されるURLが正しいことを確認し、下部分にある文字列(②)を使い、正しいWebhookであることを確認します。
こちらのドキュメントによるとヘッダーで下記の値が渡されるとのことです。
X-Shopify-Topicで正しいトピックか確認、X-Shopify-Hmac-Sha256で②にあった文字列を使いSha256で暗号化された文字列が正しいか確認、X-Shopify-Shop-Domainで対象のストアーであることを確認、X-Shopify-API-VersionでAPIのバージョンを確認してください。
Webhookレスポンスクラスの定義
products/createまたはproducts/updateの際のレスポンス型は下記です。
ここで一つ、Visual Studioでのやばいテクニックを紹介。上記のサンプルJsonをコピーします。このJsonファイルのモデルを定義したいクラスファイルを開き、Visual Studioの「編集」→「形式を選択して貼り付け」→JSONクラスとして貼り付けるをクリック。
クリック後、下記のようなモデルが自動で生成されます。
ということで、Shopify Webhook (Product/Create Product/Update)のJsonを受けるC#モデルは上記です。
Webhookを受けるFunction
さっそくFunctionもこのデータを受け取るようにします。
ではテストをしてみます。テストは先ほどの管理画面右側から送ることができます。
そして下記がFunctionsのLogになります。
X-Shopify-Hmac-Sha256もちゃんと照合することができました。
次回予告
次はAmzazon API を使って商品情報をプッシュします。