跳至主要內容
疑難排解

抽屜式購物車將贈品或組合商品顯示為原價

如果抽屜式購物車將贈品或組合商品顯示為原價,但購物車總額與結帳頁面正確,請檢查抽屜式購物車讀取及重新整理價格的方式。較舊的 Liquid 價格欄位可能不會包含自動折扣,而抽屜式購物車也可能保留過時的購物車快照。本文將說明如何區分這些情況。

快速檢查:總額是否正確?

在變更任何設定前,請先確認錯誤價格實際出現的位置:

  • 如果抽屜式購物車中的每件商品價格看起來不正確,例如贈品或折扣商品顯示為原價,但抽屜式購物車底部的購物車小計與結帳總額正確,這就是僅影響顯示的問題。請繼續閱讀。
  • 如果結帳總額本身不正確,那就是另一個問題,例如其他折扣應用程式疊加,或折扣不符合條件。本文不涵蓋這種情況。

Bundlex 不會呈現您的抽屜式購物車。折扣是由在結帳時執行的 Shopify 購物車折扣函式套用,Bundlex 無法改寫佈景主題中的商品列價格顯示。

為什麼抽屜式購物車顯示原價

Bundlex 會透過 Shopify 購物車折扣函式套用折扣。該函式會將折扣分配到購物車商品列,Shopify 將其視為自動折扣的一種形式。

問題在於部分佈景主題呈現每個購物車商品列的方式。較舊或自訂的抽屜式購物車會使用 Liquid 欄位 line_item.price 和 line_item.line_price 顯示商品列價格。Shopify 官方文件指出這些欄位已淘汰,因為 它們不會反映自動折扣。因此,即使 Shopify 已正確記錄該商品列的折扣,抽屜式購物車仍會顯示原始的未折扣價格。

顧客看到的結果是:組合中的每個商品列都顯示相同的完整單價,免費贈品列看起來也像是被收費。同時,小計與結帳頁面顯示正確,因為這些數值是根據套用折扣後的價格計算。

使用 /cart.js 確認

無論抽屜式購物車顯示什麼,您都可以確認折扣是否正確套用:

  1. 在商店前台,將組合或含免費贈品的優惠加入購物車。
  2. 在瀏覽器中,於同一商店開啟 /cart.js,例如前往 https://yourstore.com/cart.js。
  3. 找到受影響的商品列,查看 final_price 和 final_line_price。

正常運作的免費贈品列會顯示類似 final_price: 0 和 final_line_price: 0 的內容,折扣則會列在該商品列的 discounts 下方,包括優惠標題與折扣金額。請檢查抽屜式購物車實際呈現哪些欄位。上述淘汰說明適用於 Liquid 的 line_item.price 和 line_item.line_price;單獨的 /cart.js 回應無法判斷抽屜式購物車的資料來源。

解讀結果:

  • final_price / final_line_price 反映了折扣,但抽屜式購物車仍顯示原價。請同時檢查抽屜式購物車呈現的欄位,以及購物車變更後是否會重新整理。
  • final_price 未反映折扣。此時問題不在抽屜式購物車的顯示。請改為檢查購物車函式,例如組合是否正確加上標籤、折扣中繼欄位是否為最新狀態,或是否套用了 B2B 或顧客標籤等顧客資格規則。

修正方式:使用 final_price 和 final_line_price

如果抽屜式購物車的 Liquid 程式碼片段使用這些已淘汰欄位顯示目前價格,請將其替換為對應的 final_ 欄位:

  • line_item.price 變更為 line_item.final_price
  • line_item.line_price 變更為 line_item.final_line_price

The final_ 欄位包含逐行折扣。如果您的抽屜使用 JavaScript,也請確認變更後會重新呈現最新的購物車回應或更新後的佈景主題區段。替換價格欄位無法修復過時的快照。

由於每行的 price 值是靜態 Liquid 屬性,Bundlex 無法代您改寫。折扣資料已存在於 final_price 中,佈景主題只需讀取這些資料即可。

如果您使用原生的比較售價

如果您的變體也帶有 Shopify compare_at_price(例如「50% Off」這類刪除線),該徽章是佈景主題根據變體資料呈現的,與 Bundlex 折扣無關。切換至 final_ 欄位後,單行價格會反映 Bundlex 折扣,而任何比較售價刪除線仍會依照您的佈景主題設定顯示。

另一種情況:$0 的贈品行殘留

另一個相關但不同的症狀是:客戶選擇了包含免費贈品的優惠,接著將主要商品的數量降至優惠門檻以下。主要商品行會正確降至較低級距,但免費贈品行仍留在購物車中,顯示 $0。

原因如下。當數量低於門檻時,購物車函式會正確停止套用折扣並取消分配。但 Shopify 購物車函式 無法移除購物車行(因為它沒有可用的移除操作)。對於設定為 $0 目錄變體的免費贈品,沒有可「恢復」的價格,因此現在不符合資格的贈品行就會以 $0 留在購物車中。

為了解決這個問題,Bundlex 提供小工具端的清理功能,會在購物車變更後執行並移除孤立的贈品行。但此功能能否執行取決於以下條件:

  • 僅限免費贈品。 付費加購項目由組合完整性功能處理,而非此清理功能。
  • 支援的購物車變更路徑。 當完整的 Bundlex 小工具啟用時,清理功能會處理 fetch 和 XHR 購物車變更。若頁面只執行贈品清理指令碼而未啟用小工具,攔截功能只涵蓋 fetch 變更。佈景主題的重新整理行為仍可能影響抽屜顯示的內容。
  • 清理功能會盡力執行。 如果某個步驟失敗,贈品行可能會持續顯示,直到下一次購物車互動。

移除行後,Bundlex 會發送購物車重新整理事件,提示佈景主題重新呈現。在 Dawn 和以 Dawn 為基礎建立的 Shopify 免費佈景主題中,Bundlex 也會自行重新繪製購物車抽屜、購物車頁面和購物車圖示數量。Shopify 沒有一個所有佈景主題都會實作的單一購物車更新事件,因此在其他未監聽這些事件的佈景主題中,抽屜可能會維持過時狀態,直到下一次互動。最重要的是:購物車計算結果永遠正確。客戶不會因為殘留的 $0 行而被收費,無論抽屜當下顯示什麼,結帳總額都會正確。

摘要

  • 抽屜顯示完整價格,但總額和結帳正確?請檢查是否使用已棄用的 Liquid 價格欄位,或購物車資料是否過時。
  • 使用 /cart.js 驗證:final_price / final_line_price 應反映折扣。
  • 在佈景主題中修正:將這些欄位切換為 final_price 和 final_line_price。
  • 降低數量後仍殘留 $0 贈品行是預期情況(Shopify 無法移除購物車行);Bundlex 會在支援的佈景主題中清理該行,而結帳時的價格永遠正確。

這篇文章對您有幫助嗎?

您的意見能協助我們改善文件內容。

謝謝,我們會持續改進這篇文章。

想與我們的團隊聯繫嗎? 還有問題嗎?

仍需要協助嗎?

我們的團隊只需點一下即可聯絡。傳送訊息給我們,我們會回覆您。

我們使用少量 Cookie,讓網站正常運作、了解網站使用情況,並在您開啟聊天小工具時提供支援。請參閱我們的 Cookie 政策。