Shopify Flow 中的條件
在 Shopify Flow 中,條件會決定觸發條件啟動工作流程後是否執行動作。您設定條件時,應從商店資料中選擇一個值 (邏輯運算子),並手動設定要檢查的值。
Flow 使用的資料類型
Flow 條件的第一個值都是從商店中擷取來的資料,且是從 GraphQL 管理員 API擷取而來。
Flow 支援以下類型的資料:
- 浮點數:浮點數值是帶有小數的數字。例如:4.25。
- 整數:整數值是整數,沒有小數。例如:42。
- 日期:日期值是日期的數值表示形式。例如:01012021。
- 字串:字串值為文字。使用字串值進行比較時不區分大小寫。
- 布林值:布林值為 true 或 false。
- Enum:Enum 值是一組資料,允許變數為一組預先定義的恒數值。
Flow 中使用的邏輯運算子
邏輯運算子定義條件的使用方式。條件可以檢查簡單的屬性,例如訂單總數是否超過特定金額,或顧客是否接受行銷。邏輯運算子也可以檢查更複雜的屬性。
Flow 可以使用下列運算子:
- 等於 (equal to)
- 不等於 (not equal to)
- 大於 (greater than)、大於或等於 (greater than or equal to)
- 小於 (less than)、小於或等於 (less than or equal to)
- 任一 (any of)
- 非任一 (not any of)
- 包含 (includes)
- 不包含 (does not include)
- 開頭為 (starts with)
- 開頭不是 (does not start with)
- 結尾為 (ends with)
- 結尾不是 (does not end with)
等於 (equal to)
等於可將值互相比較,以查看是否相同。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount
的值,並與第二個值 50 進行比較。
如果第一個值等於 50,則條件為 true。該訂單已取消。
不等於 (not equal to)
不等於可將值互相比較,以查看是否不相同。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount
的值,並與第二個值 50 進行比較。
如果第一個值等於 93,則條件為 true。該訂單已取消。
大於 (greater than)、大於或等於 (greater than or equal to)
大於以及大於或等於會將值相互比較,以查看第一個值是否大於、大於或等於第二個值。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount
的值,並與第二個值 50 進行比較。
如果您商店中的值為 137,則條件為 true,因為 137 大於 50。該訂單已取消。
小於 (less than)、小於或等於 (less than or equal to)
小於以及小於或等於會將值相互比較,以查看第一個值是否小於、小於或等於第二個值。在下列範例中,系統會從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount
的值,並與第二個值 50 進行比較。
如果您商店的值為 47,則條件為 true,因為 47 小於或等於 50。訂單已取消。
任一 (any of)
「任一」會比較資料陣列中的值,以查看第一個輸入值是否包含第二個輸入值的任何資料。要檢查的值必須個別輸入,然後按下 Enter 鍵。若在空白陣列中使用「任一」,會導致評估發生錯誤。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title
的值,並和以下第二組的值進行比較:pineapple、guava、kiwi。
如果您商店中的值為「guava」,則條件為 true,因為「guava」包含在「pineapple」、「guava」、「kiwi」陣列中。訂單已取消。
非任一 (not any of)
「非任一」會比較資料陣列中的值,以查看第一個輸入值是否不包含第二個輸入值的任何資料。要檢查的值必須個別輸入,然後按下 Enter 鍵。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title
的值,並和以下第二組的值進行比較:pineapple、guava、kiwi。
如果您商店中的值為「raspberry」,則條件為 true,因為「raspberry」不包含在「pineapple」、「guava」、「kiwi」陣列中。訂單已取消。
包含 (includes)
包含會將值相互比較,以查看所有第一個輸入值是否包含第二個輸入值的資料。在下列範例中,系統從從您的商店資料中擷取 order.lineitem.product.title
的值,並與第二個值「scrape」進行比較。
如果商店資料擷取的值是「skyscraper」,則條件為 true,因為字串「scrape」包含在「skyscraper」字串中。訂單已取消。
不包含 (does not include)
不包含會將值相互比較,以查看所有第一個輸入值是否不包含第二個輸入值的資料。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title
的值,並和第二個值「scrape」進行比較。
如果商店資料擷取的值是「scrap-metal」,則條件為 True,因為字串「scrape」未包含在「scrap-metal」字串中。系統已取消訂單。
開頭為 (starts with)
開頭為會將值相互比較,以查看第一個值的開頭是否為第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.shippingAddress.country
的值,並與第二個值「United」進行比較。
如果您商店中的值為「United Kingdom」,則條件為 true,因為字串「United」為「United Kingdom」的開頭。訂單已取消。
開頭不是 (does not start with)
開頭不是會將值相互比較,以查看第一個值的開頭是否不是第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.shippingAddress.country
的值,並與第二個值「United」進行比較。
如果您商店中的值為「Canada」,則條件為 true,因為字串「Canada」不會啟動字串「United」。訂單已取消。
結尾為 (ends with)
結尾為會將值相互比較,以查看第一個值的結尾是否為第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.lineitems.product.title
的值,並與第二個值「last-available」進行比較。
如果您商店的值為「athletic socks last-available」(最後供應的運動襪),則條件為 true,因為「athletic socks last-available」字串的結尾為「last-available」。訂單已取消。
結尾不是 (does not end with)
結尾不是會將值相互比較,以查看第一個值的結尾是否不是第二個值的資料。在下列範例中,系統會從您的商店資料中擷取 order.lineitems.product.title
的值,並和第二個值「last-available」進行比較。
如果您商店中的值是「athletic socks new」(新的運動襪),則條件為 True,因為「athletic socks new」字串的結尾不是「last-available」。系統已取消訂單。
條件排列順序
您可以建立包含多個條件的工作流程,每項條件都能導致不同的動作。條件的排列順序很重要。系統會在工作流程開始時進行條件檢查,並有系統地檢查各個條件,並於滿足條件時停止檢查。
滿足多種條件
設定條件時,您可以設定多個條件,並判斷 Flow 是否將條件考慮為 true (如果所有條件都符合,或其中一項條件已符合)。
若符合所有條件 (if any conditions are met)
若您選取若符合所有條件,則設定的所有條件為 true 的時候,系統才會以 true 回應結果。
舉例來說,您建立工作流程以標註位於加拿大、且單一訂單消費超過 $500 美元的顧客。
只有在顧客位於加拿大且訂單消費超過 $500 美元時,工作流程才能標註顧客。如果上述任一條件為 false,系統則不會標註顧客。
若符合任何條件 (if any conditions are met)
若您選取若符合任何條件,則設定的任何條件為 true 的時候,系統即會以 true 回應結果。
舉例來說,您建立工作流程以標註視為高風險或中等風險的訂單。
如果訂單為高風險或中等風險,工作流程會標註該訂單。只要其中一項條件為 true,系統即會標註該訂單。
組合條件與動作
您可以將條件組合在一起,形成一個更大的條件。當多個條件組合在一起時,所有條件都必須滿足,才能使整個條件成立。如果有任何條件未能滿足,則整個條件都無法成立。在下列範例中,顧客必須接受行銷資料,且訂單總金額必須超過 $1000 美元。
同樣地,您也可以合併數個動作以便同時執行。此範例根據顧客在商店中消費的總金額,使用多項條件檢查顧客是否符合加入忠實顧客計畫的資格。在上述範例中,下列條件會依其所顯示的順序來進行檢查:
- 如果訂單總金額超過 1000 美元,且顧客同意接受行銷活動,即使用「金級」標籤來標記顧客。
- 如果訂單總金額低於 1000 美元但超過 500 美元,且顧客同意接受行銷活動,即使用「銀級」標籤來標記顧客。
- 如果顧客的消費金額超過 200 美元,且同意接受行銷行動,即使用「銅級」標籤來標記顧客。
條件的靜態和動態資料
條件的第二個值通常是靜態的手動輸入值。每次執行工作流程時,此值會保持不變。
如果第二個值的欄位顯示 </>
符號,您也可以使用動態值。每次執行工作流程時,都會從商店資料中擷取動態值。若要使用動態值,請點擊 </>
符號,然後選取要檢查的值。動態值無法用於所有欄位。
舉例來說,您建立一個工作流程,如果訂單的帳單地址國家/地區與運送地址的國家/地區相符時,系統就會標註訂單。
在此範例中,第一個值和第二個值都是從商店資料中擷取而來,而非手動指定檢查第二個值的靜態字串。如果顧客的帳單地址中的國家/地區與顧客運送地址中的國家/地區相同,則條件為 true,系統會標註訂單。