從 Shopify Flow 傳遞資料
您的電子郵件版面配置就像一個帶有孔洞的形狀。Shopify Flow 會透過**變數(JSON)**來填補這些孔洞。
這是最常見的錯誤,因此值得花五分鐘來了解。
兩半
| 在哪裡 | 您所寫的內容 | 範例 |
|---|---|---|
| 在您的電子郵件版面配置中 | 佔位符 | Hi {{ variables.firstName }} |
| 在Shopify Flow訴訟中 | 提供該資料的 JSON | {"firstName": "{{ order.customer.firstName }}"} |
JSON 左側的鍵必須與您佈局中 variables. 後面的名稱完全一致 - - 拼寫和大小寫都必須相同。firstName 和 firstname 是兩個不同的變數。
讓應用程式幫您寫出 JSON 吧
你不必親手寫下這段文字,而且最好還是不要這麼做。
開啟您的版面配置。在側邊欄(或視覺化建構器的「測試變數」分頁)中,有一張名為「在 Shopify Flow 中使用」的卡片,其中包含該版面配置的精確 JSON 內容,所有鍵值均已設定正確。按下**「複製 JSON**」,然後將其貼上至「發送交易型電子郵件」動作的**「變數 (JSON)」**欄位中。
該應用程式會為其辨識出的欄位(例如:客戶名稱、訂單名稱、訂單總額、狀態頁面網址等)自動填入 Shopify Flow 屬性。無法推斷出的內容將顯示為 <pick a Flow variable>,供您自行替換。
JSON 應呈現何種樣式
{
"firstName": "{{ order.customer.firstName }}",
"orderName": "{{ order.name }}",
"statusPageUrl": "{{ order.statusPageUrl }}"
}
值得了解的規則:
- 請將每個
Shopify Flow值用雙引號包起來。"orderName": {{ order.name }}是不正確的 JSON;"orderName": "{{ order.name }}"才是正確的。 - 各條目之間以逗號分隔,最後一個條目後不加逗號。
- **鍵名可由您自行決定。**它們只需與您的佈局相符即可。若您的佈局中標示為
{{ variables.kunde }},則該鍵名即為kunde。 - 數值以文字形式傳入。數字和日期則以 Shopify Flow 渲染後的形式傳入。


最常見的錯誤:明細項目
由於一筆訂單包含_許多_明細項目,因此沒有單一的 variant.title 可供讀取。這會返回空值:
{{ order.lineItems.variant.title }}
你有兩個不錯的選擇。
**選項 1 - 在佈局內進行迴圈。**先傳送清單,然後進行迭代。在「Shopify Flow」動作中:
{
"items": "{{ order.lineItems | json }}"
}
在您的版面配置中,請使用**「迴圈」**區塊:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
選項 2 - 在 Shopify Flow 中將其轉為單行**。**若您只需要一行文字,請在 Shopify Flow 中使用 for 迴圈來建構該文字,並傳送完成的字串:
{
"itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}
如果應用程式偵測到看似明細項資料的變數 - - 例如名稱包含 variant、product、item、sku 或 quantity 的變數 - - 它會在「在 Shopify Flow 中使用」卡片上向您發出警告。
測試數值並非即時數值
這點幾乎會讓所有人卡關。
- 佈局編輯器中的測試變數僅用於驅動預覽及「發送測試電子郵件」功能。
- Shopify Flow 的即時執行會完全忽略這些設定,並直接採用 Shopify Flow 動作傳送的內容。
因此,一封看似完美的測試電子郵件,只能證明您的_設計_有效,但無法證明您的 Shopify Flow 設定是否正確。請務必透過實際執行工作流程來確認。
當變數的值為空時
自 1.10.0 版本起,應用程式會直接告知您,而非讓您自行猜測。
如果即時傳送將某個變數渲染為空值,則「**歷史紀錄」**中的該項目會顯示「空變數」標記;開啟該項目後,系統會明確顯示哪些變數屬於此類,並分為兩種情況:
| 案例 | 意思 | 修正 |
|---|---|---|
| 由 Shopify Flow 寄出,但內容為空 | 該金鑰原本就在您的 JSON 中,但 Shopify Flow 卻未返回任何值 | Shopify Flow 的路徑不正確,或者此筆訂單的路徑確實為空(訪客結帳時沒有 customer.firstName) |
| 這封郵件根本不是由 Shopify Flow 寄出的 | 您的 JSON 檔案中完全缺少這個鍵 | 加入它 - - 「複製 JSON」按鈕會提供完整的資料集 |
防範空值
對於任何可選項目,請在佈局中設定備用方案,以確保客戶絕不會看到空白頁面:
Hi {{ variables.firstName | default: "there" }}
若已啟用 default: 篩選器,應用程式會將空值視為刻意為之,且不會就此發出警告。
檢查清單
- 請將佈局中「**在 Shopify Flow 上使用」**卡片中的 JSON 內容複製下來。
- 將其貼入「Shopify Flow」動作的「**變數 (JSON)」**欄位中。
- 請使用 Shopify Flow 的變數選擇器,將任何
<pick a Flow variable>替換為其他內容。 - 應透過迴圈遍歷明細項目,而非直接讀取它們。
- 在任何可選項目後加上
| default:。 - 實際執行此工作流程,然後在「**歷史紀錄」**中查看是否出現「**變數為空」**的標記。
相關
- 變量與液體 - 完整的範本參考指南。
- 建立電子郵件版面配置 - 設計版面配置本身。
- 歷史與疑難排解 - 讀取失敗或為空的傳送訊息。

