FROM CACHE - jp_header
解決済

Webhook で商品のカスタマイズデータを受け取る方法

みしん
Shopify Partner
8 0 3

商品データにメタフィールドを設定し、その情報を、注文完了時の webhook から取得したいのですが、注文完了時の webhook には、metafileds は含まれていないようです。メタフィールドを必ずしも使う必要はないですのですが、デフォルトで用意されていないデータを商品データに追加し、その情報を注文完了のwebhook から取得できる方法を知っている方がいましたら教えて下さい。

 

やりたいこととしては、商品に外部システムで管理しているIDを設定し、それを注文完了時のwebhookで受け取り、そのIDを使って、外部システムと接続のキーにしたいのです。

1 件の受理された解決策

junichiokamura
Community Manager
1200 280 506

成功

みしんさん、こんにちは。

 

Webhookで含まれないデータを取得するには、Webhookに含まれるキー(Order IDなど)をもとにWebhookを受け取るエンドポイント内でAPIをコールするのが良いかと思います。APIをコールするだけならばpublic appを作る必要はないので、下記のprivate authenticationでBasic認証を使ってAPIをコールすることもできるかと思います。

https://help.shopify.com/en/api/getting-started/authentication/private-authentication

Senior Partner Solutions Engineer

元の投稿で解決策を見る

5件の返信5

junichiokamura
Community Manager
1200 280 506

成功

みしんさん、こんにちは。

 

Webhookで含まれないデータを取得するには、Webhookに含まれるキー(Order IDなど)をもとにWebhookを受け取るエンドポイント内でAPIをコールするのが良いかと思います。APIをコールするだけならばpublic appを作る必要はないので、下記のprivate authenticationでBasic認証を使ってAPIをコールすることもできるかと思います。

https://help.shopify.com/en/api/getting-started/authentication/private-authentication

Senior Partner Solutions Engineer
みしん
Shopify Partner
8 0 3

 

早速の返信ありがとうございます。Shopify からデータもらったのに、その後わざわざ同じようなデータを問い合わせるのはなんかコスト高いなと思ったので、できれば一度でとれればと思いました。現状だとできないのですね。残念ですが、API から商品データとる方法でためしてみます。

 

junichiokamura
Community Manager
1200 280 506

私の方で検証はしていないですが、Webhookを作成する際に、metafieldsのnamespaceを登録すると、取得できるかもしれません。一度お試しいただけますか? https://help.shopify.com/en/api/reference/events/webhook#create-2019-07

Senior Partner Solutions Engineer
みしん
Shopify Partner
8 0 3

返信ありがとうございます。

 

試してみました。が、うまくいきませんでした。metafileds や namespace に関する理解が不足しているので、間違っているかもしれませんが。

 

試したことは以下となります。

  1. 商品の metafields に "product" という namespace で metafield(id=123)を1つ追加。
  2. Order/create の webhook config に以下にような設定を API 経由で追加。

    ```
    {"webhook": {"topic": "order/paid","address": "https://webhook.site/xxxx","format": "json","metafield_namespaces": ["product"]}}

    ```

  3. 画面から、商品を購入。Webhook の内容を確認。しかし、特に設定した metafield のデータは含まれておらず。ただし、wehook の設定を行ったことにより、metafields というデータ項目は増えていました。(画面からwebhookを追加した場合にはなかったです)ただし、中身は空です。"metafields:[]"。どうすれば、商品に設定した metafield がここに追加されるのかが不明です。

 

上記の内容でなにか分かることがありましたら、アドバイスいただけると助かります。 

 

 

 

junichiokamura
Community Manager
1200 280 506

私の方でも、実際APIで検証してみましたが、metafiledsの値は取れませんでした。レスポンスの構成を見ると、Webhookの対象データに直接metafieldsが設定されている場合しか取得できないようなので、やはり先にご案内した方法になるようです。ちなみにメタフィールド以外ですと、tagなどもあるかと思います。(IDとなると大量のタグが生成されてしまいますが)

 

Senior Partner Solutions Engineer