Shopify Flow 中的變數

「變數」是執行工作流程時會以特定數值來取代的佔位符。這些變數會描述工作流程中所涉及之顧客、訂單及商品的屬性。舉例來說,訂單編號、訂單金額、顧客名稱等資訊都擁有對應的變數。

Flow 使用與 Shopify 佈景主題不同的 Liquid 版本,並可透過 GraphQL管理員 API 存取任何可用的變數。

多數變數都能從名稱得知其功能。舉例來說,顯示產品名稱的變數就是 {{ product.title }}。當訊息送出後,此變數就會被訂購產品名稱取代:Large Coffee Mug

將變數新增至動作

您可以將變數新增至內含「新增變數」連結的任何文字欄位之中:點擊相關欄位下方的「新增變數」連結,然後從清單中選擇一個變數。

新增變數」清單中的變數會經過篩選,僅向您顯示適用於您所選擇的觸發條件的變數。從清單中選擇變數之後,該變數會進行適當的格式化,然後新增至文字方塊之中。

Flow 支援幾乎所有 GraphQL 管理員 API 欄位。

Liquid 變數

如果您是具有撰寫 Liquid 程式碼經驗的開發人員,便可使用 Liquid 編寫變數,或編輯使用新增變數連結插入的變數。如須瞭解詳情,請參閱 GraphQL 管理員 API 參考資料

條件與迭代標籤

您可以手動將 Liquid 變數標籤新增至您的工作流程訊息。您可以使用這些標籤,在訊息中包含更多的資訊。

舉例來說,您可以使用for loop物件來迭代物件清單,例如某一筆訂單的商品項目。藉由這些標籤,您可以建立包含訂單詳細資訊的訊息(例如訂單中各個商品項目的商品標題、SKU、價格及數量),使您的收件者無須在 Shopify 管理介面查找這些資訊。

Flow 支援下列 Liquid 條件 (或控制流程) 標籤:

Flow 也支援下列 Liquid 迭代標籤:

篩選

Flow 支援下列 Liquid 篩選條件:

Flow 支援的 Liquid 篩選條件
篩選條件名稱 篩選條件類型
abs 數學
append String
at_least 數學
at_most 數學
capitalize String
ceil 數學
concat 陣列
date 其他
default 其他
divided_by 數學
downcase String
escape String
第一 陣列
floor 數學
join 陣列
last 陣列
lstrip String
地圖 陣列
minus 數學
modulo 數學
newline_to_br String
數學
prepend String
remove String
remove_first String
replace String
replace_first String
reverse 陣列
round 數學
rstrip String
大小 陣列
slice String
排序 陣列
split String
strip String
strip_html String
strip_newlines String
times 數學
truncate String
truncatewords String
uniq 陣列
upcase String
url_encode String
哪裡 陣列

變數範例

舉例來說,您想要建立一個工作流程,在顧客的訂單花費超過 $500 美元時傳送電子郵件給員工。您使用訂單已建立觸發條件建立工作流程,將訂單總金額超過 $500 美元的條件設定為 true,接著使用「傳送內部電子郵件」動作。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數。

提供顧客詳細資料時所使用的變數範例。
輸入 輸出
請傳送個人感謝備註給 {{ order.customer.firstName }} {{ order.customer.lastName }} ({{ order.customer.email }}), 感謝對方訂購了 $ {{ order.totalPriceSet.shopMoney.amount }} 的商品。 請傳送個人感謝備註給 Jeanne (jeanne@example.com) 感謝對方訂購了 $763.42 美元的商品。

您決定在商品庫存量不足且需要訂購更多庫存商品時,通知員工。您可以建立使用庫存數量已變更觸發條件開始的工作流程,將先前庫存數量小於或等於 10 的條件設定為 true。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數。

用於供應商品詳細資訊的變數。
輸入 輸出
請重新訂購 {{ product.title }}。請將電子郵件傳送至 owner@store.com,以確認他們已收到採購單。 請重新訂購高腰褲襪:黑色。請將電子郵件傳送至 owner@example.com,以確認他們已收到採購單。

您想要取消高風險的訂單,但偏好由員工手動取消訂單。您可以建立使用訂單已建立觸發條件開始的工作流程,將高風險訂單的條件設定為 true。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數。

用於提供詐騙訂單資訊的變數範例。
輸入 輸出
我們的 Shopify 商店已收到擁有高度詐騙風險的訂單。我們希望在訂單送出生產前,立即取消此訂單:

{{ order.name }}
{{ order.billingAddress.lastName }},{{ order.billingAddress.firstName }}
{{ order.email }}

請確認新的訂單狀態。謝謝!
我們的 Shopify 商店已收到擁有高度詐騙風險的訂單。我們希望在訂單送出生產前,立即取消此訂單:

#1001
杜維達,Jeanne
jeanne@example.com

請確認新的訂單狀態。謝謝!

「For 迴圈」範例

收到訂單時,建議您傳送包含訂購商品的訊息。您可以使用重複執行程式碼 for loop 來完成此操作。支援變數的文字欄位也支援 for 迴圈和 for 迴圈物件

舉例來說,您想要建立一個工作流程,回傳訂單中所有存貨單位 (SKU) 和數量的清單。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數。

用於提供訂單資訊的 For 迴圈範例。
輸入 輸出
訂單摘要:
{% for a in order.lineItems %}
SKU: {{a.sku}} ({{a.quantity}}),
{% endfor %}
訂單摘要:
8987097979 (50)
8877778887 (3)
8889988898B (1)

您決定在電子郵件中新增更多資訊,包含商品名稱、SKU、單件品項價格,以及顧客的運送資訊。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數。

提供更廣泛訂單資訊的 For 迴圈使用範例。
輸入 輸出
訂單摘要:
{% for a in order.lineItems %}
:{{a.title}}
SKU:{{a.sku}}
價格 (單位):${{a.originalUnitPriceSet.shopMoney.amount}}
數量:{{a.quantity}}
{% endfor %}
訂單摘要:
產品:高腰褲襪:黑色
SKU:8987097979
價格 (單位):$8.49
數量:5
產品:運動襪:藍色
SKU:888998898B
價格 (單位):$5.61
數量:2

您必須追蹤由特定廠商供應的已售出品項。在「傳送內部電子郵件」動作的「訊息」區段中,您使用以下變數,並在 for loop 中納入 if 陳述式。

用於為特定廠商提供訂單資訊的 For 迴圈和 If 陳述式範例。
輸入 輸出
已售出 Acme 產品:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
名稱:{{x.title}}
SKU:{{x.sku}}
{% endif %}
{% endfor %}
已售出 Acme 產品:
產品名稱:高腰褲襪:黑色
SKU:8987097979

Shopify Flow 中的複雜資料物件

由於以下原因,Shopify Flow 不支援輸出陣列和物件:

  • 此動作將輸出 GraphQL API 不需要的資料,且可能造成查詢資料過多,導致工作流程中斷。
  • 新功能推出後,系統將新增 API 欄位,可能導致工作流程中斷。

系統自動發送太多資料時,工作流程就會中斷。請不要直接呼叫陣列和物件,而是以迴圈執行陣列,並僅包含所需欄位。

舉例來說,請勿直接呼叫 {{ order.lineItems }},而是改用以下格式來呼叫特定欄位。這些範例包含直接呼叫陣列或物件所包含的所有欄位。複製貼上所需的欄位。

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

免費試用