Admin APIリクエストを送信する

[Admin APIリクエストを送信する] アクションにより、Shopify GraphQL Admin APIにミューテーションを送信します。そうすることで、APIがFlowの使用を許可する、ほとんどすべてのアクションを実行できます。

フィールド

[Admin APIリクエストを送信する] アクションには、以下のフィールドが含まれます。

[Admin APIリクエストを送信する] アクションで使用されるフィールド。
フィールド 説明
ミューテーション 必須。呼び出すShopify GraphQL Adminミューテーションです。ミューテーションとは、アクションを実行する、またはデータをアップデートするAPIです。
ミューテーション入力 必須。ミューテーションリクエストの一部として送信する必要のあるデータ (JSON) です。各ミューテーションには異なるデータセット (各ミューテーションに提供されるリンクからドキュメントにアクセス可能) が必要です。必要なJSONを構築するには、Liquidまたはコードを実行するアクションを使用できます。

トリガー

[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環境に返すことはありません。
  • このアクションは、GraphQLクエリには対応していません。ミューテーションのみに対応しています。
  • このアクションは、非同期ミューテーションやJobタイプを返すミューテーションには対応していません。
  • このアクションは、サブスクリプションやディスカウントのミューテーションなど、特定のアプリに特化したミューテーションには対応していません。
  • このアクションにより、2024-01現在の、単一Shopify APIバージョンのMutationsMutation inputsの一覧が表示されます。
  • APIのバージョンがアップグレードされ、大規模な変更が行われた場合、対象のフィールドに依存していると、このアクションが失敗する可能性があります。

Shopifyで販売を開始する準備はできていますか?

無料体験を試す