Wordpress

WooCommerce 優惠券設定:折扣類型、免運費與使用限制一次搞懂

一張優惠券,其實比較像一把鑰匙:它能開哪一扇門、能開幾次、誰有資格拿去用,都得在打造這把鑰匙的當下就設清楚,不是等上線後才回頭補救。做 WooCommerce 優惠券設定時最常出的狀況,像是折扣類型選錯、免運費勾了卻沒生效、金額門檻算法跟預期不一樣,多半不是系統本身有問題,而是後台那一長串欄位裡,有幾個彼此牽動、卻沒寫在畫面上的規則沒摸清楚。

WooCommerce 優惠券設定分成「一般」「使用限制」「使用上限」三個分頁,每個分頁各自管一種東西:折扣怎麼算、誰能用、能用幾次。欄位不少,但真正容易出錯的沒有幾個,像是免運費勾選其實只是授權、不是自動生效,或是商品欄位留空代表全站適用而不是限制。搞懂這幾個關鍵點,設定起來會比第一次摸索快很多。

WooCommerce 優惠券的一般、使用限制、使用上限三個分頁,分別管折扣怎麼算、誰能用、能用幾次
一般管折扣算法、使用限制管適用範圍、使用上限管使用次數,設定前先分清楚欄位落在哪一頁。

優惠券功能,先確認有沒有被關掉

做 WooCommerce 優惠券設定的第一步,其實不是打開後台直接新增優惠券,而是先確認這個功能有沒有被打開。「啟用優惠券代碼」(Enable the use of coupon codes)這個設定,WooCommerce 本身其實預設是勾選啟用的,但如果先前有人手動關掉、或用了精簡外掛拿掉這項功能,後台就會找不到「優惠券」選單。要確認或重新打開它,到 WooCommerce > 設定 > 一般,找到這個勾選框,確認有勾起來,沒勾的話勾起來後記得按儲存。這一步沒勾,後台就完全看不到優惠券的管理介面,前台結帳頁面也不會冒出輸入優惠券代碼的欄位,顧客手上就算真的拿到一組代碼,也沒有地方可以輸入。

在 WooCommerce 設定的一般分頁勾選開放使用折價券代碼,後台才會出現優惠券選單、前台結帳才有輸入欄位
這個勾選框沒打勾,後台看不到優惠券選單、前台結帳也不會出現輸入代碼的地方。

啟用之後,新增優惠券的入口在後台左側選單的「行銷」(Marketing)底下,點進「優惠券」(Coupons),再按「新增優惠券」就能開始設定。進到編輯畫面,最上方是「優惠券代碼」欄位,這一串字元就是顧客結帳時要輸入的東西,可以用英文字母、數字,再加上少數幾個特殊符號,像是 &、$、-、@ 這幾種都可以用,而且不分大小寫,SAVE10 跟 save10 輸進去效果完全一樣。代碼底下還有一格「描述」,這一欄不會出現在前台任何地方,純粹留給後台管理者自己看,優惠券一多,光看代碼很難記得每張券對應哪一波活動、有效期間是什麼時候、給誰用的,描述欄位就是拿來備註這些資訊的地方,沒填也不影響優惠券運作,但券數一多沒填就容易搞混。

優惠券編輯畫面的一般分頁,可設定折扣種類、折扣金額、允許免運費與到期日
一般分頁決定這張券怎麼算:選折扣類型、填金額、要不要授權免運,再設到期日。

優惠券代碼命名,人工填寫優於隨機產生

代碼欄位旁邊有個按鈕,點下去系統會直接產生一組隨機代碼,省下自己想代碼的麻煩,用起來確實方便。不過這組隨機代碼本身不帶任何語意,看到一串亂碼完全猜不出它是哪一檔活動用的,事後要追蹤成效,得回頭翻描述欄位或後台報表才查得出對應關係。

如果這張優惠券是要對外發放、要顧客記得住,或是之後要拆解成效來看,手動輸入代碼會比較實用,把活動名稱、通路或發放對象直接寫進代碼本身,例如依通路命名或依活動命名,代碼跟描述欄位搭配著用,事後單看代碼就知道這張券是哪裡發出去的、給誰用的,不必再回頭查其他資料。相對地,如果只是內部測試,或用途單純到不需要追蹤來源,隨機產生的代碼也完全合法有效,兩種方式都能正常運作,差別只在於後續管理方不方便。

百分比、固定購物車、固定商品,三種折扣算法不同

WooCommerce 核心版本只內建三種折扣類型,設定畫面的下拉選單也確實只列得出這三個選項:百分比折扣、固定購物車折扣、固定商品折扣。三種算法差異不小,選錯類型最常見的後果,就是顧客結帳時看到的折扣金額跟原本設想的完全不一樣。

百分比折扣是依購物車小計(或指定商品的價格)乘上設定的百分比去算。舉個例子,購物車裡有 3 件 T 恤,每件 $20,合計 $60,套用 10% 的優惠券,折抵的金額就是 $6。固定購物車折扣則是從整張訂單總額直接扣掉一個固定數值,不管購物車裡有幾件商品,折的金額都不會變,同樣是 $60 的購物車,套用 $10 的固定購物車折扣,折的就是 $10,僅此一次。固定商品折扣的算法又不同,它套用在購物車內每一件符合資格的商品上,每一件各自扣一次固定金額,同樣 3 件 $20 的 T 恤,套用「每件折 $10」的優惠券,總共會折掉 $30(3 件乘以 $10)。三種類型設定折扣金額時都只填數字,不加貨幣符號也不加百分比符號,要設 10% 折扣就直接填 10,這一點三種類型通用。

同一個 60 美元購物車套三種折扣類型,百分比折 6、固定購物車折 10、固定商品折 30,結果各不相同
同一個 $60 購物車,百分比 10% 折 $6、固定購物車折 $10、固定商品每件折 $10 共折 $30。

固定購物車折扣還有一個容易被忽略的計算細節。WooCommerce 不是等結帳時才把折扣從訂單總額扣一次就結束,而是會在計算稅金之前,先把這筆折扣拆分套用到購物車內每一項商品的價格上,目的是避免稅金計算時因為四捨五入產生誤差,官方文件特別註明這個行為在固定購物車折扣時最明顯。也就是說,實際分攤到單一商品上的折扣金額,會依購物車內的商品件數與單價組合而變動,同一張優惠券套用在不同的購物車組合,分攤結果不會完全一樣,這部分不需要自己去換算,交給系統處理即可。

除了這三種,核心版本沒有更多花樣,買一送一、買 A 送 B、依消費金額分級給不同折扣這類玩法,都不是 WooCommerce 內建能設定出來的折扣類型,想做這些得另外裝外掛才有辦法。

免運費勾選只是開關,運送區域要一起設定

「允許免運費」這個勾選框,是優惠券設定裡最容易被誤解的欄位之一。不少人以為勾了這一格,顧客用這張優惠券結帳就會自動變成免運,其實這個勾選只是「授權」,代表這張優惠券有資格觸發免運費,實際上要不要真的免運、免運費適用哪個地區,仍然要回到「運送」設定裡另外處理,兩邊都設定好才會連動生效。

WooCommerce 的運送區域可以替「免運費」這個運送方式設定生效條件,其中一個選項就是「需要有效的免運費優惠券」,意思是顧客要使用一張有開啟免運費功能的優惠券,才會出現免運費這個運送選項。要讓這條路徑生效,得到 WooCommerce > 設定 > 運送,找到要開放免運的那個運送區域,把裡面的「免運費」方式的需求條件設定成「需要有效的免運費優惠券」,同時優惠券本身也要在「一般」分頁勾選「允許免運費」,兩邊都設定,免運費才會真的出現在結帳頁面;只勾了優惠券那一邊、運送區域沒有對應設定,顧客結帳時照樣看不到免運費選項。

如果目的單純只是想做一張純免運費、不折金額的優惠券,折扣金額欄位可以直接填 0,折扣類型選哪一種都不影響結果,因為折扣金額只影響價格折抵這一塊,免運費是完全獨立的另一套機制,重點只在有沒有勾選「允許免運費」這一格而已。

使用限制分頁的金額門檻與商品範圍

「使用限制」這個分頁管的是誰能用、能用在什麼商品上,跟接下來要講的「能用幾次」是兩件不同的事,這個分頁裡的每個欄位框住的都是範圍,不是次數。這一頁欄位不少,但邏輯其實一致,多數欄位留空就代表不限制,不是留空就等於這張優惠券沒作用。

優惠券的使用限制分頁,設定最低消費門檻、商品與分類範圍、排除特價與限單獨使用等條件
使用限制分頁框的是適用範圍,商品欄位全部留空代表這張券全站通用,不是不能用。

最低與最高消費門檻的計算基礎

最低消費、最高消費這兩個欄位,管的是啟用這張優惠券所需要的購物車金額區間。官方文件說明,「最低消費」設定的是使用優惠券所需要的最低小計,而 WooCommerce 判斷是否達標時,用的是購物車小計加上稅金的總和;「最高消費」則相反,設定的是允許使用這張優惠券的訂單金額上限,超過這個金額,優惠券就不能再套用。

這裡有個小插曲能幫助理解這條判斷邏輯。WooCommerce 官方的問題追蹤紀錄裡,曾有人回報某個舊版本「最低消費」的判斷沒有把稅金確實納入計算,導致購物車小計本身還沒達標,但加上稅金後其實已經超過門檻,系統卻仍判定優惠券不能使用;這個問題後來已經修正並收錄進官方版本更新,現行版本的判斷邏輯應如前段所述,把稅金一併納入計算。如果最低消費門檻設定得剛好貼近某個金額,設定完仍建議實際跑一次測試訂單,確認判定結果跟預期一致,會比純粹相信欄位說明更保險。

留空商品欄位等於套用到全站商品

使用限制分頁裡還有 4 個管商品範圍的欄位:商品、排除商品、商品分類、排除分類。「商品」欄位指定之後,只有清單裡列出的那些商品能用這張優惠券;「排除商品」則相反,清單裡的商品一律不能用。「商品分類」是把範圍拉大到整個分類,指定分類底下的所有商品都能用;「排除分類」同樣是反向操作,指定分類底下的商品全部不能用。

最容易被忽略的一點是,這 4 個欄位如果全部留空,並不代表這張優惠券哪裡都不能用,恰恰相反,留空代表優惠券適用於店內所有商品。不少人設定優惠券時,因為沒有特別要限定範圍,就把這四格全部跳過不填,結果不是優惠券失效,而是這張優惠券變成全站通用,如果本意是只想限定在某幾樣商品,這一步就得記得回來填。

限單獨使用與排除特價商品,避免折扣疊加

這兩個勾選框都是用來防止折扣疊加、避免利潤被壓得太薄。「限單獨使用」勾起來之後,這張優惠券就不能跟其他優惠券合併使用在同一張訂單上,顧客一次只能用這一張,適合用在不希望顧客把多張優惠券湊在一起用的情境,比如折扣幅度較大的活動券。

「排除特價商品」則是處理另一種疊加,勾起來之後,已經在特價或促銷中的商品就不適用這張優惠券,避免商品本身已經打折,優惠券又疊上去再折一次,兩層折扣疊在一起,最後可能變成虧本出貨。想同時進行促銷活動又發優惠券的店家,這一格特別值得留意。

允許的電子郵件與萬用字元比對

「允許的電子郵件」是把優惠券鎖給特定顧客用的欄位,運作方式是拿顧客結帳時填寫的帳單 Email 去比對這個清單,只有名單內的信箱才能成功套用這張優惠券,適合做會員專屬折扣,或是針對某一批活動名單發放。

這個欄位還支援萬用字元,用星號比對一整批網域,不必把每個信箱都手動列出來,例如填入 *@gmail.com,所有 Gmail 信箱的顧客都能使用這張優惠券。這個寫法在批次發給某個社群、某個公司網域的顧客時特別好用,不用逐一輸入完整信箱。

使用上限分頁的三種次數限制

「使用上限」這個分頁換了一個維度,前面「使用限制」管的是範圍,這裡管的是次數,而且分頁裡的三個欄位各自管不同層級,一個管整張優惠券全店總共能用幾次,一個管單一顧客能用幾次,還有一個管這張券最多能套用到幾件商品上。三者互不取代,可以同時搭配設定。

優惠券的使用上限分頁,分別設定每張券總次數、每人使用次數與限制套用商品件數
把每張券總上限設 200、每人限用 1 次,等於最多 200 位顧客各用一次。

每張優惠券總次數與每人限用次數不同

這兩個欄位最容易被搞混,但管的其實是完全不同的層級。「每張優惠券的使用上限」設定的是這張優惠券在全店範圍內,總共可以被使用幾次,一旦達到這個總次數,優惠券就自動失效,不管是誰要用都用不了。「每一使用者的使用上限」則是限制單一顧客能用這張優惠券的次數,用來防止同一個人重複領用。

這兩個欄位可以同時設定,而且多數需要控制發放成本的活動都會兩個一起設。舉例來說,把總上限設成 200、每人限用 1 次,等於這張優惠券最多能讓 200 個不同的顧客各用一次,既守住了整體的折扣成本,也確保每個人拿到的機會是公平的,不會被少數人一次用光。

限制項目使用上限,只在指定商品時才生效

「限制項目使用上限」是設定這張優惠券最多能套用到購物車內幾件商品,留空的話就會套用到購物車裡所有符合資格的商品。這一格有個容易踩的條件,官方文件明確註明,這個欄位只有在「使用限制」分頁裡的「商品」欄位已經指定了具體商品時才會生效。

換句話說,如果只在這裡填了數字,卻沒有回到「使用限制」分頁指定商品範圍,這個限制形同虛設,不會有任何作用。要讓「限制項目使用上限」真的發揮效果,得記得兩個分頁的欄位一起設定,先在「使用限制」指定要套用的商品,再回到「使用上限」填入件數上限,兩邊都填,這個限制才會真的生效。

到期日與生效日,不是同一個欄位

優惠券的到期日跟生效日,是兩個不一樣的概念。WooCommerce 核心的優惠券資料裡,原生就有一個「到期日」欄位,設定之後過了那個日期,優惠券自動失效、無法再被使用,這是唯一原生存在的日期欄位。

但反過來,核心版本並沒有獨立的「生效日」或「開始日期」欄位。如果想讓優惠券還沒到某個日期之前不能用,做法是利用優惠券本身其實也是一篇 WordPress 文章這個特性,在編輯畫面右側的「發佈」設定區塊,把發佈時間排到未來的某個時間點。優惠券在排定的時間之前不會被建立成有效狀態,等排程時間一到,才會正式生效可以使用。這個做法跟「到期日」欄位運作邏輯不同,一個是原生欄位直接設定,一個是借用發佈排程機制,別把兩者搞混。

設定完成之後,還要確認優惠券真的生效

優惠券的欄位設定完、按下發佈,不代表這張優惠券就一定會照預期運作,欄位彼此牽動的地方不少,正式對外發放之前,花幾分鐘在前台實際跑一次流程,會比事後收到顧客回報用不了才回頭排查划算得多。

前台測試流程,確認折扣正確套用到訂單

顧客實際使用優惠券的動作,是在購物車或結帳頁面點選「加入優惠券」的連結,輸入代碼之後按下「套用」,折扣就會反映在訂單金額上。店家要驗證自己設定的優惠券是否照預期運作,可以照同樣的流程跑一遍:把符合資格的商品加進購物車,進到結帳頁面,輸入代碼套用,確認折扣金額,以及有勾選免運費的話運費是否正確顯示,最後的訂單總計是不是跟原本設想的一致。

如果優惠券沒辦法套用,前台會直接顯示錯誤訊息,說明無法套用的原因,例如已經過期。這個測試不只適用於前台自助結帳,店家管理者也可以在後台手動建立的訂單裡加優惠券,在訂單明細下方點選「套用優惠券」按鈕,同樣的驗證邏輯也適用在還沒付款的顧客訂單上,需要手動幫顧客加優惠券時可以用這個入口。

優惠券無法套用的六個常見原因

如果測試時優惠券套用失敗,或是顧客回報用不了,按照系統實際判斷優惠券是否有效的順序去排查,通常能很快找到問題出在哪裡。

  1. 優惠券功能本身沒有開啟:最根本、也最容易被漏掉的一項,WooCommerce > 設定 > 一般裡的那個勾選框如果沒勾,結帳頁面根本不會出現優惠券輸入欄位,不管優惠券本身設定得多完整都沒用。
  2. 金額沒有落在門檻範圍內:購物車小計(含稅)沒有達到「最低消費」門檻,或者反過來超過了「最高消費」上限。
  3. 商品或分類被排除在外:商品被列在「排除商品」「排除分類」裡,或者根本不在限定的「商品」「商品分類」範圍內。
  4. 特價商品跟排除特價商品衝突:商品正在特價,但優惠券又勾了「排除特價商品」,這種組合下優惠券自然不會套用到那件商品上。
  5. 時間還沒到或已經過期:可能已經超過「到期日」,或者還沒到用發佈排程設定的生效時間。
  6. 次數已經用完:該顧客可能已經達到「每一使用者的使用上限」,或者優惠券整體已經達到「每張優惠券的使用上限」。

把這六項按順序過一次,多數導致無法套用的原因都能很快確認出來。

優惠券設定看起來欄位很多,但拆開來看,其實就是怎麼開、怎麼算、給誰用、能用幾次這幾件事分別展開而已。真正容易出錯的地方通常不是複雜的欄位,而是幾個容易被誤解的行為,像是免運費勾選只是授權不是自動生效、商品欄位留空代表全站適用、次數限制欄位彼此需要搭配才會生效。把 WooCommerce 優惠券設定的這幾個關鍵點摸清楚,之後不管是要做限量折扣、會員專屬優惠,還是單純的免運活動,設定起來都會比第一次摸索這些規則時快上不少。設定完成、正式對外發放之前,花幾分鐘照前台流程實際測試一次,是確保這把鑰匙真的能開對門、不會被複製到不該用的地方最簡單的做法。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

優惠券勾了免運費,為何結帳沒生效?

免運費勾選只是「授權」這張優惠券有資格觸發免運,實際要不要免運還得回到運送設定,把對應運送區域的免運費方式改成「需要有效的免運費優惠券」,兩邊都設定才會連動生效。

優惠券沒有指定商品,適用範圍會變成什麼?

使用限制分頁的商品、排除商品、商品分類、排除分類這 4 個欄位如果全部留空,並不代表優惠券不能用,恰恰相反,留空代表這張券適用於店內所有商品,想限定範圍就得自己填進去。

優惠券的最低消費門檻,含稅嗎?

算含稅金額,WooCommerce 文件說明「最低消費」設定的是使用優惠券所需的最低小計,判斷是否達標時用的是購物車小計加上稅金的總和,不是單看未稅小計。

優惠券可以跟正在特價的商品一起用嗎?

要看有沒有勾選「排除特價商品」。勾起來之後,正在特價或促銷中的商品就不適用這張優惠券,用意是避免商品已經打折、優惠券又疊上去再折一次,兩層折扣疊加變成虧本出貨。

優惠券可以設定幾天後才開始生效嗎?

可以,做法是利用優惠券本身也是一篇 WordPress 文章的特性,在編輯畫面右側「發佈」設定裡把發佈時間排到未來,排定時間之前優惠券不會生效,核心版本沒有獨立的「生效日」欄位可以直接設定。

資料來源
  1. Coupon Management — WooCommerce
  2. Free Shipping — WooCommerce
  3. Coupon "Minimum Spend" doesn't account for taxes — WooCommerce