開發者來自範本的基於時間與庫存的觸發條件

來自範本的基於時間與庫存的觸發條件

複製頁面

四種自訂觸發器範本:訂單未在 N 天內完成、貨件狀態未更新、達到元資料欄位中的日期,以及庫存低於該倉庫的閾值。

Shopify Flow 會在發生特定事件時觸發。其中一些最實用的自動化流程,是在某個事件未發生時,或當特定日期到來時啟動的:例如訂單在三天後仍未出貨、包裹停止移動,或是元資料欄位中儲存的發行日期。另一些流程則需要一套 Shopify Flow 條件無法表達的規則,例如針對每個據點設定不同的低庫存門檻。

共有四個範本可處理這些情況。每個範本都是自訂觸發器:您只需在自訂觸發器編輯器中選擇範本,於程式碼頂端設定幾個值,進行測試後即可啟用。您無需自行撰寫程式碼。

四個範本

範本 運作方式 它對什麼產生反應
訂單已未完成 N 天 按時間表,每小時一次 一筆尚未完成或僅部分完成的未結訂單,自下單之日起經過您設定的天數
貨件已停滯 N 天 按時間表,每小時一次 在您設定的天數內,若訂單內容未作任何變更,但該筆貨件仍未送達
在元字段中達到的日期 按固定時間表,每 6 小時一次 產品或訂單中某個已達成的日期元資料欄位,或是距離該日期還有若干天
庫存量跌破該地點設定的閾值 每次庫存變動時 某個地點的可用庫存量跌破您為該地點設定的門檻

該區間是範本的起始值。您可以在編輯器中進行修改。

使用範本

在「觸發器」頁面的「您的自訂觸發器」區段中,建立一個自訂觸發器。為其指定名稱和識別碼。識別碼是工作流程用來進行篩選的依據,且日後無法變更。

關於這三個預設範本:

  1. 在**「執行條件**」區段中,請選擇「**依排程執行」**選項。
  2. 在「排程」卡片中,開啟**「從範本開始」**清單,並選擇該範本。系統會自動替換程式碼並設定間隔。
  3. 請編輯程式碼頂端的數值。以下將針對各範本分別說明這些數值的用途。
  4. 請進行測試。測試會執行您的程式碼一次,不會將任何資料傳送至 Shopify Flow,也不會儲存任何資料,因此您可以隨意重複執行。
  5. 開啟扳機並儲存。

關於預設範本:

  1. 在**「此流程的運作原理」**區段中,請選擇「**一個 Shopify 事件」**選項。
  2. 開啟「從範本開始」清單,並選擇「庫存」範本。系統會自動選取「地點庫存量變更」事件,並填入代碼。
  3. 請編輯程式碼頂端的數值。
  4. 透過變更商店中某個變體的庫存數量來模擬真實事件,然後針對該變體執行測試。
  5. 開啟扳機並儲存。

在 Shopify Flow 中使用它

這四項資料都會以「自訂觸發器」的形式傳入 Shopify Flow。將其新增至工作流程,並設定一個條件:該欄位的**「觸發器識別碼」**必須等於您的觸發器識別碼。範本傳送的每個值,都會成為觸發器上的一個欄位。

這三個預設範本也會將訂單或產品作為事件的記錄 ID 傳遞。請新增一個步驟(例如「取得訂單資料」或「取得產品資料」),以載入完整的記錄,並在後續步驟中加以運用。

訂單已未完成 N 天

在客戶提出要求之前,便已發現延遲的貨件。

程式碼中的價值 起初是 意思
DAYS 3 下單後經過的天數
ONLY_PAID true 只有已付款的訂單才算數。未付款的訂單通常是在等待付款,而不是在等你

當每個已開啟且尚未完成或僅部分完成的訂單達到您設定的時限時,此觸發器會針對該訂單啟動工作流程一次。若訂單已於時限內完成,則不會觸發此流程。

此檢查每筆訂單僅執行一次,且僅在該時刻進行。若一週後訂單仍未完成,系統不會再次啟動此工作流程。若啟用「僅限已付款」設定,則在該時刻之後才付款的訂單亦不會被納入處理。

傳送至 Shopify Flow 的欄位 包含
name 訂單名稱,例如 #1042
placedAt 下單時
daysSinceOrder 訂單的天數
fulfillmentStatus 訂單的處理狀態
financialStatus 訂單的付款狀態
thresholdDays 您設定的天數

該訂單本身會作為該事件的記錄 ID 傳遞。

在自訂觸發器編輯器中,模板「訂單未履行已達 N 天」的程式碼,以 DAYS 和 ONLY_PAID 為開頭
編輯器中的範本。程式碼頂端的兩個數值就是您需要編輯的部分。

貨件已停滯 N 天

在客戶提出「我的訂單在哪裡」這個問題之前,就已為其解答。

程式碼中的價值 起初是 意思
DAYS 5 未發生任何變動的天數
ONLY_WITH_TRACKING true 沒有追蹤編號的貨件將被排除在外。這些貨件永遠無法回報已送達
DONE DELIVERED, PICKED_UP, CANCELED 視為已完成的出貨狀態

Shopify 無法根據貨件最後移動的日期進行搜尋。因此,此範本是根據訂單來運作的。它會搜尋那些已完成或部分完成的訂單,這些訂單在您設定的天數內未曾更新,且仍有未完成的貨件。

**訂單的任何變更都會重新開始計數。**追蹤更新會觸發此機制,編輯備註或新增標籤同樣會觸發此機制。

觸發器會針對每筆停滯的貨件啟動一次工作流程,因此若一筆訂單中有兩件停滯的包裹,則會觸發兩次。每筆訂單最多檢查三件貨件。

傳送至 Shopify Flow 的欄位 包含
name 訂單名稱
fulfillmentId 該貨件的編號
shipmentStatus 貨件的目前狀態
lastTrackingStatus 最新追蹤事件的狀態
lastMovedAt 貨件上次移動的時間
daysWithoutMovement 自貨件上次移動以來已過多少天
shippedAt 建立該貨運時
estimatedDeliveryAt 預計送達日期(若承運商有提供)
carrier 承運人的名稱
trackingNumber 追蹤編號
trackingUrl 追蹤連結
thresholdDays 您設定的天數

該訂單本身會作為該事件的記錄 ID 傳遞。

在元字段中達到的日期

關於發行日期、保固期限、最佳食用期限、續約日期:任何您在產品或訂單上標註的日期。

程式碼中的價值 起初是 意思
RESOURCE "products" 元欄位的位置:在產品上還是訂單上
NAMESPACE "custom" 元欄位的命名空間
KEY "release_date" 元欄位的鍵值
OFFSET_DAYS 0 距該日期前或後的天數。請參閱以下範例

關於偏移量的三個範例:

偏移量 當您的工作流程開始時
0 在當天
-7 距離該日期還有七天
30 自該日起三十天後

此觸發器會針對每個在該日到期的產品或訂單,觸發一次工作流程。日期以 UTC 為準。此觸發器會逐日處理,因此若某日未處理,系統會依序補上。當某一天有超過 100 筆記錄到期時,其餘記錄將在後續執行時處理。

傳送至 Shopify Flow 的欄位 包含
name 產品名稱或訂單名稱
date 儲存於元資料欄位中的日期
reachedOn 該紀錄的截止日期
offsetDays 您設定的偏移量

產品或訂單本身會作為該事件的記錄 ID 傳遞。

庫存量跌破該地點設定的閾值

每個地點有一項低庫存規則:倉庫內保留 20 件,店內保留 3 件。

程式碼中的價值 起初是 意思
THRESHOLDS { "Main warehouse": 20, "Pop-up store": 3 } 各地點的門檻,依地點名稱排列
DEFAULT 5 未列出的每個地點的門檻
ALSO_WHEN_RESTOCKED false 無論您的工作流程是否也在庫存回到閾值或高於閾值時啟動

若要忽略某個位置,請將其閾值設為 null。若要僅監控清單中的位置,請將預設閾值設為 null。

此觸發器**會在「交叉點」觸發工作流程一次:**即庫存量在變動前達到或高於閾值,變動後則低於該閾值。當庫存量已處於低位時,它不會對每筆銷售交易做出反應。這是因為應用程式知道每次變動前後的庫存量。

請將地點名稱完全照搬自您的 Shopify 管理後台「設定」>「**地點」**中的顯示方式。

此範本需啟用「位置庫存量變更」觸發器,並授予其權限。這正是讓應用程式能追蹤庫存量的關鍵。請參閱 「觸發器」頁面(原名為「設定」) 及 權限與資料存取。

傳送至 Shopify Flow 的欄位 包含
event 發生了什麼事:股價跌破門檻,或股價已回升
productTitle 產品名稱
variantTitle 該變體標題
sku 該變體的 SKU
location 地點名稱
locationId 該地點的 ID
oldAvailable 變更前的現有庫存
newAvailable 變更後的可用庫存
threshold 當時適用的門檻

「發生了什麼事」這個欄位會儲存以下兩種值之一:

價值 意思
below 股價跌破門檻
restocked 庫存已回升至閾值或高於閾值
我已開啟觸發器,為何工作流程仍未啟動?

預定範本的首度執行僅會記住其起始點。觸發器會對在此之後跨越該時間點的訂單、出貨及日期做出反應,而非對已經超過該時間點的項目做出反應。

我能否比每小時一次更頻繁地執行檢查?

是的,間隔時間由您自行決定,範圍從每 30 秒到每天一次皆可。間隔時間越短,執行次數就越多,而每次執行都會計入您的計畫中。對於以天為單位的規則,通常每小時執行一次就綽綽有餘了。

日期觸發器回報錯誤。問題出在哪裡?

幾乎總是因為元欄位定義的問題。該元欄位必須為「日期」類型,並且在「設定 > 自訂資料」下已啟用**「篩選」**選項。此外,請確認程式碼中的命名空間和鍵值與定義完全一致。

範本會影響我的訂單或產品嗎?

不。自訂觸發器僅具讀取功能。若要為訂單加上標籤、發送電子郵件或更新元資料欄位,請將這些動作新增至由該觸發器啟動的工作流程中。

一筆貨件滯留的時間超過了我設定的天數,但我的工作流程卻未啟動。為什麼?

計數是從訂單的最後一次變更開始計算的。若在此期間訂單曾被編輯(無論是由工作人員、其他應用程式或追蹤更新所致),計數將從該時刻重新開始。

後續步驟