發送 Admin API 要求

**「傳送 Admin API 要求」**動作可以使用 GraphQL Admin API 中的大多數變更操作來修改您的商店,包括尚未在 Flow 中作為動作提供的變更操作。

欄位

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

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

只要工作流程提供建構變異輸入所需的資料,就可以在任何工作流程中透過任何觸發條件使用「發送 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 使用的 Admin API 版本中的 MutationsMutation inputs 清單。
  • 當發布新的 API 版本時,如果使用已變更或棄用的變更操作或欄位,此動作可能會失敗。
  • 此動作不支援 GraphQL 查詢,僅支援變異。
  • 此動作不支援已停用的變異。
  • 此動作不支援某些應用程式特有的變異,包含部分訂閱、行銷活動和折扣變異。
  • 此動作不支援非同步變異或回傳 Job 類型的變異。
  • 此動作不支援未實作 Node 介面的變異。

範本

為新訂單新增免費(100% 折扣)品項

此範本為新訂單添加免費的折扣品項(如果品項有庫存的話)。範本會在不通知顧客的情況下檢查庫存、應用 100% 折扣,並更新訂單。這項自動化處理可有效 (1) 透過為顧客訂單提供驚喜免費品項,加強顧客滿意度;(2) 透過將新或較不知名的商品以免費樣本的形式添加到訂單當中,推廣這些商品;或者 (3) 透過自動化添加免費品項並提供折扣,簡化推廣過程。檢視範本

允許為由公司帳號申請建立的公司訂購

由公司帳號要求建立公司時,指派訂購權限。檢視範本

在多個子類無庫存或庫存恢復時更改商品範本

根據商品子類的庫存更新商品範本。工作流讓您可以在有庫存(商店的預設範本)、無庫存和一個或多個子類無庫存範本之間切換。檢視範本

出貨訂單的電子品項

出貨無須實際配送的品項,如電子品項或與存貨單位 (SKU) 匹配的品項。就每個新訂單在每個出貨地點(「出貨訂單」)運行一次。檢視範本

沒有找到您需要的答案嗎?我們很樂意為您提供協助。