從 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 渲染後的形式傳入。
Shopify Flow 中的「傳送交易型電子郵件」動作,包含「回覆至」、「寄件者名稱」、「語言」,以及填入 Shopify Flow 變數的 JSON 變數陣列
動作中的變數(JSON):左側為您的鍵值,右側為 Shopify Flow 的變數。其上方為「回覆對象」、「寄件者名稱」和「語言」欄位。
包含「在 Shopify Flow 中使用」面板及其「複製 JSON」按鈕的佈局中的「測試變數」分頁
佈局的「測試變數」分頁會自動為您產生 JSON 內容:請複製 JSON,然後將其貼上至動作中,並替換其中的數值。

最常見的錯誤:明細項目

由於一筆訂單包含_許多_明細項目,因此沒有單一的 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: 篩選器,應用程式會將空值視為刻意為之,且不會就此發出警告。

檢查清單

  1. 請將佈局中「**在 Shopify Flow 上使用」**卡片中的 JSON 內容複製下來。
  2. 將其貼入「Shopify Flow」動作的「**變數 (JSON)」**欄位中。
  3. 請使用 Shopify Flow 的變數選擇器,將任何 <pick a Flow variable> 替換為其他內容。
  4. 應透過迴圈遍歷明細項目,而非直接讀取它們。
  5. 在任何可選項目後加上 | default:。
  6. 實際執行此工作流程,然後在「**歷史紀錄」**中查看是否出現「**變數為空」**的標記。

相關