Admin APIリクエストを送信する
管理画面パネル リクエストの送信API GraphQL Admin APIアクションでは、Flowの アクション としてまだ利用できないミューテーションも含め、 のほとんどのミューテーションを使用してストアに変更を加えることができます。
フィールド
[Admin APIリクエストを送信する] アクションには、以下のフィールドが含まれます。
フィールド | 説明 |
---|---|
ミューテーション | 必須。呼び出すShopify GraphQL Adminミューテーションです。ミューテーションとは、アクションを実行する、またはデータをアップデートするAPIです。 |
ミューテーション入力 | 必須。ミューテーションリクエストの一部として送信する必要のあるデータ (JSON) です。各ミューテーションには異なるデータセット (各ミューテーションに提供されるリンクからドキュメントにアクセス可能) が必要です。必要なJSONを構築するには、LiquidまたはRun codeアクションを使用できます。 |
トリガー
[Admin APIリクエストを送信する] アクションは、ミューテーション入力の構築に必要なデータを提供するワークフローであれば、どのワークフローでも使用でき、どのトリガーでも開始されます。
例
例1:商品に使用するテンプレートを更新する
この例では、[Admin APIリクエストを送信する] アクションを使用して、productUpdate
ミューテーションを呼び出して商品に使用するテンプレートを更新します。
id
フィールドは必須であり、有効な商品GIDでなければなりません。ここでは、{{product.id}}
Liquid変数を使用して設定しています。これは、ワークフローに商品オブジェクトを提供するトリガーがあることを前提としています。
templateSuffix
は、商品に適用するテンプレートの名前です。たとえば、pre-order
テンプレートを適用する場合は、pre-order
にtemplateSuffixを設定します。
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}
例2:お客様の免税ステータスを更新する
この例では、[Admin APIリクエストを送信する] アクションを使用して、customerUpdate
ミューテーションを呼び出してお客様の免税ステータスを更新します。
id
フィールドは必須であり、有効なお客様GIDでなければなりません。ここでは、{{order.customer.id}}
Liquid変数を使用して設定しています。これは、ワークフローに注文オブジェクトを提供するトリガーがあることを前提としています。
taxExempt
フィールドは、お客様が免税対象かどうかを示すブーリアンです。この例では、true
に設定しています。
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}
例3:お客様のロケールを更新する
この例では、[Admin APIリクエストを送信する] アクションを使用して、customerUpdate
ミューテーションを呼び出してお客様のロケールを更新します。
id
フィールドは必須であり、有効なお客様GIDでなければなりません。ここでは、{{customer.id}}
Liquid変数を使用して設定しています。これは、ワークフローにお客様オブジェクトを提供するトリガーがあることを前提としています。
locale
フィールドは、お客様のロケールを表す文字列です。この例では、en
に設定しています。
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}
Liquidのヒント
Flowは、入力を構築するのに便利なLiquidのjson
フィルターに対応しています。以下のすべての例では、customerUpdate
ミューテーションを使用し、ワークフローにお客様のオブジェクトを提供するトリガーがあることを前提としてしています。
文字列の使用
以下の例では、お客様に関するメモを更新します。
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}
json
フィルターは、適切なJSONを確保するために文字列をエスケープします。このワークフローが実行された後、以下のJSONが生成されます。
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}
配列の使用
配列の例
json
フィルターでは、Liquid配列をJSON配列に変換します。以下の例は、Liquid配列を指定するとJSON配列を出力します。
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}
このワークフローが実行された後、以下のJSONが生成されます。
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}
ループの例
以下の例では、ループを使用して配列の要素をカンマで区切って出力します。
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}
このワークフローが実行されると、以下のJSONが生成されます。
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}
マップの例
mapフィルターを使用して、オブジェクトの配列から特定のプロパティの配列を取得できます。以下の例では、お客様住所の配列からcity
プロパティの配列が抽出されます。
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}
このワークフローが実行された後、以下のJSONが生成されます。
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}
制限
[Admin APIリクエストを送信する] アクションには、以下の制限があります。
- このアクションは、Flowで使用されているAdmin APIバージョンから
Mutations
とMutation inputs
のリストを表示します。 - 新しい API バージョンがリリースされた場合、変更または非推奨になったミューテーションまたはフィールドを使用すると、このアクションは失敗する可能性があります。
- このアクションは、GraphQLクエリには対応していません。ミューテーションのみに対応しています。
- このアクションは、非推奨になったミューテーションには対応していません。
- このアクションは、一部のサブスクリプション、マーケティングアクティビティ、ディスカウントのミューテーションなど、特定のアプリに特化したミューテーションには対応していません。
- このアクションは、非同期ミューテーションや
Job
タイプを返すミューテーションには対応していません。 - このアクションは、ノードインターフェイスを実装していないミューテーションをサポートしていません。
テンプレート
新規注文に無料 (100%ディスカウント) のアイテムを追加する
このテンプレートは、アイテムが在庫にある場合、新規注文にディスカウントされた無料のアイテムを追加します。在庫を確認し、100%のディスカウントを適用し、お客様に通知することなく注文を更新します。この自動化は、(1) 注文にサプライズの無料アイテムを追加することでお客様満足度を向上させる、(2) 注文に無料サンプルとして新商品やあまり知られていない商品を追加することで販売促進を図る、(3) 無料アイテムの追加やディスカウントを自動化することで販売促進を効率化する、といった場合に役立ちます。テンプレートを表示する
会社アカウントのリクエストで作成された会社用注文を許可する
企業アカウントのリクエストによって会社が作成された際に、注文権限を割り当てます。テンプレートを表示する
バリエーションが在庫切れまたは再入荷した場合に商品テンプレートを変更する
商品のバリエーションの在庫に基づいて、商品テンプレートを更新します。ワークフローでは、在庫あり (ストアのデフォルトのテンプレート)、在庫切れ、1つ以上のバリエーションが在庫切れの各テンプレートに切り替えることができます。テンプレートを表示する
注文のデジタルアイテムをフルフィルメントする
デジタルアイテムなど、物理的な配送を必要としないアイテム、またはSKUのリストに一致するアイテムをすべてフルフィルメントします。新しい注文に対して、各フルフィルメントロケーション (「フルフィルメント注文」) ごとに1回実行されます。テンプレートを表示する