傳送 Admin API 請求
「傳送 Admin API 請求」動作可使用 GraphQL Admin API 中的大多數變異,以變更您的商店,也包含在 Flow 中尚未提供為 動作 的變異。
欄位
「傳送 Admin API 請求」動作包含下列欄位。
| 欄位 | 說明 |
|---|---|
| 變異 | 必填。您要呼叫的 Shopify GraphQL Admin 變異。變異 是一種會執行操作或更新資料的 API。 |
| 變異輸入 | 必填。作為您的 mutation request 一部分需要傳送的資料,格式為 JSON。每個變異所需的資料集不同,請參閱各變異提供的連結說明。要建立必要的 JSON,您可以使用 Liquid,或使用 Run code action。 |
觸發條件
只要工作流程提供建立變異輸入所需的資料,您就能在任何工作流程、任何觸發條件中使用「傳送 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 查詢,只支援變異。
- 此動作不支援已棄用的變異。
- 此動作不支援部分僅適用於特定 app 的變異,其中包含部分訂閱、行銷活動與折扣等變異。
- 此動作不支援非同步變異,亦不支援會傳回
Job型別的變異。 - 此動作不支援未實作 Node 介面的變異。
範本
在新訂單中加入免費品項 (100% 折扣)
此範本會在品項有庫存時,為新訂單加入免費品項。系統會檢查庫存、套用 100% 折扣,並在不通知顧客的情況下更新訂單。此自動化很實用,可用於:(1) 在訂單中加入驚喜免費品項以提升顧客滿意度,(2) 在訂單中加入免費試用品以推廣新商品或知名度較低的商品,或 (3) 透過自動加入並折抵免費品項以簡化促銷活動。View template
允許由公司帳戶申請建立的公司下單
當公司是透過公司帳戶申請建立時,指派下公司訂單的權限。 View template
當子類無庫存或重新有貨時,變更商品範本
依據商品子類的庫存更新商品範本。此工作流程可在以下範本間切換:有庫存 (商店的預設範本)、無庫存,以及一或多個子類無庫存時。 View template
出貨訂單中的所有數位品項
會出貨所有不需實體配送的品項 (例如數位品項),或是符合存貨單位 (SKU) 清單的品項。對於新訂單,會針對每個出貨地點 (「出貨訂單」) 執行一次。 View template