ペイロードのマッピングとShopify Flow変数
Shopify Flow トリガーフィールドはプレーンな文字列です。ペイロードはおそらくそうではないでしょう。マッピングとは、ワークフローに必要な部分を受信リクエストから抽出する方法のことです。
4つの分野
各 Webhook は、Shopify Flow に対して 4 つのフィールド(fieldOne、fieldTwo、fieldThree、fieldFour)を公開します。「**詳細設定」**で、それぞれをペイロード内のキーに紐付けてください。
次のようなリクエスト本文がある場合:


{
"orderId": "1001",
"customer": { "email": "someone@example.com", "name": "Alex" },
"note": "gift wrap"
}| フィールド | 地図上で表示する | 「Shopify Flow」に至る価値 |
|---|---|---|
fieldOne |
orderId |
1001 |
fieldTwo |
customer.email |
someone@example.com |
fieldThree |
customer.name |
Alex |
fieldFour |
note |
gift wrap |
ネストされた値にはドット記法(customer.email)が使用されます。配列の要素にはインデックス(items.0.sku)が使用されます。
Shopify Flowでは、これらを{{fieldOne}}、{{fieldTwo}}といったように参照します。
オブジェクトと配列
マッピングされた値自体がオブジェクトまたは配列である場合、Shopify Flowの変数には構造体を格納できないため、自動的にJSON文字列に変換されます。上記の例で、fieldOne を customer にマッピングすると、Shopify Flowでは次のように表示されます:
{"email":"someone@example.com","name":"Alex"}そのデータが必要になった際は、Shopify Flowの「**コードを実行」**アクションで解析してください。
4つのフィールドでは足りない場合
4つの指定フィールドで、ほとんどの連携に対応しています。それ以外の場合には、「詳細設定」内に3つの有効化スイッチがあり、これらはすべてデフォルトでオフになっています:
| 設定 | Shopify Flowが受け取るもの | 『フィールド・イン・Shopify Flow』 |
|---|---|---|
| カスタムリクエストボディを許可する | 厳格な検証を行わず、どのような体型でも受け入れます | - |
| 全身を使ってください | リクエスト本文全体をJSON文字列として | rawBody |
| リクエストヘッダーを含める | リクエストのヘッダーをキーと値のリストとして | requestHeaders |
| クエリパラメータを含める | キーと値のリストとしてのURLクエリ文字列 | queryParams |
requestHeaders また、queryParamsはリストとして渡されます。「コードの実行」アクション内でrequestHeaders.itemsを反復処理し、各エントリは{ key, value }となります。
50KB以内に収めてください
Shopify Flow 各トリガー実行のサイズを50KBに制限しています。送信するペイロードの正確なサイズを計測し、payload_too_large を使用して事前にサイズが上限を超えるものをすべて拒否するため、後でワークフローが失敗するのではなく、明確なエラーメッセージが表示されます。
もしエラーが出る場合は、ボディのサイズを小さくするか、「ボディ全体を使用する」「リクエストヘッダーを含める」「クエリパラメータを含める」のオプションをオフにしてみてください。通常、これらが原因でエラーが発生することが多いようです。
ヘッダーとクエリは常に記録されます
オプトインスイッチは、Shopify Flow に転送される内容のみを制御します。呼び出し履歴には、ヘッダーとクエリ文字列(機密情報はマスクされた状態で)が常に記録されますので、リクエストのすべてをワークフローに送信することなく、デバッグを行うことができます。

