傳送 Admin API 請求

傳送 Admin API 請求」動作可使用 GraphQL Admin API 中的大多數變異,以變更您的商店,也包含在 Flow 中尚未提供為 動作 的變異。

欄位

傳送 Admin API 請求」動作包含下列欄位。

「傳送 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 版本中的 MutationsMutation inputs 清單。
  • 當發佈 新 API 版本 時,若此動作使用的變異或欄位已變更或已棄用,可能會失敗。
  • 此動作不支援 GraphQL 查詢,只支援變異。
  • 此動作不支援已棄用的變異。
  • 此動作不支援部分僅適用於特定 app 的變異,其中包含部分訂閱、行銷活動與折扣等變異。
  • 此動作不支援非同步變異,亦不支援會傳回 Job 型別的變異。
  • 此動作不支援未實作 Node 介面的變異。

範本

在新訂單中加入免費品項 (100% 折扣)

此範本會在品項有庫存時,為新訂單加入免費品項。系統會檢查庫存、套用 100% 折扣,並在不通知顧客的情況下更新訂單。此自動化很實用,可用於:(1) 在訂單中加入驚喜免費品項以提升顧客滿意度,(2) 在訂單中加入免費試用品以推廣新商品或知名度較低的商品,或 (3) 透過自動加入並折抵免費品項以簡化促銷活動。View template

允許由公司帳戶申請建立的公司下單

當公司是透過公司帳戶申請建立時,指派下公司訂單的權限。 View template

當子類無庫存或重新有貨時,變更商品範本

依據商品子類的庫存更新商品範本。此工作流程可在以下範本間切換:有庫存 (商店的預設範本)、無庫存,以及一或多個子類無庫存時。 View template

出貨訂單中的所有數位品項

會出貨所有不需實體配送的品項 (例如數位品項),或是符合存貨單位 (SKU) 清單的品項。對於新訂單,會針對每個出貨地點 (「出貨訂單」) 執行一次。 View template