Admin APIリクエストを送信
「Admin APIリクエストを送信」アクションでは、Flowでアクションとしてまだ利用できないミューテーションを含め、GraphQL 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テンプレートを適用する場合は、templateSuffixをpre-orderに設定します。
{
"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は、入力の構築に役立つjsonというLiquidフィルターに対応しています。以下の例はすべて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"]
}
}Forループの例
以下の例では、ループを使用して配列の要素をカンマ区切りで出力します。
{% 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の例
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タイプを返すミューテーションには対応していません。 - このアクションは、Nodeインターフェースを実装していないミューテーションには対応していません。
テンプレート
新規注文に無料 (100%ディスカウント) のアイテムを追加する
このテンプレートは、アイテムの在庫がある場合に、無料のディスカウントアイテムを新規注文に追加します。在庫を確認し、100%のディスカウントを適用して、お客様に通知することなく注文を更新します。このオートメーションは、(1) 注文にサプライズの無料アイテムを含めることでお客様の満足度を向上させる、(2) 新商品やあまり知られていない商品を無料サンプルとして注文に追加することで販売を促進する、(3) 無料アイテムの追加とディスカウントを自動化してプロモーションを効率化する場合に役立ちます。テンプレートを表示
会社アカウントリクエストで作成された会社からの注文を許可する
会社アカウントのリクエストによって会社が作成されたときに、注文の許可を割り当てます。テンプレートを表示
バリエーションが在庫切れまたは再入荷したときに商品テンプレートを変更する
商品のバリエーションの在庫に基づいて商品テンプレートを更新します。このワークフローでは、在庫がある場合 (ストアのデフォルトテンプレート)、在庫切れの場合、1つ以上のバリエーションが在庫切れの場合の間でテンプレートを切り替えることができます。テンプレートを表示
注文に含まれるすべてのデジタルアイテムをフルフィルメントする
デジタルアイテムなど、配送が不要なアイテム、または SKU のリストと一致するすべてのアイテムをフルフィルメントします。新しい注文のフルフィルメントロケーション (「フルフィルメント注文」) ごとに1回実行されます。テンプレートを表示