瞭解 Shopify Flow 中的條件
「條件」是工作流程中的一步,用來判斷是否符合一組規則,並據此決定後續走向。每個條件步驟都有兩種結果:True 表示已符合規則,False 表示未符合。若您未針對任一結果指定下一步的條件或動作,工作流程執行即會停止。
例如,若您的工作流程在建立訂單時被觸發,條件就可以檢查該筆訂單是否使用了特定的折扣代碼 AFFILIATE10。若有,True 分支即可接到一個動作,寄送電子郵件給聯盟夥伴,通知其代碼已被使用;若沒有,則可讓 False 分支維持空白,表示不再進行任何動作,工作流程執行隨即結束。
工作流程中的條件數量不受限,端視您的流程複雜度而定。條件之間也可以互相連接,或連到動作,取決於您希望流程執行的內容。您可以將條件設定為依序檢查 (例如:若條件 A 為 True,則再檢查條件 B;若 A 為 False,則檢查 C),也可以在同一步中同時檢查 (例如:檢查 A 或 B 或 C 是否為 true)。
為工作流程設計條件
與可在 Shopify Flow 中自預設清單選取的觸發條件或動作不同,條件需要您從零開始,選取變數、邏輯運算子與值,組合成條件判斷式:
- 「變數」是一種佔位符,用來界定條件所使用的資料。例如,若條件要檢查訂單上是否包含特定折扣代碼,變數就會是
order.discountCode。變數採用 GraphQL Admin API 的點記號表示法。 - 所謂「 邏輯運算子 」是用來說明工作流程應如何判斷是否符合條件。邏輯運算子可用於變數層級,或用於多個變數共同構成的整體條件準則:
- 變數層級的選項包含欄位層級運算子,例如 大於 或 開頭為;也包含清單運算子,例如 至少其中一個 或 全部。
- 條件層級的選項包含 AND (所有變數都必須為 true,整體條件才視為 true),以及 OR (至少有 1 個變數為 true,整體條件即視為 true)。
- 「值」是變數要尋找的實際資訊。例如,若您要讓工作流程檢查的特定
order.discountCode為 AFFILIATE10,那麼該字串就是此條件中要輸入的值。
當您選取變數與運算子時,Shopify Flow 畫布中的條件步驟會即時更新,並以白話呈現您的條件式,方便您再次確認格式是否正確。您可以按一下 新增說明,將預設的條件式改為您自行撰寫的說明。
瞭解詳情:Shopify Flow 中條件的各項要素。
瞭解條件中的變數
在工作流程中設計條件步驟時,系統會先引導您按一下 新增變數。但是,什麼是「變數」呢?
在 Shopify Flow 中,變數是一種佔位符,用來指示條件在工作流程中所使用的資料。當條件寫成「若 A 大於 10…」時,其中的 A 就是變數。為條件選定變數,基本上就是告訴系統要評估哪一項資料。
變數以 GraphQL Admin API 的點記號表示法撰寫。您不需要精通該 API 才能使用 Flow app 建立工作流程,但若能大致理解變數名稱及其定義,會更有助於您打造所需的工作流程邏輯。
若要了解變數所代表的資料,請參考以下重點:
- 如何閱讀變數的點記號表示法。
- 瞭解變數的資料需求。
- 在搜尋時找出正確的變數。
小秘訣:向 Dev Docs Assistant 尋求變數相關協助
如果您不確定在建立條件時該選哪個變數,不妨向 Shopify Dev Docs Assistant 諮詢。Dev Docs Assistant 可存取所有關於 GraphQL Admin API 的文件,並能提供在 Shopify Flow 中撰寫條件式的格式建議:
- 前往 Shopify Dev Docs。
- 按一下「詢問助理」以開啟聊天面板。
- 在訊息欄位輸入您的問題,例如:在 Shopify Flow 中,如果我的觸發條件是「訂單已建立」,要存取顧客標籤資料應該使用哪個變數?
- 按下 Enter,或按一下
。
解讀變數的點記法
選取變數時,您會注意到它們以句點分隔的關鍵字組成,例如 order.customer.tag。這種格式表示 API 取得您想用的資料時所經過的步驟。變數的每一段以句點分隔,資料路徑由左到右讀取。變數的長度會因資料在 API 中的存放位置,以及工作流程到達該資料所需的路徑而有所不同。
例如:
order.email:檢查此訂單的顧客所使用的電子郵件地址。就像您會點選一筆訂單,再到訂單詳情查看電子郵件地址。refunds_item.staffMember.name:檢查訂單中是否有品項退款,前往與該退款相關的員工資訊,並檢查該員工的完整姓名。
選擇變數時,可以先想像您會如何在 Shopify 管理介面中瀏覽以找到所需資訊。API 很可能也需要走類似的路徑,這有助於判斷變數應採用的格式。
例如,若您正在檢視新訂單,並想知道該訂單的顧客屬於哪個 RFM group,您可能會點選訂單上的顧客名稱,前往 Shopify 管理介面中的顧客詳情頁面,接著在顧客的分析摘要中查看「RFM group」欄顯示的數值。
在 Shopify Flow 中要回傳同樣資料的變數,會使用類似的路徑:order.customer.statistics.rfmGroup。
變數的資料需求
變數需要資料支援。若變數無法取得正確資料,條件就不會運作,工作流程會失敗。您選擇的觸發條件作為工作流程的起點不同,能加入條件的變數選項也會依可用資料而改變。
例如,若您的工作流程以「商品已建立」觸發條件開始,您從該觸發條件建立的條件僅能使用 商品資料集中可用的變數。因此,product.category.name、product.vendor 與 variants_item.displayName 都可用於條件。相對地,customer.verifiedEmail 或 subscriptionContracts_item.status 不會顯示為選項,因為它們與商品資料集無關。
不過,這並不表示其他資料集中的資料完全無法存取。有些資料可透過 API 中的多條路徑取得,就像您在 Shopify 管理介面中可能透過不同連結進入同一頁面。實務上,這代表不同的觸發條件可能需要使用不同的變數點記法,才能回傳相同的資訊。
例如,您希望工作流程檢查顧客個檔上的標籤。若工作流程以「訂單已建立」觸發條件開始,變數應為 order.customer.tags,因為工作流程先從訂單資料開始,再檢查訂單中的顧客資訊,接著檢查該顧客的標籤。若工作流程以「顧客已建立」觸發條件開始,變數則是 customer.tags,因為工作流程從顧客資料開始,可直接檢查顧客個檔上的標籤。
依關鍵字搜尋時,請檢查變數的路徑
由於 Shopify Flow 採用點記法,您依關鍵字搜尋用於條件的變數時,可能會得到多個結果。瞭解變數路徑所代表的意義,對於在建立條件時選擇正確的變數非常重要。
例如,您的工作流程使用「訂單已建立」觸發條件,並以關鍵字 tags 搜尋變數。搜尋可能會回傳下列結果,用於檢查訂單中的不同資訊:
order.tags:套用到訂單本身的標籤。例如,#rush order 或 #gift。order.customer.tags:套用到下單顧客的標籤。例如,#VIP 或 #affiliate。order.lineItems.product.tags:套用到訂單中所購買商品的標籤。例如,#fragile 或 #requiresID。
依您要讓工作流程檢查的標籤類型,務必選取正確的變數,以便條件如預期運作。
瞭解條件中的邏輯運算子
邏輯運算子決定條件的判斷方式,使陳述式的結果為真或為假。當條件寫成「若 A 大於 10……」時,其中的「大於」就是邏輯運算子。替條件選擇邏輯運算子,等同於指定系統要如何評估該變數。
在 Shopify Flow 工作流程中,邏輯運算子分為 3 種:
- 欄位層級的運算子,例如「大於」或「開頭為」。
- 清單運算子,例如「至少其一」或「全部」。
- 條件層級的運算子,例如 AND 或 OR。
欄位層級與清單運算子是套用在變數層級;條件層級運算子則套用在整體條件,可用來把多個變數組合成單一條件。
欄位層級運算子是最常見的運算子,適用於各種變數陳述式。有了欄位層級運算子,您可以建立例如「若 A 大於 10,則執行 X」或「若 B 包含「VIP」,則執行 X」之類的條件陳述式,更細緻地控制哪些變數值會判斷為真。預設的邏輯運算子為「等於」。
清單運算子僅適用於會回傳清單結果的變數。例如,lineItems_item.variant.price 會回傳訂單中某個產品子類選項的價格,若顧客在同一筆訂單購買了多個商品,就可能會回傳多個結果。因此,當您希望條件「lineItems_item.variant.price 大於 $10」在訂單中至少有 1 個產品子類選項的價格超過 $10 時為真,就可以套用像「至少其一」這樣的清單運算子。相對地,僅能一次回傳單一結果的變數不會顯示清單運算子。例如,order.createdAt 只有一個可能值,因為訂單只會建立一次,所以不會提供清單運算子來修改包含該變數的陳述式。
條件層級的運算子 (例如 AND 與 OR) 可讓您在同一個條件中納入多個變數。例如,您不必只寫「如果 A 等於 5,則執行 X」這種簡單的條件式,還能建立較複雜的條件,例如「如果 A 等於 5 且 B 大於 10,則執行 X」,此情況需要 A 與 B 兩個變數都為真;或是「如果 A 等於 5,或 B 大於 10,或 C 小於 1,則執行 X」,此情況只要 A、B 或 C 當中有 1 個為真即可。當工作流程中的整組條件必須全部為真時,請使用 AND;只要任一條件成立即可時,請使用 OR。
為什麼這很重要:瞭解邏輯運算子在條件中的運作方式,能協助您建立可精準檢查所需條件的工作流程。透過 3 種邏輯運算子,您可以撰寫更細緻且複雜的條件式,打造能檢查非常特定條件的工作流程。