whoops.

WooCommerce 結帳表單客製化教學:自訂欄位優化

電商結帳表單優化指南:實際走查、欄位調整、完整驗證
減少摩擦,也保留履約資料

WooCommerce 結帳客製化教學:先區分 Checkout Block 與 Classic Checkout,再選欄位 API、相容外掛或模板,驗證金流、物流與發票資料。

本頁目錄

結帳頁是整個電商漏斗最窄的那個瓶頸。商品頁做得再漂亮、廣告投得再兇,消費者走到結帳那一刻不必要的輸入、等待或步驟都可能增加放棄風險,影響幅度仍需實測。這篇要談的重點,是把結帳表單調整成最少摩擦、最高轉換的樣子。至於「結帳頁怎麼變好看」,那只是順帶的收穫。

先給你一份重點摘述。WooCommerce 預設的結帳表單是設計給不同市場通用的範本,不一定適合每間店。動手前要先確認目前使用的是 Checkout Block 還是 Classic Checkout:兩者的擴充介面不同,傳統 filter 與模板覆蓋主要適用於 Classic Checkout。可用的方法包括核心區塊設定或相容外掛、Classic Checkout 的 filter 程式碼、覆蓋傳統佈景模板,以及頁面建立器。

結帳頁為什麼是轉換率的生死線

先把視野拉高。根據 W3Techs 的市佔統計(2026 年 6 月),WooCommerce 是全球市佔最高的電商系統之一,從個人賣家到大型品牌都在用,這也代表它的預設值必須夠通用、夠中性。問題是,「通用」跟「適合你」從來不是同一件事。那份通用範本裡,有些欄位你的客層根本不需要,有些你需要的欄位它卻沒有。

購物車放棄不全是結帳表單造成。Baymard Institute 的研究彙整顯示,平均放棄率約七成,但許多人只是瀏覽或比較價格;其美國受訪者資料另指出,要求建立帳號、結帳流程過長也是部分人放棄的原因。結帳欄位值得檢查,但要先找出自己商店的實際卡點,再衡量改動是否有幫助。

回過頭,建議你把「結帳表單客製化」當成一件獨立、優先級很高的工作,別把它丟到「等其他功能都做好再說」的那一欄。它投報比極高,改一個欄位的工可能只有十分鐘,影響的卻可能是全站最有價值的那群人,也就是已經決定掏錢的人。如果你才剛起步、連 WooCommerce 都還沒裝好,可以先回頭看〈WooCommerce 電商架站實戰〉把基礎打通,再回來這篇做結帳優化。

動手改欄位之前,先做一次結帳體檢

很多人一聽到「結帳客製化」就立刻裝外掛、改程式碼,這順序其實是錯的。正確的第一步是量測,不是動手。你連現在的結帳頁到底爛在哪裡都不知道,改了也只是憑感覺。

實務上的習慣是,每次做結帳體檢,第一件事就是打開結帳頁,自己用一支手機、再用了無痕視窗的桌機,各走完一遍結帳流程,一邊計時一邊記錄卡頓點。這個「結帳體檢」對應下方這張清單表格,你可以直接拿去用。

左右捲動檢視完整表格

體檢項目要看什麼理想狀態
欄位總數帳單+運送+備註加起來有幾格僅保留業務、金物流與適用規定需要的輸入
必填比例有多少欄位打了星號只將業務、金物流及適用規定必要資料設為必填
欄位語意標籤與 placeholder 是否清楚消費者不用猜就知道填什麼
錯誤提示填錯時的訊息位置與用詞欄位旁即時提示,不是送出才一次跳全頁錯誤
行動填寫時間手機上從開頁到能按結帳要多久用真實使用者與裝置記錄時間及卡點,不套固定分鐘數
鍵盤類型輸入手機或郵遞區號時跳出什麼鍵盤依內容選鍵盤,電話和國際郵遞區號須允許需要的字元

這張表跑完,得到的會是一份具體的待辦清單,足以取代「結帳頁感覺不太順」這種模糊結論。舉個例子,你會發現真正的問題不是「欄位太多」,而是「其中四格是給 B2B 開統編用的,但你的客層九成是一般消費者」。這時候解法就很清楚,把公司欄位與統編欄位改成選填、甚至用條件邏輯只在使用者勾選「公司」時才出現。這類判斷必須靠體檢,靠直覺改通常會改錯方向。

如果你的站已經跑一段時間、有 GA4(Google Analytics 4)或類似的分析工具,務必把結帳漏斗的每一步放棄率調出來看。哪一屏掉最多人,就是你要優先處理的那一屏。沒有資料就先裝、先確認事件正確並累積足夠樣本與完整業務週期,別急著在沒有數字的情況下大改。

結帳客製化的四條路線,你該選哪一條

體檢完,進入實作。WooCommerce 的結帳表單客製化,主流方法有四條路線。它們不是互斥的,很多站會混用,但你要先搞清楚每一條的能力邊界,才不會用錯工具做錯事。

左右捲動檢視完整表格

路線本質適合誰主要風險
外掛法用圖形介面增刪改欄位不寫程式、需求單純的店主外掛衝突、更新跟不上核心版本
程式碼 filter 法Classic Checkout 可用 woocommerce_checkout_fields 等 filter 控制有工程資源、想要可版本控的團隊不適用 Checkout Block;改錯可能造成結帳錯誤
佈景覆蓋法Classic Checkout 可複製模板檔到子佈景改 HTML 結構要動傳統模板結構而非欄位屬性時不適用 Checkout Block;升級要手動同步
頁面建立器法用相容的頁面建立器整頁重畫想把結帳頁當作品牌體驗來設計速度拖重、維護成本高

判斷原則很簡單:先到結帳頁編輯畫面確認是區塊版還是傳統 shortcode。Checkout Block 可切換公司、地址第二行與電話欄位是否顯示,並調整地址與電話欄位的必填狀態,也能在清單檢視裡調整部分區塊;超出核心設定時,要選明確標示相容 Checkout Block 的擴充。Classic Checkout 才依需求選外掛、filter 或模板覆蓋(可對照 WooCommerce 的 Checkout block 文件)。

先辨識結帳版本再選方法:Checkout Block、Classic Checkout、相容擴充
先確認結帳頁使用區塊或傳統 shortcode;兩者擴充介面不同,方法和外掛必須對應目前版本。

各路線都要納入更新驗證。公開hook的參數與呼叫情境、區塊擴充API、外掛相容性,以及覆蓋模板的版本都有可能變更;不能把filter當成跨版本保證。模板副本不會自動同步核心更新,應特別追蹤差異;其他方案同樣要在測試站跑過完整結帳。

路線一:Checkout Field Editor 外掛,無程式碼改欄位

WooCommerce.com 的 Checkout Field Editor 是付費擴充,目前適用 legacy/Classic Checkout,不能和其他作者的同名免費外掛混為一談。Checkout Block 先使用核心設定,新增欄位可評估官方 Additional Checkout Fields API 或明確支援 Blocks 的擴充。

這條路線的操作細節很多,光是欄位類型與驗證規則就值得另開一篇。這篇把焦點放在「為什麼要用、什麼時候不該用」的策略層。如果只要刪幾個欄位、改幾個標籤,先確認核心 Checkout Block 能否完成,再評估外掛;外掛文件也要明列與目前結帳版本相容。若開始疊好幾支結帳外掛,彼此還搶欄位順序,就該收斂成一套相容方案。

順帶一提,如果你連安裝外掛這一步都還不熟,可以先把〈WordPress 外掛安裝教學〉看過一遍,會少踩很多安裝與啟用的基本坑。挑外掛時也建議參考〈WooCommerce 必裝外掛清單〉,避免裝到會拖垮結帳頁速度的重型外掛,那會本末倒置。

路線二:Classic Checkout 用 woocommerce_checkout_fields filter 控制

這條路線只適用於 Classic Checkout。你可以在自製小外掛裡掛上 woocommerce_checkout_fields,在傳統結帳欄位送進畫面前修改它(見 WooCommerce 開發文件的 Customising checkout fields using actions and filters 說明)。優點是可以進版本控制,團隊交接時看得懂改了什麼;如果頁面使用 Checkout Block,這段 filter 不會控制區塊結帳欄位,需改用 Blocks 提供的擴充介面或相容外掛。

接下來這段是多數 B2C 店常用的起手式,示範改標籤、改 placeholder、設必填與調整欄位寬度;範例不移除欄位。你可以把它當模板,依需求改 key 與值。

add_filter( 'woocommerce_checkout_fields', 'whoops_tune_checkout_fields' );
function whoops_tune_checkout_fields( $fields ) {
    // 1. 改標籤與 placeholder,讓欄位語意更清楚
    $fields['billing']['billing_last_name']['label']       = '姓氏';
    $fields['billing']['billing_last_name']['placeholder'] = '例:王';
    $fields['billing']['billing_first_name']['label']      = '名字';

    // 2. 把某欄位改成非必填
    $fields['billing']['billing_company']['required'] = false;

    // 3. 調整欄位寬度,讓姓氏與名字兩欄並排
    $fields['billing']['billing_first_name']['class'] = array( 'form-row-first' );
    $fields['billing']['billing_last_name']['class']  = array( 'form-row-last' );

    // 4. 設定輸入類型,手機欄位叫出數字鍵盤
    $fields['billing']['billing_phone']['custom_attributes'] = array(
        'inputmode' => 'tel',
        'autocomplete' => 'tel',
    );

    return $fields;
}

這段程式碼做了四件事,每一件都對應前面體檢表裡的一個問題。改標籤處理「語意不清」,改必填處理「必填比例過高」,調寬度示範傳統版的欄位class,手機仍須測試是否應改為單欄,設 inputmode 處理「鍵盤類型不對」。這就是 filter 路線迷人的地方:一段程式碼,背後是一次性的思考,設定可留在自製外掛,升級後仍須回歸驗證,不用每次都進後台重點一遍。

要特別提醒,移除欄位用 unset() 雖然可行,但務必先確認金物流外掛會不會依賴那個欄位。例如某些超商取貨外掛會讀手機欄位來推播取貨通知,你把它 unset 掉,取貨簡訊就發不出去。這種隱性依賴是程式碼路線最容易踩的雷,改之前先 grep 一下相關外掛有沒有用到該欄位的 key,會安心很多。如果你會自己寫小工具,把常用的欄位調整包成一支獨立外掛,別塞進子佈景裡,未來換佈景時也不會把結帳設定一起丟掉。

路線三:template override,連版型結構一起改

當你的需求超過「改欄位屬性」,進到「想改欄位是怎麼被排列的」,filter 就不夠用了,可先檢查現有actions與CSS是否足夠;確需改傳統模板HTML時才評估template override。做法是:把 WooCommerce 外掛資料夾裡 templates/checkout/form-checkout.php 這個檔案,複製一份到你的子佈景裡對應的路徑 子佈景/woocommerce/checkout/form-checkout.php,然後改複製出來的那一份。WooCommerce 在渲染時會優先讀子佈景裡的版本。

什麼時候才需要走到這一步?列出三個典型情境:第一,你想把帳單區塊與運送區塊拆成左右兩欄,跳出預設的上下堆疊形式。第二,你想在結帳頁塞入品牌專屬的信任元素,例如安全保障圖示、退換貨承諾、客服聯絡方式。第三,你要把某個自訂欄位放進一個非常特定的視覺位置,而那個位置用 filter 的 class 控制不到。

這條路線的代價是維護成本。WooCommerce 每次大改版,如果結帳模板有結構性更新,你覆蓋的那一份不會自動跟著更新,要自己手動 diff、把新的調整併進來。這是為什麼前面提到「能用 filter 就不要動模板」。模板覆蓋留給那些真的需要動結構的少數情境,不要一開始就跳進來。如果佈景本身提供相容目前結帳版本的版型選項,可以先測試內建功能,通常比自行覆蓋模板更容易維護。

覆蓋模板要持續追蹤差異:核心模板、自訂副本、比對合併、結帳測試
核心模板更新後,自訂副本仍需比對差異、合併適用變更,再驗證完整結帳。

台灣結帳頁的特殊欄位:統一編號、地址、超商取貨

這一節是寫給在台灣做電商的人,也是這篇最值得停下來細看的地方。WooCommerce 預設表單是英美邏輯設計的,直接拿來面對台灣消費者會有幾個尷尬。有幾個欄位,幾乎每個台灣 WooCommerce 店都要自己補上或改寫。

統一編號與發票類型。台灣消費者結帳時常需要選擇開立「個人」或「公司」發票,選了公司就要填統一編號。預設 WooCommerce 沒有這個欄位,你得自己加,並用條件邏輯讓統編欄位只有在勾選公司時才出現。如果你的發票要走電子發票或加值中心,例如串綠界,〈綠界金物流串接教學〉裡會涵蓋發票欄位的串接;更輕量的做法是搭配〈RY WooCommerce Tools〉這類工具,可協助金物流欄位;電子發票則要另選對應的 Invoice 外掛與服務,不能只安裝 RY Tools 就假設發票已串好。

縣市與鄉鎮市區下拉。預設地址由國家、州省/地區、城市與詳細地址等欄位組成,部分型態依國家而異;完整台灣縣市/鄉鎮連動仍需確認支援,消費者要自己打「台北市」「大安區」,錯字、簡繁差異、漏字都會造成後續出貨與運費計算的麻煩。理想做法是把縣市與鄉鎮市區做成連動下拉選單,選了縣市才出現對應的區。這個需求很常見,不少店家因為漏了這一步,每個月都要手動修地址錯字。具體做法寫在〈縣市下拉選單設定教學〉這一篇,搭配 RY WC City Select 之類的外掛就能快速完成。

超商取貨門市選擇器。這是台灣電商最在地、也最容易出問題的欄位。消費者選了「7-Eleven 超商取貨」之後,要能進一步選擇要把貨送到哪一間門市,這牽涉到門市地圖、店號回傳、運費規則連動。這通常無法單靠加欄位解決,得跟物流外掛一起設計。建議從〈運費設定全攻略〉理解運費規則的整體框架;金流與物流要怎麼當成同一個系統來配置,可參考〈金流物流設定全攻略〉,再把門市選擇器當成運送方式的一環來接。

門市選擇要接上物流流程:選擇門市、回傳店號、核對規則、保存訂單
門市選擇器需把店號等資料交回商店,並與物流規則及訂單保存接上。

郵遞區號三加三。中華郵政目前提供 3+3 郵遞區號查詢,結帳欄位的格式與驗證要配合實際物流或地址服務需求,不能只限制成舊的五位格式。可先加上適合的 inputmode,再配合 中華郵政的郵遞區號查詢,由縣市、鄉鎮市區與地址資料帶入或驗證郵遞區號。

左右捲動檢視完整表格

台灣特殊欄位預設有沒有建議做法
發票類型切換(個人/公司)沒有相容的電子發票外掛,或完整串接發票 API 的自訂欄位
統一編號沒有條件出現,只在公司發票時顯示
縣市/鄉鎮市區連動下拉沒有城市選擇外掛,參考縣市下拉教學
超商取貨門市選擇器沒有綁物流外掛,非單純加欄位
郵遞區號三加三有但驗證依設定而異配合物流或地址服務驗證

把這幾個欄位處理好,你的結帳頁才算是真正「在地化」,不再只是一份翻成中文的英美表單。這件事的價值很實際,地址對了,出貨退件率就降;發票欄位順了,客服每天解釋「怎麼補統編」的時間就少。

條件邏輯:讓欄位只在該出現時才出現

前面的台灣欄位裡,統一編號只有勾「公司發票」才該出現、超商門市只有選「超商取貨」才該出現、電子發票載具只有選「個人電子發票」才該出現。這種「甲欄位的值決定乙欄位要不要顯示」的需求,叫條件邏輯(conditional logic),它能把必填比例壓到最低,同時又不犧牲功能完整性。消費者選了公司發票,統編才現身、才變必填;選個人發票,統編直接消失,連帶不佔畫面、不擋流程。這正是前面體檢表裡「必填比例」這一項的最佳解法,比起把所有欄位一股腦攤開,聰明得多。

先確認 Checkout Block 或 Classic Checkout。區塊版可使用 Additional Checkout Fields API 及其條件規則;傳統版可透過欄位 filter 與驗證鉤子實作。無論介面如何顯示,伺服器端都必須依相同條件驗證及保存資料,不能只靠前端 JavaScript 隱藏。

條件欄位應使用所選結帳介面支援的狀態與條件API,不要一律以CSS display當作資料處理策略。切換發票或配送選項時,要同步顯示、必填、驗證及保存規則;不再適用的舊值應依資料政策清理。用「先選A並填寫、再改B、再送出」驗證前後端一致,並測試鍵盤焦點和效能。

切換選項也要清理舊值:條件切換、顯示與驗證、保存資料
條件欄位不只控制顯示;改選後還要同步驗證與清理不適用的舊值,避免訂單留下錯誤資料。

把結帳拆成多步驟,真的會提升轉換嗎

這是結帳客製化裡被問最多的問題之一:到底要用單頁結帳,還是拆成兩步、三步甚至四步?市面上的外掛兩種都推,而且都說自己能提升轉換,搞得店主無所適從。

單頁與多步驟都可以做出可用的結帳流程。Baymard研究強調輸入欄位及操作負擔,不能簡化成「B2C一律以單頁為佳」或只看步驟數。比較兩種形式時,應一起測試必要輸入、總價呈現、錯誤修正與返回前一步後的資料保留。

是否拆步驟要依任務與使用者測試,不以手機滑動一兩次或四五次作通用門檻。分步驟時應說明目前位置與剩餘流程,讓顧客容易查看摘要;需等待地址才能算出的運費與稅額要揭露條件,並在確認訂單前呈現完整總額。

分步結帳要保留前一步資料:填寫資料、查看摘要、返回修改、確認總額
多步驟結帳要讓顧客查看摘要、返回修正,並保留已填資料。

折價券欄位也是常見的糾結點。要不要在結帳頁放優惠碼輸入框?放,會提醒消費者「我有沒有碼可以找」,然後跳出去找碼、找到忘記回來;不放,老客戶用不了累積的折扣。折衷做法是:放,但折疊起來,預設收合、點了才展開,降低對一般消費者的視覺干擾。優惠券本身的設定邏輯是另一門學問,可以搭配〈優惠券設定教學〉一起看。

談到欄位的先後順序,還有一個小但有效的方法:把最容易填、最少摩擦的欄位排在最前面。姓名、email 這類消費者倒背如流的欄位排在前頭,能讓他一進結帳頁就快速完成幾格、建立「我正在推進」的心理慣性;地址、電話這類要想一下的欄位往後放。這個順序原則看似微不足道,順應的卻是人性。人一旦開始填表、投入了時間,就比較願意把它填完;反過來,把最難的欄位擺在最前面,消費者第一眼就覺得麻煩,放棄的機率自然就高。用 filter 調欄位順序時,記得把這個心理因素一起考慮進去,不要只照資料庫欄位的預設順序排。

欄位之外的兩個隱形殺手:速度與行動體驗

把欄位調好之後,還有兩個東西不動欄位、卻會決定結帳頁成敗,那就是載入速度與行動裝置體驗。這兩個常常被歸類到「網站優化」而跟結帳客製化分開談,但實務上它們就是結帳頁的一部分。

先談速度。Google 的 web.dev 資源反覆強調頁面速度對使用者留存與轉換的影響,延遲可能影響使用者體驗,但不應把特定研究的秒數效應套用到每個結帳頁。結帳頁尤其敏感,因為消費者來到這裡時已經處於「準備掏錢」的高意圖狀態,任何延遲都會被放大成焦慮。WooCommerce 的結帳頁預設載入了不少 JavaScript 與金流腳本,如果你又疊了好幾支結帳客製化外掛,速度很容易爆開。實務建議是:結帳頁要獨立做快取設定,很多全站快取外掛會把結帳頁排除掉,確認這一點;同時用〈網站速度的實戰拆解〉裡的方法,把 Core Web Vitals 的 LCP(最大內容繪製)與 INP(互動到下一次繪製)壓在綠區。挑快取外掛時可以參考〈WordPress 快取外掛實測〉,挑一款能精準控制結帳頁不被錯誤快取的。

再談行動體驗。Baymard 的行動結帳研究(2026 年)指出,手機結帳的放棄率通常高於桌機,原因包含欄位太小難點、鍵盤擋住輸入框、輸入類型不對導致要重複切換鍵盤。這些問題前面 filter 路線的 inputmode 範例就是在處理。完整的行動結帳清單至少要做到:每個輸入欄位都設定正確的 autocomplete 屬性(姓名、email、電話、地址各有對應值,瀏覽器才能自動帶入)、數字類欄位用 numeric inputmode 叫數字鍵盤、email 欄位叫出有 @ 的鍵盤、欄位之間的 tab 順序符合視覺順序。這些細節單獨看都小,疊起來就是手機用戶能不能順利結帳的關鍵。

手機填寫需要三種支援:自動填入、合適鍵盤、焦點順序
自動填入協助帶入資料,輸入模式提示合適鍵盤,焦點順序則影響連續操作。

如果網站需要獨立的快速結帳入口,例如登入後帶入上次收件資訊,可評估整合社群登入,減少老客戶重複填寫資料的摩擦。若海外客群常用 PayPal,也可參考WooCommerce 串接 PayPal 的流程評估是否加入快速付款按鈕。兩者分別減少輸入次數與付款步驟,仍應用實際結帳資料驗證效果。

改完之後怎麼驗證:用數據確認改對了

結帳客製化最忌諱「改完就上線、上線就放著」。你以為刪掉電話欄位是幫消費者省事,結果可能是某個出貨流程少了電話導致無法簡訊通知,反而客服電話接到爆。任何結帳頁的更動,都應該搭配一套驗證流程。

基本的驗證有兩層。第一層是功能驗證:改完之後,自己用至少兩種瀏覽器、桌機與手機各走一次完整結帳,確認每一個欄位都能正確送出、金物流都能正確觸發、訂單後台能看到所有自訂欄位的值。這一步聽起來基本,但實務上太多站改完欄位就直接上線,結果統編欄位根本沒進資料庫,開了發票卻沒有統編可以開。第二層是數據驗證:改動上線後,確認GA4事件正確並依樣本量與業務週期持續觀察,比較改動前後的放棄率變化,或用 A/B 測試工具把新舊版本同時跑,讓數據告訴你哪個版本真的贏。

功能可用與成效改善分開驗證:完整結帳、資料核對、事件驗證、持續觀察
先確認結帳與訂單資料正確,再驗證分析事件並觀察改動後的表現。

如果你想做更細的觀察,可以在工具支援遮罩、同意與資料排除的前提下觀察結帳熱圖;不得收錄卡號、密碼、地址、統編等敏感輸入。可看匿名的游標與滑動行為,找出哪一屏停留最久、哪一個欄位被反覆點了又清空。這些都是欄位設計有問題的訊號。沒有預算上付費工具也沒關係,至少把 GA4 漏斗與「自己手動走一遍」這兩件事做好,就能避開絕大多數的客製化災難。

想做更嚴謹的驗證,A/B 測試是黃金標準,但前提是流量要夠。結帳頁的轉換率要測出統計顯著的差異,通常需要為數可觀的完成訂單樣本,這對中小電商是個門檻。如果你的單月訂單量不夠大,與其硬做 A/B 測試得到一堆噪音資料,不如先把 GA4 漏斗、熱圖、與手動走查這三件事做紮實,每次只改一個變數、觀察一個完整週期,再用前後對比判斷方向。改動要小步推進,一次只動一個欄位或一個規則,這樣當轉換率出現變化時,較容易定位問題,但前後比較仍可能受流量、季節或活動干擾,不能直接認定因果。一次改五個地方、然後看到轉換率上升,你根本不知道是哪一個有效、哪一個其實在拖後腿,等於白改。

前後差異仍可能受到干擾:欄位改動、流量來源、季節活動、觀察結果
欄位調整、流量來源及季節活動都可能影響觀察到的結帳結果。

還有一件事別忘:結帳頁任何更動上線前,請務必先備份。這不是官腔,結帳頁壞掉等於全店停止接單,是最高優先級的事故。備份工具的選擇可以參考〈WordPress 備份外掛推薦〉,挑一款能定時備份又能一鍵還原的。這個習慣養起來,你才有底氣放心去改結帳頁。

三個結帳頁最該避免的錯

這節是實務上的底線清單,三個原則,每一條都是實務上常見的坑。

第一,先評估是否開放訪客結帳。強制註冊會增加結帳步驟,可能提高放棄率;若法規、訂閱、會員權益或風險控管沒有要求,可先開放訪客結帳,或在付款完成後邀請顧客建立帳號,再用結帳完成率與回購資料比較不同方案。付款完成後的頁面還有另一門功課:感謝頁與訂單狀態頁上的商品推薦與回訪折扣,感謝頁與訂單狀態頁的推薦設計專門處理結帳後這一段。

第二,絕不隱藏總金額。已知金額與計價條件應及早顯示;需要地址才能計算的運費或稅額,要說明待計算原因,並在提交訂單前明確列出完整總額。把總價藏到最後一步才揭曉,消費者會瞬間失去信任、懷疑你是不是在偷加費用,然後直接跳出。稅額是否內含及如何開立發票,要依商品、商家稅務身分與適用規定設定;畫面上的呈現務必一致,〈稅金設定教學〉有完整的處理方法。

完整總額要在送出前確認:已知金額、補齊地址、計算費用、確認總額
先呈現已知金額與計價條件,補齊地址後計算相關費用,再讓顧客確認完整總額。

第三,絕不留無意義的必填欄位。「地址第二行」「公司名稱」「生日」這些欄位,對大多數 B2C 品類都是多餘的,卻常被留成必填。每多一個必填欄位,就是在替猶豫的消費者多找一個放棄的理由。原則是:除非金物流、發票、出貨真的需要這個值,否則一律改成選填或直接移除。要不要保留生日欄位給日後做生日優惠?可以,但設成選填,不要擋在結帳路徑上。

這三條看起來是常識,但每次做結帳體檢,幾乎都還能在受檢的站上找到至少一條。可見它們有多容易被忽略。把這三條當成結帳客製化的紅線,任何更動都不能違反,可減少部分常見摩擦,但無法保證轉換率下限。

改一個欄位,下游四個地方會跟著連動

結帳欄位不是獨立物件,它跟訂單的後續處理緊緊綁在一起。每改一個欄位,至少要回頭檢查四個下游環節:訂單後台是否正確顯示該欄位的值、訂單匯出(Excel 或 CSV)的欄位映射是否包含該欄位、消費者收到的訂單確認信與出貨通知是否對應顯示該欄位內容、金流與物流外掛是否仍能正確讀取該欄位。其中訂單匯出與通知信件最常被漏看,自訂欄位若沒在匯出設定裡手動加入,批次出貨與對帳時就會缺欄位;信件模板沒對應,消費者填了統編卻在確認信裡找不到,事後還要客服補開。這也是前述驗證流程不能只看前端顯示的原因,跑完一筆訂單、確認整條鏈路都通,才算真的改完。

新欄位要接到下游流程:訂單保存、匯出與通知、金物流讀取
新增欄位後,要確認資料能保存,並在訂單後台、匯出、通知與金物流整合中正確使用。

結帳客製化的典型出錯情境與排查

結帳客製化有幾個反覆出現的典型故障,值得先記在心裡。結帳按鈕按了沒反應,常是某個被設成必填的欄位同時被條件邏輯隱藏了,系統仍要求它必填、消費者卻看不到,這種衝突只在特定路徑出現,測試時務必把個人消費者與公司採購兩條路徑都跑一遍才能抓到。統編沒有顯示時,先區分資料未保存、未讀取及後台未呈現三種情況;超商取貨選不出門市,常是縣市下拉的回傳值與物流外掛預期的格式不一致;訂單匯出檔少了新欄位,常是匯出外掛的映射沒更新;欄位標籤顯示英文,常是翻譯檔沒覆蓋到自訂欄位。把這幾個情境當成除錯起點,能省下大量盲目翻找的時間。

資料不見要分層排查:資料保存、程式讀取、畫面呈現
欄位未出現在後台時,分別檢查資料是否保存、是否被讀取,以及是否有呈現設定。

欄位類型選擇與台灣格式驗證

欄位開始填之前,合適的欄位型態可減少部分輸入錯誤。原則是:能用選的就不要讓消費者用打的。選項明確且有限的欄位(發票類型、配送時段、縣市)用下拉或單選,能提供標準化輸入,也減少後續處理變體資料的麻煩;核取方塊適用於是否為公司採購、是否需要禮品包裝這類是非題;長篇說明才用多行文字。格式驗證方面,台灣手機號碼是 09 開頭共十碼、統一編號是八碼數字,在欄位編輯器或 filter 裡加上輸入類型與長度限制,能擋掉消費者把公司名稱填進統編欄位、或不符合實際服務格式的輸入;帶國碼的合法電話不能一概當錯誤。但格式限制別過度收緊,否則會誤擋合法輸入,先觀察實際填寫狀況再逐步調整會更穩。

鍵盤提示不等於資料驗證:輸入介面、格式檢查、服務規則
輸入介面協助填寫,格式檢查與服務規則則確認資料是否適用。

動手清單:下一步該做什麼

看完上面這些,你可能會覺得要做的很多。別慌,結帳客製化不是一次做完整件事,而是一輪一輪地優化。下面是建議的動手順序,依商店需求逐項處理,再以完整測試訂單與使用者資料判斷成效。

  1. 先體檢,不動手。用前面那張體檢表走一遍自己的結帳頁,記錄欄位總數、必填數量、行動填寫時間、以及任何卡頓點。產出一份具體的待辦清單。
  2. 處理台灣在地欄位。把統一編號、縣市鄉鎮下拉、超商取貨門市這幾個在地需求先補齊,這是台灣消費者最直接的痛點,回報也最快。
  3. 選一條客製化路線。先確認Checkout Block或Classic。區塊版優先用核心設定與相容擴充;Classic才評估Checkout Field Editor或woocommerce_checkout_fields。把標籤、必填、寬度、inputmode 這幾項先調到位。
  4. 清掉無意義欄位。把不影響金物流發票出貨的欄位改成選填或移除,特別是公司名稱、地址第二行、生日這幾個慣犯。
  5. 檢查速度與行動體驗。跑一次 Core Web Vitals,確認結帳頁沒有被錯誤快取;用手機走一遍,檢查每個欄位的鍵盤類型與 autocomplete 屬性。
  6. 上線後追蹤數據。確認事件覆蓋後追蹤結帳與訂單資料;觀測期間依樣本量與業務週期,沒有下降也不等於改錯,需排除其他影響。
  7. 建立備份與回滾習慣。未來任何結帳頁更動,都先備份、小步上線、準備好回滾方案。結帳頁是全店心臟,經不起大意。

結帳表單客製化,換句話說,就是一件「替消費者把掏錢這件事做到最少摩擦」的工作。它不需要多炫的技術,需要的是對使用者的觀察、對資料的敏感度,以及對自己每一個更動的負責任態度。它也不是一次到位的工作,而是隨著你的客層、品類、金物流組合演進,持續回頭微調的過程。今年管用的欄位配置,明年也許因為新增了海外訂單或公司客戶就要再調一次,把這件事想成一座要長期經營的園地,別當成一次大翻修就完工的工程。你每砍掉一個多餘的欄位、每修對一個鍵盤類型,都是在替你的店多留住一筆本來會跑掉的訂單。從今天開始,打開你的結帳頁,自己用手機走一遍,那會是你這輪優化最有價值的第一步。

常見問題

結帳客製化一定要外掛嗎?
不一定。Checkout Block 有核心欄位設定與 Additional Checkout Fields API;Classic Checkout 可用 filter 與相關鉤子。依所用結帳版本與需求選擇。
官方 Checkout Field Editor 支援 Checkout Block 嗎?
目前該擴充文件標示適用 legacy checkout。其他同名外掛由不同作者提供,需各自確認方案與 Blocks 相容性。
隱藏欄位還需要驗證嗎?
需要。必填與保存規則應在伺服器端依條件判斷,並清理不適用的舊值;只用 CSS 或 JavaScript 隱藏並不足夠。
自訂欄位沒有出現在後台怎麼查?
分別檢查送出的資料、驗證結果、是否保存及後台顯示,再測試通知信、匯出與金物流讀取。
電子發票欄位可以自己新增嗎?
可以自訂,但必須完整對接發票服務的驗證、開立、回寫與錯誤處理。多數商店可先評估相容發票外掛;一般金物流外掛不一定包含電子發票。

操作步驟

  1. 辨認結帳介面並盤點欄位確認Checkout Block或Classic Checkout,再列出必需、可選及缺少的資料,核對金流、物流、發票與其他依賴。
  2. 使用相容的欄位設定區塊版先檢查核心設定、Additional Checkout Fields API或相容擴充;Classic可用欄位filter。隱藏、必填與保存規則必須一致。
  3. 補齊在地功能發票可用相容外掛或完整API整合;縣市連動與選店需配合實際物流。依需求設定統編條件,不強制使用單一廠商。
  4. 驗證完整資料流程用訪客與會員在桌機、手機測試,核對後台保存、通知、匯出及金物流讀取,並檢查不適用的舊值是否清理。

Whoops 巫普斯科技有限公司

專注技術 SEO、GEO/AEO 與 AI 搜尋實務。本站文章以可驗證資料、公開來源與實作觀察整理而成。

關於 Whoops編輯守則服務內容

想把這篇的方法用在自己的站上?

SEO 健檢、GEO/AEO 引用優化、網頁設計諮詢——把文章裡的方法落地到你的網站。