Shopify Flow 中的條件

在 Shopify Flow 中,條件會決定觸發條件啟動工作流程後是否執行動作。您設定條件時,應從商店資料中選擇一個值 (邏輯運算子),並手動設定要檢查的值。

Flow 使用的資料類型

Flow 條件的第一個值都是從商店中擷取來的資料,且是從 GraphQL 管理員 API擷取而來。

Flow 支援以下類型的資料:

  • 浮點數:浮點數值是帶有小數的數字。例如:4.25。
  • 整數:整數值是整數,沒有小數。例如:42。
  • 日期:日期值是日期的數值表示形式。例如:01012021。
  • 字串:字串值為文字。使用字串值進行比較時不區分大小寫。
  • 布林值:布林值為 true 或 false。
  • Enum:Enum 值是一組資料,允許變數為一組預先定義的恒數值。

Flow 中使用的邏輯運算子

邏輯運算子定義條件的使用方式。條件可以檢查簡單的屬性,例如訂單總數是否超過特定金額,或顧客是否接受行銷。邏輯運算子也可以檢查更複雜的屬性。

Flow 可以使用下列運算子:

等於 (equal to)

等於可將值互相比較,以查看是否相同。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount 的值,並與第二個值 50 進行比較。

工作流程範例:使用「等於」邏輯運算子,在擷取資料等於 50 時取消訂單。

如果第一個值等於 50,則條件為 true。該訂單已取消。

不等於 (not equal to)

不等於可將值互相比較,以查看是否不相同。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount 的值,並與第二個值 50 進行比較。

工作流程範例:使用「不等於」邏輯運算子,在擷取資料不等於 50 時取消訂單。

如果第一個值等於 93,則條件為 true。該訂單已取消。

大於 (greater than)、大於或等於 (greater than or equal to)

大於以及大於或等於會將值相互比較,以查看第一個值是否大於、大於或等於第二個值。在下列範例中,系統從從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount 的值,並與第二個值 50 進行比較。

工作流程範例:使用「大於」邏輯運算子,在擷取資料大於 50 時取消訂單。

如果您商店中的值為 137,則條件為 true,因為 137 大於 50。該訂單已取消。

小於 (less than)、小於或等於 (less than or equal to)

小於以及小於或等於會將值相互比較,以查看第一個值是否小於、小於或等於第二個值。在下列範例中,系統會從您的商店資料中擷取 order.currentTotalDiscountsSet.shopMoney.amount 的值,並與第二個值 50 進行比較。

工作流程範例:使用「小於或等於」邏輯運算子,在擷取資料小於或等於 50 時取消訂單。

如果您商店的值為 47,則條件為 true,因為 47 小於或等於 50。訂單已取消。

任一 (any of)

任一」會比較資料陣列中的值,以查看第一個輸入值是否包含第二個輸入值的任何資料。要檢查的值必須個別輸入,然後按下 Enter 鍵。若在空白陣列中使用「任一」,會導致評估發生錯誤。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title 的值,並和以下第二組的值進行比較:pineapple、guava、kiwi。

工作流程範例:使用「任一」邏輯運算子,在擷取資料含有「pineapple」、「guava」、「kiwi」時取消訂單。

如果您商店中的值為「guava」,則條件為 true,因為「guava」包含在「pineapple」、「guava」、「kiwi」陣列中。訂單已取消。

非任一 (not any of)

非任一」會比較資料陣列中的值,以查看第一個輸入值是否不包含第二個輸入值的任何資料。要檢查的值必須個別輸入,然後按下 Enter 鍵。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title 的值,並和以下第二組的值進行比較:pineapple、guava、kiwi。

工作流程範例:使用「非任一」邏輯運算子,在擷取資料不包含「pineapple」、「guava」、或「kiwi」時取消訂單。

如果您商店中的值為「raspberry」,則條件為 true,因為「raspberry」不包含在「pineapple」、「guava」、「kiwi」陣列中。訂單已取消。

包含 (includes)

包含會將值相互比較,以查看所有第一個輸入值是否包含第二個輸入值的資料。在下列範例中,系統從從您的商店資料中擷取 order.lineitem.product.title 的值,並與第二個值「scrape」進行比較。

工作流程範例:使用「含有」邏輯運算子,在擷取資料含有字串「scrape」時取消訂單。

如果商店資料擷取的值是「skyscraper」,則條件為 true,因為字串「scrape」包含在「skyscraper」字串中。訂單已取消。

不包含 (does not include)

不包含會將值相互比較,以查看所有第一個輸入值是否不包含第二個輸入值的資料。在下列範例中,系統會從您的商店資料中擷取 order.lineitem.product.title 的值,並和第二個值「scrape」進行比較。

工作流程範例:使用「不包含」邏輯運算子,在擷取資料不包含字串「scrape」時取消訂單。

如果商店資料擷取的值是「scrap-metal」,則條件為 True,因為字串「scrape」未包含在「scrap-metal」字串中。系統已取消訂單。

開頭為 (starts with)

開頭為會將值相互比較,以查看第一個值的開頭是否為第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.shippingAddress.country 的值,並與第二個值「United」進行比較。

工作流程範例:使用「開頭為」(starts with) 邏輯運算子,在擷取資料以字串「United」為首時取消訂單。

如果您商店中的值為「United Kingdom」,則條件為 true,因為字串「United」為「United Kingdom」的開頭。訂單已取消。

開頭不是 (does not start with)

開頭不是會將值相互比較,以查看第一個值的開頭是否不是第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.shippingAddress.country 的值,並與第二個值「United」進行比較。

工作流程範例:使用「開頭不是」邏輯運算子,在擷取資料字串的開頭不是「United」時取消訂單。

如果您商店中的值為「Canada」,則條件為 true,因為字串「Canada」不會啟動字串「United」。訂單已取消。

結尾為 (ends with)

結尾為會將值相互比較,以查看第一個值的結尾是否為第二個值的資料。在下列範例中,系統從從您的商店資料中擷取 order.lineitems.product.title 的值,並與第二個值「last-available」進行比較。

工作流程範例:使用「結尾為」邏輯運算子,在擷取資料字串的結尾為「last-available」時取消訂單。

如果您商店的值為「athletic socks last-available」(最後供應的運動襪),則條件為 true,因為「athletic socks last-available」字串的結尾為「last-available」。訂單已取消。

結尾不是 (does not end with)

結尾不是會將值相互比較,以查看第一個值的結尾是否不是第二個值的資料。在下列範例中,系統會從您的商店資料中擷取 order.lineitems.product.title 的值,並和第二個值「last-available」進行比較。

工作流程範例:使用「結尾不是」邏輯運算子,在擷取資料字串的結尾不是「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 美元。

工作流程範例:檢查顧客總支出金額,並新增標籤

同樣地,您也可以合併數個動作以便同時執行。此範例根據顧客在商店中消費的總金額,使用多項條件檢查顧客是否符合加入忠實顧客計畫的資格。在上述範例中,下列條件會依其所顯示的順序來進行檢查:

  1. 如果訂單總金額超過 1000 美元,且顧客同意接受行銷活動,即使用「金級」標籤來標記顧客。
  2. 如果訂單總金額低於 1000 美元但超過 500 美元,且顧客同意接受行銷活動,即使用「銀級」標籤來標記顧客。
  3. 如果顧客的消費金額超過 200 美元,且同意接受行銷行動,即使用「銅級」標籤來標記顧客。

條件的靜態和動態資料

條件的第二個值通常是靜態的手動輸入值。每次執行工作流程時,此值會保持不變。

如果第二個值的欄位顯示 </> 符號,您也可以使用動態值。每次執行工作流程時,都會從商店資料中擷取動態值。若要使用動態值,請點擊 </> 符號,然後選取要檢查的值。動態值無法用於所有欄位。

舉例來說,您建立一個工作流程,如果訂單的帳單地址國家/地區與運送地址的國家/地區相符時,系統就會標註訂單。

工作流程範例:使用 RHS 資料來標註訂單,以檢查顧客的帳單和運送國家/地區是否相同。

在此範例中,第一個值和第二個值都是從商店資料中擷取而來,而非手動指定檢查第二個值的靜態字串。如果顧客的帳單地址中的國家/地區與顧客運送地址中的國家/地區相同,則條件為 true,系統會標註訂單。

準備好開始透過 Shopify 銷售商品了嗎?

免費試用