跳至主要內容
疑難排解

佈景主題的 +/- 數量按鈕不會變更選取的優惠項目

如果佈景主題的數量按鈕不會變更選取的優惠項目,請先檢查折扣使用哪個數量控制項。輸入的數量被調整為某個層級,與按鈕完全沒有傳送小工具更新,是兩種不同的情況。

我輸入 8,但購物車收到 6

在未使用 Bundlex 自有數量選擇器的一般設定中,佈景主題輸入欄位會在已設定的層級之間導覽。精確的層級數量可以選取該卡片,而介於兩個層級之間的數量可能會保留目前選取的優惠項目。加入購物車時會使用該優惠項目的數量。選取「購買 6 件」時輸入 8,不代表一定會加入 8 件商品。

若要讓顧客選擇彈性數量,請在折扣的 加購項目 分頁中,於可用時啟用 數量選擇器。此功能可與訂閱搭配使用。如果停用,控制面板會顯示阻止使用此設定的項目,請參閱 無法與此設定搭配使用的設定。

啟用 Bundlex 的選擇器時,佈景主題輸入欄位會反映選擇器的結果,而不是控制第二個數量。部分商店針對一般層級另有由支援團隊啟用的原生數量設定,但這不是預設設定。請參閱 佈景主題數量行為。

如果已啟用優惠項目選取為選用,且未選取任何優惠項目,佈景主題控制項會正常運作,不會在優惠項目卡片之間導覽。以下檢查內容適用於層級導覽設定中已啟用的優惠項目。

同步應如何運作

請記住有兩個同步方向:

  • 優惠項目到數量:當顧客點擊優惠項目,例如「購買 1 件」、「購買 2 件」或「購買 3 件」時,小工具會將佈景主題的數量輸入欄位設定為該優惠項目的數量。這取決於 Bundlex 是否找到正確的數量輸入欄位。
  • 數量到優惠項目:當顧客使用佈景主題的 +/- 按鈕或輸入數值變更數量時,小工具應偵測新的數值,並選取數量完全相符的優惠項目。

當佈景主題變更輸入欄位卻未觸發事件,或小工具監聽的是不同的數量輸入欄位時,第二個同步方向可能會失效。單獨出現不屬於任何層級的數字,並不能證明是事件問題,也不代表優惠項目一定會被取消選取。

為什麼 +/- 按鈕不會更新優惠項目

小工具會監聽數量輸入欄位上的原生 change 和 input 事件。正常輸入會觸發這些事件,但佈景主題的自訂 +/- 按鈕可能不會。

不過,許多佈景主題會透過 JavaScript 直接設定輸入欄位的值來實作 +/- 按鈕,例如 input.value = newValue。以這種方式指定值,不會觸發 change 或 input 事件。畫面上的數字會變更,但不會派發事件,因此小工具不會得知數量已變更,選取的優惠項目也會維持原狀。

這並非特定於任何一種框架。任何程式化的值指定都會略過這些事件。只有實際的使用者互動,例如輸入文字,才會觸發這些事件。以 Shopify 的 <quantity-input> 自訂元素為基礎建立的佈景主題,例如 Dawn,會在更新值後派發 change 事件,因此這些佈景主題可以直接正常運作。

如何確認這是原因

  1. 開啟瀏覽器的開發人員工具(F12;在 Mac 上按 Cmd+Option+I),然後前往主控台分頁。
  2. 在商品頁上點擊 +/- 按鈕。
  3. 嘗試輸入與可用優惠項目完全相符的數量。如果數字變更,但選取的優惠項目沒有變更,請要求佈景主題開發人員檢查按鈕是否在 Bundlex 監聽的數量輸入欄位上派發 change 或 input 事件。

容易遇到此問題的佈景主題,通常會使用自訂的 +/- 按鈕直接設定數值,而不是使用 Shopify 的 <quantity-input> 網頁元件。

修正方式:派送 change 事件

此修正位於佈景主題中,因此由維護佈景主題程式碼的人員進行修改即可快速完成。請要求佈景主題開發人員,在 +/- 處理常式設定新的數量值後,立即派送 change 事件:

input.dispatchEvent(new Event('change', { bubbles: true }));

此處的 input 是正在更新的數量輸入元素。這會通知監聽該事件的指令碼,包括 Bundlex。完成修改後,請測試佈景主題的數量按鈕和購物車。

重複的數量輸入欄位案例,懸浮購物車列

部分佈景主題會新增懸浮或固定的「加入購物車」列,複製商品表單,其中包括第二個數量輸入欄位。兩個輸入欄位通常會共用相同的 name="quantity",有時甚至會共用相同的 id。因此,Bundlex 的預設選取器 input[name="quantity"] 可能會附加到錯誤的輸入欄位,導致優惠與主要表單的數量無法同步。

如何確認是否有重複項目

  1. 開啟開發人員工具,前往主控台分頁。
  2. 執行:document.querySelectorAll('input[name="quantity"]').length
  3. 如果結果大於 1,表示頁面上有多個數量輸入欄位。

修正方式:自訂數量輸入選取器

將 Bundlex 指向主要表單中的數量輸入欄位,排除懸浮列。請提供商品 URL 聯絡支援團隊,以取得新的選取器修正方式,支援團隊可以在商店的小工具設定中進行設定。如果您需要檢查應用程式嵌入中已儲存的舊版選取器,其位置如下:

  1. 在 Shopify 管理介面中,開啟 佈景主題編輯器。
  2. 前往 應用程式嵌入,然後找到 Bundlex Bundles。
  3. 啟用 顯示進階設定,然後將 數量輸入選取器 設定為只鎖定主要表單數量輸入欄位的選取器。

確切的選取器取決於您的佈景主題。以下是部分佈景主題可使用的兩個範例:

.product-form__item--submit input[name="quantity"]
form.shopify-product-form:not(#addtocart-sticky form) input[name="quantity"]

如果這兩個選取器都不適用於您的佈景主題,請將商品頁面 URL 提供給支援團隊,以便找出正確的選取器。如果支援團隊先前已設定覆寫值,該值可能會優先於佈景主題欄位。

何時聯絡支援團隊

如果您已確認 +/- 按鈕會變更數值但不會觸發事件,或確認存在重複的數量輸入欄位,而上述修正方式仍無法解決問題,請提供商品頁面 URL 聯絡支援團隊。同時提供瀏覽器主控台中的任何 [Bundlex] 訊息,以及商品表單的 HTML,也會有所幫助。

這篇文章對您有幫助嗎?

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

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

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

仍需要協助嗎?

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

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