發送 Admin API 要求

發送 Admin API 要求」(Send Admin API request) 動作會將變異傳送至 Shopify GraphQL Admin API。如此一來,您幾乎可以使用 Flow 執行 API 允許的任何動作。

欄位

發送 Admin API 要求」(Send Admin API request) 動作包含以下欄位。

「發送 Admin API 要求」(Send Admin API request) 動作中使用的欄位。
欄位 說明
Mutation (變異) 必填。這是您要呼叫的 Shopify GraphQL Admin 變異。變異是一種執行動作或更新資料的 API。
變異輸入 (Mutation inputs) 必填。這是您必須以變異要求一部分所發送的資料 (JSON 格式)。每項變異都需要一組不同的資料,這些資料記錄在為每項變異提供的連結中。若要建構必要的 JSON,您可以使用 Liquid 或執行程式碼 (Run code) 動作

觸發條件

只要工作流程提供建構變異輸入所需的資料,就可以在任何工作流程中透過任何觸發條件使用「發送 Admin API 要求」(Send Admin API request) 動作。

範例

範例 1:更新用於商品的範本

在此範例中,我們會使用「發送 Admin API 要求」(Send Admin API request) 動作來呼叫 productUpdate 變異以更新用於商品的範本。

id 欄位是必填欄位,必須具有有效的商品 GID。這裡,我們用 {{product.id}} Liquid 變數來進行設定。此處假設您的工作流程具有會提供 product 物件的觸發條件。

templateSuffix 是您要套用至商品的範本名稱。例如,如果您想要套用 pre-order 範本,請將 templateSuffix 設定為 pre-order

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

範例 2:更新顧客的免稅狀態

在此範例中,我們會使用「發送 Admin API 要求」(Send Admin API request) 動作來呼叫 customerUpdate 變異以更新顧客的免稅狀態。

id 欄位是必填欄位,必須具有有效的顧客 GID。這裡,我們用 {{order.customer.id}} Liquid 變數來進行設定。此處假設您的工作流程具有提供 order 物件的觸發條件。

taxExempt 欄位是一個布林值,指出顧客是否免稅。在此範例中,我們將它設定為 true

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

範例 3:更新顧客的語言代碼

在此範例中,我們會使用「發送 Admin API 要求」(Send Admin API request) 動作來呼叫 customerUpdate 變異以更新顧客的語言代碼。

id 欄位是必填欄位,必須具有有效的顧客 GID。這裡,我們用 {{customer.id}} Liquid 變數來進行設定。此處假設您的工作流程具有會提供 customer 物件的觸發條件。

locale 欄位是表示顧客語言代碼的字串。在此範例中,我們將它設定為 en

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

Liquid 小技巧

Flow 支援 json liquid 篩選條件,這在建構輸入時很有幫助。下列範例均使用 customerUpdate 變異,並假設您的工作流程具有提供 customer 物件的觸發條件。

使用字串

下列範例更新了顧客備註:

{% 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 篩選條件可用於從物件序列取得特定屬性的陣列。在下列範例中,從顧客地址陣列中擷取出 city 屬性的陣列:

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ customer.addresses | map: "city" | json }}
  }
}

執行工作流程後所產生的 JSON 如下所示:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

限制

發送 Admin API 要求」(Send Admin API request) 動作具有以下限制:

  • 此動作不會因變異而將資料回傳至 Flow 環境中。
  • 此動作不支援 GraphQL 查詢,僅支援變異。
  • 此動作不支援非同步變異或回傳 Job 類型的變異。
  • 此動作不支援某些應用程式專用的變異,包括訂閱和折扣變異。
  • 此動作會顯示單一 Shopify API 版本 (目前為 2024-01) 的 MutationsMutation inputs 清單。
  • API 版本升級並包含重大變更時,如果您依賴該欄位,可能會導致此動作失敗。

準備好開始透過 Shopify 銷售商品了嗎?

免費試用