發送 Admin API 要求
**「傳送 Admin API 要求」**動作可以使用 GraphQL Admin API 中的大多數變更操作來修改您的商店,包括尚未在 Flow 中作為動作提供的變更操作。
欄位
「發送 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 使用的 Admin API 版本中的
Mutations
和Mutation inputs
清單。 - 當發布新的 API 版本時,如果使用已變更或棄用的變更操作或欄位,此動作可能會失敗。
- 此動作不支援 GraphQL 查詢,僅支援變異。
- 此動作不支援已停用的變異。
- 此動作不支援某些應用程式特有的變異,包含部分訂閱、行銷活動和折扣變異。
- 此動作不支援非同步變異或回傳
Job
類型的變異。 - 此動作不支援未實作 Node 介面的變異。
範本
為新訂單新增免費(100% 折扣)品項
此範本為新訂單添加免費的折扣品項(如果品項有庫存的話)。範本會在不通知顧客的情況下檢查庫存、應用 100% 折扣,並更新訂單。這項自動化處理可有效 (1) 透過為顧客訂單提供驚喜免費品項,加強顧客滿意度;(2) 透過將新或較不知名的商品以免費樣本的形式添加到訂單當中,推廣這些商品;或者 (3) 透過自動化添加免費品項並提供折扣,簡化推廣過程。檢視範本
允許為由公司帳號申請建立的公司訂購
由公司帳號要求建立公司時,指派訂購權限。檢視範本
在多個子類無庫存或庫存恢復時更改商品範本
根據商品子類的庫存更新商品範本。工作流讓您可以在有庫存(商店的預設範本)、無庫存和一個或多個子類無庫存範本之間切換。檢視範本
出貨訂單的電子品項
出貨無須實際配送的品項,如電子品項或與存貨單位 (SKU) 匹配的品項。就每個新訂單在每個出貨地點(「出貨訂單」)運行一次。檢視範本