在 Shopify Flow 的排程、取得資料與循環工作流程
多數情況下,您可以將多個條件與動作串接到一個觸發條件,當事件發生時便會啟動工作流程。若情境較複雜,可能沒有符合需求的觸發條件、需要在特定時間執行,或需要處理資料清單。這時,您可以使用 Scheduled time 觸發條件、Get data 動作與迴圈,建立進階工作流程。
舉例來說,假設您想每天取得未出貨訂單的摘要。透過這組功能,您可以將工作流程排定於每天的特定時間執行,擷取這些訂單,然後將其摘要寄給您。您也可以探索更多運用這些觸發條件與動作的 examples and templates。
本頁內容
排定時間觸發條件
與其在事件發生時才啟動工作流程,Scheduled time 觸發條件會在您指定的特定日期與時間啟動工作流程。您也可以將工作流程排程為每小時、每天、每週或每月重複執行。因為是依排程執行,若要使用顧客、訂單或商品等資料,必須先以動作擷取這些資料。您可以使用 Get data 動作來達成。
Scheduled time 觸發條件最短可每 10 分鐘執行一次。
Get data 動作
大多數動作都會變更商店中的內容,例如替顧客新增標籤,或向 app 傳送命令,例如指示某個 app 向顧客傳送推播通知。
Get data 動作會從您的商店擷取資料,供 Shopify Flow 使用。這些動作會使用一組篩選條件呼叫查詢,例如只擷取過去一天內更新的項目。該動作會傳回符合條件的資料清單。舉例來說,Get order data 動作會在 Admin API 上呼叫 Order query,並傳回符合您查詢的訂單清單。
Get data 動作僅能處理最多 100 筆資料的清單。
下列動作會從您的商店擷取資訊,供您在工作流程中使用。關於如何篩選資料與回傳哪些資料,請參閱各個動作的說明:
- Get cash tracking session data
- Get collection data
- Get company data
- Get company location data
- Get customer data
- Get discount data
- Get draft order data
- Get fulfillment order data
- Get gift card data
- Get location data
- Get metaobject entries
- Get metaobject entry
- Get order data
- Get product data
- Get product variant data
- Get selling plan group data
- Get subscription billing attempt data
- Get subscription contract data
Get data 動作中的 Liquid 標籤
在搭配日期使用 Get data 動作時,您可以使用 date_minus 與 date_plus 這些 Liquid 標籤,來變更查詢中的日期。例如,若要計算工作流程排定執行時間的前 5 天,您可以使用下列 Liquid:
{{ scheduledAt | date_minus: "5 days" }}如需瞭解如何使用這些標籤,請參閱 Liquid variables 文件。
For each 迴圈
使用 Get data 動作時,您會取得符合查詢條件的資料清單。您可以使用 For each loop (iterate) 動作來逐一處理該清單。在 For each 迴圈中,您可以使用只套用於該筆項目的條件與動作。
例如,您建立一個每週一執行的工作流程。該工作流程會使用 Get order data 動作,擷取該週建立的訂單。接著,For each loop (iterate) 會將 New order 標籤套用到 getOrderData 清單所傳回的每筆訂單。當清單中的所有訂單都已加上標籤後,系統會傳送一封內部電子郵件,告知標記作業已完成。

聚合動作
在處理清單時,您可能會想先計算項目數,然後在後續的條件與動作中使用。例如,您可能會在傳送電子郵件前,先確認結果是否大於 0。Flow 提供以下動作,可在工作流程中針對清單資料進行運算:
Shopify Flow 中的進階工作流程範例
以下是一些可在 Shopify Flow 中使用的進階工作流程範例:
- Get a daily summary of orders that miss a two-day fulfillment window.
- 建立新訂單時,檢查同一位顧客在過去 24 小時內是否還有其他訂單。
- 每天取得列出無庫存商品的摘要電子郵件。
- 每天一次,找出所有涉及交易退單的訂單,並為顧客加上標籤。
- 建立新訂單時,查出該顧客過去 6 個月內下了幾筆訂單。
- 每天取得所有開啟的訂單草稿清單,並傳送 Slack 訊息。
取得每日摘要,列出未在兩天出貨時限內完成的訂單
此工作流程可用來判斷是否有訂單超過運送保證期間,並計算這些訂單的金額。
在此範例中,工作流程每天於下午 5:00 執行。工作流程使用 擷取訂單資料 動作擷取未在兩天出貨時限內完成的訂單清單。接著,逐一處理 動作為所有逾期訂單加上標籤。工作流程也使用 計數 動作計算逾期訂單的數量,以及 加總 動作計算這些訂單的金額。由 計數 與 加總 動作建立的變數用來寄送電子郵件,指出訂單數量與金額。

建立新訂單時,檢查同一位顧客在過去 24 小時內是否還有其他訂單
此工作流程可用來判斷同一位顧客是否在同一天下了多筆訂單,若是,則將出貨作業保留,以便合併出貨。
在此範例中,工作流程每次建立新訂單時都會執行。工作流程使用 擷取訂單資料 動作擷取該顧客在過去一天下的訂單清單。接著,計數 動作會計算該顧客下的訂單數量。若同一位顧客在同一天下了兩筆或以上的訂單,則會將這些訂單的出貨作業設為保留,並在訂單上加上標籤。

每天取得列出無庫存商品的摘要電子郵件
此工作流程可用來產生所有無庫存商品的清單,並寄送電子郵件。
在此範例中,工作流程每天於晚上 9:00 執行。工作流程使用 擷取商品資料 動作擷取沒有庫存的商品清單。計數 動作會計算無庫存品項的數量。由 擷取訂單資料 與 計數 動作建立的變數用來寄送電子郵件,指出商品數量並列出商品清單。

每天一次,找出所有涉及交易退單的訂單,並為顧客加上標籤
此工作流程可用來追蹤曾發起交易退單的顧客。
在此範例中,工作流程每天於上午 10:00 執行。工作流程使用 擷取訂單資料 動作擷取發生交易退單的訂單清單。接著,逐一處理 動作會為下達這些訂單的所有顧客加上標籤。

建立新訂單時,查出該顧客過去 6 個月內下了幾筆訂單
此工作流程可用來計算顧客在過去 6 個月內下了多少筆訂單,並加上忠誠度標籤。
在此範例中,工作流程每次建立新訂單時都會執行。工作流程使用 擷取訂單資料 動作,擷取該顧客在過去 6 個月下的訂單清單。接著,計數 動作計算顧客下的訂單數量,加總 動作計算這些訂單的金額。若訂單數量等於或大於 5,會加上顧客標籤;若訂單金額等於或大於 $100,則會加上另一個標籤。

每天取得所有開啟的訂單草稿清單,並傳送 Slack 訊息
此工作流程可用來傳送 Slack 訊息,指出您的商店是否有開啟的訂單草稿,如有,則顯示其數量。
在此範例中,工作流程每天於下午 5:00 執行。工作流程使用 擷取訂單草稿資料 動作擷取狀態為 開啟 的訂單草稿清單。接著,計數 動作會計算開啟的訂單草稿數量。由 計數 動作建立的變數用來傳送 Slack 訊息,指出開啟的訂單草稿數量。
