WooCommerce 稅金設定:商品稅率、運費與發票稅
WooCommerce 稅金設定完整教學:從啟用稅金、新增 TW 5.0000 標準稅率、運費設為應課稅,到含稅價與外加稅判斷、電子發票串接與月結對帳,帶你避開顯示邏輯前後不一與結帳顯示 0% 的常見錯誤。
作者:褚崇名(Sliven)
想像一下這個畫面:你的 WooCommerce 網站開張三個月,訂單穩定流入,客服信箱卻突然湧進同一句話:「請問可以打統編嗎?」「發票要開公司抬頭喔」「我需要二聯式還是三聯式?」。你打開 WooCommerce 後台的「稅金(Taxes)」頁,卻只看見稅率表、運費課稅、含稅價顯示這幾個欄位,完全找不到「統一編號」與「電子發票」的影子。這時你才明白:WooCommerce 的稅金設定,跟台灣店家心裡想的那個「稅」,中間隔了一整層。
根據 W3Techs 截至 2026 年中的統計,WooCommerce 是全球市占率最高的電商系統,這也意味著它的設定邏輯是為「全球通用」而設計,並沒有為任何單一國家的稅制量身打造。WooCommerce 內建引擎能處理的是「商品稅率」與「運費課稅」這兩層全球通用邏輯;至於台灣法規要求的統一發票與統一編號,屬於發票層,core 不管,要靠綠界電子發票或 RY WooCommerce Tools 這類在地外掛接上去。這篇會把這三層一次拆清楚,最後給你一張報稅季前可以直接照做的檢查清單。
三層稅金:商品稅、運費稅、發票稅,WooCommerce 到底管哪一段?
在動任何設定之前,先把「稅」這個字拆成三層。很多人之所以設定完還是一頭霧水,是因為把三層混在一起談。換個方式想:你問的「稅」到底是下面哪一層,決定了你要去哪個地方設定。
| 層次 | 處理什麼 | 誰負責 | 在 WooCommerce 哪裡設定 |
|---|---|---|---|
| 商品稅 | 每件商品要不要課稅、課多少 | WooCommerce core | WooCommerce → 設定 → 稅金 → 稅率表 |
| 運費稅 | 運費這筆附加費用要不要併入課稅 | WooCommerce core | 稅率表各列的「運送(Shipping)」勾選與稅金選項的「運費稅率等級」 |
| 發票稅 | 營業稅申報、統編開立、電子發票上傳 | 在地外掛(綠界 / RY Tools) | 外掛設定頁,不在 core 的「稅金」頁裡 |
一句話總結這三層的分工:core 算「要課多少」,發票外掛管「怎麼報出去」。兩邊各自獨立,卻又必須算出同一個數字。
把這張表記在心裡,後面所有設定都不會迷路。商品稅與運費稅這兩層,WooCommerce 用的是同一套「稅率表 + 稅率等級(Tax Class)+ 國家代碼」的引擎,邏輯全球一致;發票這一層則完全是台灣特有,core 一行程式都沒幫你寫。很多人卡在「我明明裝了發票外掛,為什麼稅額還是錯的」,答案十之八九是 core 那兩層沒設好,發票外掛只是在讀錯誤的數字而已。想完整搞定金物流與稅務的串接,建議搭配 WooCommerce 金流物流設定全攻略 一起看,會更清楚整條鏈路。
啟用前先回答的四個問題
WooCommerce 預設把整個稅金頁面藏起來,你要先到「WooCommerce → 設定 → 一般」,把「啟用稅金」勾起來,「稅金」這個分頁才會出現在設定選單。這個預設值是有道理的:很多地區的小型賣家根本不需要在結帳時拆出稅額,預設關掉能避免介面嚇到新手。但只要你在台灣開立統一發票,這個開關就一定要打開,因為發票上的稅額數字,全部來自這個引擎的計算結果。勾下去之前,建議先在紙上回答這四個問題,因為它們決定你後面所有選項怎麼選,也決定你的標價邏輯。
- 你的顧客是消費者(B2C)還是公司行號(B2B)?B2C 站通常標價含稅,發票開二聯式;B2B 站常標未稅價,發票開三聯式、要打統編。兩種站的顯示設定剛好相反。
- 你的商品全部應稅,還是混合(部分免稅/零稅率)?若全部應稅 5%,一個稅率等級就夠;若混合,要建多個 Tax Class。
- 運費要不要課稅?這是台灣店家最容易忘記的一題,答案會牽動「運費稅率等級」這個選項。
- 價格輸入時,你打的數字是含稅還是未稅?這決定「輸入價格」要選「含稅,含營業稅」還是「不含稅,不含營業稅」。搞錯這個,整個站的金額會系統性偏差。
這四個答案會彼此牽動。一個典型的 B2C 內銷站,答案是:消費者、全部應稅、運費隨貨課稅、價格含稅輸入;一個典型的 B2B 批發站,答案則是:公司行號、可能混合稅率、運費依會計處理、價格未稅輸入。先把這組答案寫死,再去動後台的選項,設定完就不會反覆修改。實務上最常看到的錯誤順序,是店家一頭撞進稅率表,設到一半才發現「價格到底是含稅還未稅」這題還沒想清楚,於是前面建的稅率全部要重算。順序對了,後面的設定其實很快。
WooCommerce 官方文件對這些前置選項有完整的對照說明,建議對照著設定。
老實說,第四題是大多數人翻車的地方。假設你進貨成本是用含稅價算的,後台卻選了「不含稅」,系統會把你輸入的含稅價再往上加 5%,等於賣貴了 5% 又多收稅;反之亦然。這個選項在「以消費者或商店地址為基準計算稅金」附近,很容易看漏。
台灣 5% 營業稅的稅率表:從 ISO 國家代碼建起
進到「稅金 → 標準稅率」,你會看到一張空白表格,欄位是:國家代碼、國家州碼、郵遞區號/城市、稅率等級名稱(可留空代表標準)、稅率、是否為優先、是否複合。台灣的標準營業稅率是 5%,這是〈加值型及非加值型營業稅法〉明定的。所以你的第一筆資料應該長這樣。
| 國家代碼 | 州碼 | 郵遞區號 | 稅率等級 | 稅率 | 優先 | 複合 |
|---|---|---|---|---|---|---|
| TW | (留空,代表全台) | (留空) | (留空=標準) | 5.0000 | 否 | 否 |
國家代碼的 TW 不是隨便寫的,它來自 ISO 3166 國際標準,WooCommerce 整個稅區與運送區系統都靠這組代碼判斷訂單屬於哪一國。如果你做跨境,會在這張表陸續加入歐盟各國的 VAT、美國的 sales tax、日本的消費稅,每一筆都掛在對應的 ISO 代碼底下。
這裡有兩個台灣特有觀念要分清楚,官方文件通常不會講這麼細:
- 零稅率(0%)不等於免稅。零稅率指的是「銷售額適用 0%,但進項稅額可以退還」,典型場景是外銷貨物或跨境提供勞務。對 WooCommerce 來說,你要建一個稅率 0 的稅率等級,並把它指派給外銷商品。
- 免稅則是「這筆銷售不課營業稅,進項也不能扣抵」。某些類別的出版品與特定勞務適用免稅。在系統裡,免稅商品的對應做法是把它的「稅率等級」設為「免稅(Reduce rate/Zero rate)」或直接繼承為 0%,這兩者的會計意義不同,建議與你的記帳士確認後再設。
加值型及非加值型營業稅法的條文細節請以全國法規資料庫的現行版本為準,稅率或免稅範圍偶有修正。
如果你想用縣市分區(例如離島或特定地區不同稅率,雖然台灣目前沒有這種設計,但跨境站會用到),州碼欄位要填 ISO 3166-2 的細分代碼。這部分跟結帳的縣市下拉選單息息相關,WooCommerce 縣市下拉選單設定 示範了如何把縣市欄位對齊稅區邏輯。
運費要不要課稅?四種情境拆解
「運費算不算應稅銷售額」這題,台灣實務上多數情況是:運費伴隨貨物銷售一起開立發票時,併入該筆銷售的稅額。但在 WooCommerce 裡,它分散在三個控制項:稅率表每一列的「運送(Shipping)」勾選,預設開啟,決定這一列稅率要不要連運費一起課;稅金選項裡的「運費稅率等級(Shipping tax class)」;以及每種運送方式內建的稅金狀態。四種組合直接列出如下。
| 情境 | 商品稅 | 運費稅設定 | 結果 |
|---|---|---|---|
| 1. 全站應稅,運費隨貨課稅 | 5% | 運費課稅=是,等級=依商品稅率 | 最常見,運費自動套用商品那 5% |
| 2. 全站應稅,但運費不另課 | 5% | 運費課稅=否 | 運費欄位不計稅,僅商品計稅 |
| 3. 商品部分免稅,運費要課 | 混合 | 運費課稅=是,等級=標準 5% | 強制運費固定走 5%,不受商品影響 |
| 4. 外銷零稅率 | 0% | 運費課稅=是,等級=零稅率 | 運費也走 0%,配合外銷申報 |
「依商品稅率(Based on cart)」是預設值,意思是購物車裡若同時有應稅與免稅商品,運費會按比例分攤稅額,這在台灣其實不常見。實務上偏好情境 1 或情境 3:要嘛全跟著商品走,要嘛運費鎖死一個固定等級,避免邊界案件算出小數點怪數字。
運費這層跟你的運費規則怎麼建高度相關。如果你的運費是用 Table Rate Shipping 依重量或金額分層,每一條運費規則都會被同一個「運費稅率等級」覆蓋,建議先把運費結構定下來再回頭設稅。可參考 WooCommerce 運費設定全攻略。
還有一個常被忘記的細節:當顧客使用了「免運費」優惠券或滿額免運,運費欄位歸零之後,「運費課稅」就沒有東西可課。這時發票上的運費稅額應該同步歸零,但有些發票外掛會因為抓不到運費數字而留下計算殘值,開出一筆金額為零、稅額卻不為零的怪發票。跑測試訂單時,務必把「使用免運券」這條路徑也走一次,確認稅額乾淨。
含稅價或未稅價,哪個適合你的店?
「稅金」分頁裡有兩個顯示選項:「進入價格含稅」與「顯示於購物車與結帳含稅」。它們控制消費者看到的數字到底包不包含那 5%。這不只是技術問題,更是轉換率問題。
消費者網站(B2C)強烈建議一律顯示含稅價。原因很現實:台灣消費者習慣看到「結帳就是這個價」,你在購物車多冒出一行「稅額 NT$25」,很多人會以為被多收錢而放棄結帳。含稅價顯示能讓「商品頁標價=結帳金額」這個心理預期成立,減少摩擦。
批發或公司客戶站(B2B)則相反。企業採購在意的是「未稅單價」,因為他們要算進項稅額扣抵,標價未稅、結帳時列出稅額反而專業。這時「進入價格」選「不含稅」,「顯示」也選不含稅,並在結帳頁多列一行稅額。
同一個站不要混用兩種邏輯。實務上常見有店家商品頁顯示含稅、結帳頁又切換成未稅,顧客金額「無故變動」,客訴信接到手軟。顯示邏輯要全站一致,這條列為鐵律。
這裡也藏著一個跟消費者保護有關的細節。台灣零售現場的標價習慣是「標多少、付多少」,含稅價是預設心理模型。一旦你的站用未稅價標示,又在結帳時才冒出稅額,即使總金額完全合法,顧客的感受也是「被多收錢」,這在評價與回購率上會留下痕跡。B2C 站沒有理由選未稅價顯示,除非你賣的是免稅商品、或你的客群真的全是報帳的企業採購。
結帳頁的欄位安排也會影響這個體驗,尤其是統編與發票欄位的位置。如果要把發票資訊安插進結帳流程,結帳表單客製化 那篇有欄位排序的具體做法。
稅額是怎麼算出來的:進位、精確度與小數誤差
稅率表填對了,不代表最終稅額就對。WooCommerce 從購物車到結帳到發票,中間牽涉三個獨立的數學決策,任何一個設錯,都可能讓發票上的稅額跟系統算出來的差個一兩塊。而這一兩塊在報稅對帳時,就是一場小災難。
第一個決策:逐筆計算,還是整單計算。「以逐筆加總的方式計算稅額(Calculate line item tax per line, then sum)」是 WooCommerce 預設,意思是先把每件商品的稅額個別算出來,再全部相加。另一種是先把整張訂單的金額加總,再乘上稅率。兩者在小數進位時結果會不同,差異通常出現在購物車裡有很多件低單價商品的時候。台灣發票實務多數走「逐筆」邏輯,所以保持預設即可;但你要知道這個選項存在,換發票外掛時記得回頭對照兩邊算的是不是同一套。
第二個決策:小數位數。「WooCommerce → 設定 → 一般」裡有「小數位數」這個欄位,它同時影響商品價格與稅額的顯示精度。台灣貨幣習慣整數計價,把小數位數設成 0 是多數人的選擇。問題在於,一旦把運算精度也壓到 0,每件商品的稅額在被算出來的那一瞬間就被進位,整張訂單的誤差會逐筆累積。實務上偏好把計算精度留在 2 到 4 位(用一小段客製或外掛控制),只在顯示時進位到整數,這樣發票與系統才對得起來。
第三個決策:以哪個地址為準。「以消費者結帳地址為準計算稅金」與「以商店地址為準計算稅金」這兩個選項,跨境站一定要選消費者地址。如果你用台灣商店地址去課一個美國顧客 5% 稅,這在多數國家既不合法也收不到;反過來,純內銷站兩個選項結果一樣,挑哪個都不影響數字。
這三個決策疊起來,就是為什麼有時候你會看到訂單後台顯示的稅額與發票上印的稅額差一塊錢。實務做法是把計算精度拉到 4 位、顯示用 0 位、逐筆計算維持開啟,再讓發票外掛沿用同一組規則。兩邊規則一致,誤差就會收斂到可以略過的程度,不需要再人工對帳。
為什麼你需要的稅率等級(Tax Class)不只一個
多數台灣店家一輩子只用一個「標準 5%」。但只要你的店有以下任何一種情況,就需要建額外的 Tax Class:
- 同時做內銷與外銷:內銷走 5%,外銷走零稅率 0%。兩個等級。
- 同時賣應稅商品與免稅商品:例如某品項依法免稅。要建一個「免稅」等級並指派給該商品。
- 同時賣實體與虛擬商品:虛擬商品(下載檔案、線上課程)的跨境課稅邏輯跟實體不同,有時需要獨立等級。商品類型的差異暫不展開,商品類型完全指南 有詳細對照。
判斷要不要開新的稅率等級,有一個簡單的檢驗法:如果你的店裡有兩種商品,它們「送到同一個國家、賣給同一種顧客,卻適用不同稅率」,就需要兩個等級;如果它們稅率一樣,只是分屬不同分類,那只需要一個等級,分類交給商品分類去處理就好,不要把分類邏輯塞進稅務設定裡。把這個原則記住,可以避免你為每一個商品分類都開一個等級,把稅率表搞得像迷宮。
建立新等級的方法是在「稅金選項」最下方的「額外稅率等級」欄位輸入名稱(例如 Zero rate),存檔後,這個等級會以另一個分頁出現在稅率表上方,你切過去照樣填國家代碼與稅率(外銷的話稅率填 0)。建好之後,回到單一商品的編輯頁,「商品資料」區塊的「稅率等級」下拉選單就會多出這個選項,把外銷商品指派過去即可。
這個設計的強項是彈性:一張稅率表可以同時容納「台灣應稅 5%」「台灣免稅 0%」「美國紐約州 sales tax 8.875%」「日本消費稅 10%」這種跨國組合,全部靠國家代碼與商品等級自動匹配。換個方式想,Tax Class 是「商品的屬性」,稅率表是「屬性對應到國家的數字」,兩者交叉就產生最終稅額。
優惠券與稅的互動:折扣是扣稅前,還是扣稅後?
優惠券是另一個會悄悄改變稅額的變數,而且 WooCommerce 的預設行為跟多數人的直覺剛好相反。搞懂它,能避免「打折之後稅額怎麼怪怪的」這類客訴,也能讓發票開出來的數字合理。
WooCommerce 把優惠券的作用時機分成「稅前扣(Apply before tax)」與「稅後扣(Apply after tax)」兩種。預設是稅前扣,意思是優惠券先從商品金額扣掉,稅額再依「折扣後的淨額」計算。這跟台灣發票實務一致:折扣後的淨額才是應稅銷售額,稅額跟著一起打折。所以預設值通常是對的,沒事不要去動它。
真正容易出錯的有兩種情境。第一,你用「固定金額」優惠券(例如折 100 元),而且購物車同時有應稅與免稅商品。這時 WooCommerce 會把這 100 元分攤到購物車裡所有商品上,包含免稅商品,導致應稅商品的稅基被多扣、免稅商品的金額被壓低,發票上的稅額會比預期低一截。第二,你發了「免運費」優惠券,運費歸零之後,「運費課稅」就沒有標的可課,這時要回頭確認發票外掛是否正確把運費稅額也歸零,而不是留著一筆沒有對應金額的幽靈稅。
百分比優惠券相對單純,因為它是按比例縮放,稅基與稅額同步縮小,不會出現分攤造成的邊界問題。如果你要做複雜的滿額折扣或買 A 送 B,建議先開一筆小額測試訂單跑完整流程,把發票實際開出來核對稅額,再正式上線。優惠券的完整設定流程可參考 優惠券設定教學,可以對照著看優惠券本身與稅的交界。
發票才是台灣店家的真戰場:電子發票與統編怎麼接
講到這裡你應該已經發現:前面幾個段落處理的都是 WooCommerce core 能做的事,而真正讓台灣老闆失眠的「統編」與「電子發票」,core 連半個欄位都沒有。這層要靠外掛補上,主流的兩條路是綠界電子發票與 RY WooCommerce Tools。
電子發票外掛要做的事,跟稅率計算是兩回事。它的核心任務有四個:
- 在結帳頁收集發票資訊:讓顧客選個人發票(二聯式)、公司發票(三聯式,要填統編與抬頭)、或捐贈發票(要選捐贈單位)。
- 串接加值服務中心或營業人電子發票系統:訂單完成後自動開立發票,回傳發票號碼與隨機碼存回訂單。
- 處理折讓與作廢:退款或折讓時,自動開立發票折讓單或作廢原發票,這是手動最容易出錯的地方。
- 產出報稅用的媒體檔:把一段期間的發票資料彙整成國稅局可接受的格式,這是報稅季的命根子。
這裡順帶把三種發票開立方式講清楚,因為它在結帳頁會變成顧客要選的選項,設定錯了會直接影響發票能不能報帳。二聯式發票開給個人消費者,只有存根聯與收執聯,不需要統編;三聯式發票開給營業人(公司行號),多一聯扣抵聯,必須打上買方統一編號與公司抬頭,這一聯是對方申報進項稅額扣抵的憑證。捐贈發票則是顧客主動把發票捐給指定的社福機構,愛心碼會寫進發票,系統要能承接這組號碼並正確上傳。一個成熟的結帳頁,這三個選項通常以單選按鈕呈現,顧客選三聯式時才展開統編與抬頭欄位,選捐贈時才展開愛心碼欄位,這套互動是發票外掛與結帳欄位客製化合作的成果。
綠界電子發票是目前台灣最普及的選擇,因為它跟綠界金流綁在一起,開發票、刷退、作廢一條龍。RY WooCommerce Tools 則是本土開發的整合外掛,把綠界金物流與電子發票包成一套 WooCommerce 原生的設定流程,對熟悉 WP 後台的人比較友善。兩者的安裝與串接流程可分別參考 綠界金物流串接 與 RY WooCommerce Tools 設定,這裡只談它跟稅的關係。
| 項目 | WooCommerce core 稅金 | 電子發票外掛 |
|---|---|---|
| 計算稅額 | 是 | 否(沿用 core 算好的) |
| 決定應稅/零稅/免稅 | 是(靠 Tax Class) | 否(讀取 core 的設定) |
| 開立發票 | 否 | 是 |
| 處理統編與抬頭 | 否 | 是 |
| 上傳國稅局/產媒體檔 | 否 | 是 |
一個常見誤解是「裝了發票外掛,core 的稅就不用設了」。這是錯的,而且是會出事的錯。發票外掛開立發票時,會直接讀取 core 算出來的稅額與稅率等級。如果 core 的稅率表是空的、或稅率等級指派錯誤,發票上印出來的稅額就會跟實際申報不符,輕則客訴,重則補稅加罰。所以順序永遠是:先把 core 的商品稅、運費稅、顯示邏輯設到完美,再裝發票外掛。地基不穩,上面的發票蓋得再漂亮都會倒。
跨境賣家的三個稅務地雷
如果你的站不只賣台灣,三個觀念會決定你是不是在不知不覺中欠稅。這裡不打算把它們講成法律建議,因為這需要會計師逐一確認,但起碼你要知道這些地雷存在。
地雷一:歐盟的 OSS(一站式申報)。對歐盟消費者銷售數位服務或小額跨境商品,超過一定門檻後你必須在某一個歐盟國註冊 OSS、申報並繳 VAT。WooCommerce 的歐盟 VAT 稅率表能幫你「算出」正確稅額,但「申報與繳納」是另一回事,系統不會幫你做。
地雷二:美國的 sales tax nexus。美國沒有全國統一的銷售稅,各州稅率不同,而且 2018 年 Wayfair 判決後,即使你在一個州沒有實體據點,只要銷售額或交易量超過該州的經濟連結門檻,就可能要代收 sales tax。這代表你可能要在 WooCommerce 裡為美國的數十個州各建一筆稅率,手動維護極為痛苦,多數人會改用 Avalara 或 TaxJar 這類自動稅率服務。
地雷三:日本消費稅與輕減稅率。對日本消費者銷售,日本消費稅標準 10%、食品與外食帶走適用輕減 8%(這個稅率會調整,以現行法規為準)。若你註冊了日本 JCT(日本消費稅)號碼,就要開立合格發票。跨境的發票系統跟台灣電子發票完全不同軌,要分開處理。
把這三個擺在一起看,你會得到一個不舒服的結論:跨境稅務的複雜度是「國家數 × 稅率等級 × 申報義務」的乘法。在開站初期就決定你要打哪些市場,比事後補稅率表省事十倍。實務上的做法是回到同一張稅率表,逐筆加入目標國家的 ISO 代碼與稅率,例如再加一筆 US 對應 sales tax、一筆 JP 對應消費稅,讓 core 自動依結帳地址套用,免去為每個市場開一個獨立 WooCommerce 站的麻煩。能把稅率表當成單一真相來源,整個站的可維護性會高很多。
多幣別與多店點:當稅率表要對應多種匯率
當你的店長大到需要多幣別(例如美元、日圓、新台幣同時賣),或用 WPML、Polylang 經營多語系多幣別版本,稅務會多一個維度:同一張稅率表,要不要隨幣別變動?
關鍵原則是:稅率是「百分比」,不隨幣別改變;但「免稅門檻」「免運費門檻」「優惠券滿額條件」這類絕對金額會隨匯率浮動。多數多幣別外掛只轉換顯示金額,稅率表的 5% 還是 5%,這部分通常沒問題。要小心的是「跨境幣別」這種情境:你用美元賣給美國客戶,結帳地址落在美國,稅率表就要有美國那一筆(sales tax 或依法免稅),不能沿用 TW 5%。幣別與國家是兩件事,不要因為顯示的是美元,就以為稅率要跟美國走;決定稅率的是結帳地址的國家代碼,不是貨幣符號。
多店點(同一份 WordPress 安裝同時跑多個店面、各自有獨立商品與顧客)的情況更少見,但一旦遇到就很頭痛:WooCommerce core 的稅率表是全站共用,沒有「店面 A 用稅率表甲、店面 B 用稅率表乙」的原生功能。這種需求通常要靠專門的多店點外掛或客製程式解決,不建議新手碰。多數人會選擇「一個幣別、一個站」,把架構問題留給架構去解決,不要硬塞進單一稅率表。
換句話說,多幣別與多店點的核心難題不是「怎麼設稅」,而是「怎麼讓商品、運費、稅、發票四者在不同幣別下保持一致」。在還沒有明確的跨境營收之前,不建議為了未來的可能而提早把架構搞複雜。先把單幣別單店點的稅設到完美,才是穩紮穩打的路。
實務常見的五個錯誤,與修法
最後這段是實務觀察整理。下面五個錯誤不是單一個案的數字,而是在不同店家的設定裡反覆出現的模式,附上修法讓你直接對照。
- 「啟用稅金」沒勾,卻要求顧客打統編。症頭是結帳頁完全沒有稅額欄位,訂單金額看起來「乾淨」,但其實發票外掛抓不到稅率等級,開出來的發票稅額是 0。修法:先回到「一般」分頁勾啟用,建立 TW 5% 標準稅率,再回來看發票外掛。
- 商品「稅率等級」繼承成「零稅率」。發生在複製舊商品當樣板時,把外銷用的零稅率一起帶過來。修法:批次檢查所有上架商品的稅率等級欄位,尤其用複製功能新增的那批。實務上,前面堅持要建多個 Tax Class 並命名清楚,命名一清楚,繼承錯誤一眼就能挑出來。
- 運費稅率等級設成「依商品」,導致結帳金額浮動。購物車同時有應稅與免稅商品時,運費被拆成兩段稅額,顧客看到的總金額跟商品頁預期不一致。修法:把運費稅率等級鎖定為「標準 5%」一個固定值。
- 顯示邏輯前後不一。商品頁含稅、結帳頁未稅,或反過來。修法:把「進入價格」與「顯示於購物車與結帳」兩個選項設成同一邏輯,全站一致。B2C 一律含稅,B2B 一律未稅。
- 退款時只退商品金額,漏退稅額,發票也忘了作廢。這個最傷,因為它同時是客服問題、帳務問題、又是稅務問題。修法:退款一律走「透過發票外掛開折讓單或作廢」的流程,不要手動改訂單金額。發票外掛的折讓單會自動把稅額算回來。
這五個錯誤有一個共同根源:把 core 的稅、運費的稅、發票的稅,當成同一件事隨便設。只要你在心裡把這三層分清楚,上面列出的幾乎都不會發生。
還有一類錯誤不靠設定,而是靠流程:很多人把「改訂單」當成日常操作,遇到金額不符就直接進後台手改訂單總額或稅額。這在沒接發票外掛時勉強行得通,一旦接了,手改會讓發票紀錄與訂單紀錄分岔,國稅局抽查時兩邊對不起來。紀律是:凡是牽涉金額或稅額的修改,一律走「退款再重開」或「開折讓單」的正式流程,哪怕多花兩分鐘。這條紀律建立起來,你後續幾年的帳務會輕鬆很多。
報稅季前的最後檢查清單
每隔兩個月、或報稅季前,建議照著這張清單走一次。它不是法律文件,是一個讓你在按下「匯出媒體檔」之前,把所有環節再確認一遍的操作表。
- 確認 TW 5% 標準稅率仍存在於稅率表,國家代碼是 TW。有時更新外掛或換佈景會把稅率表清空,這是第一個要查的。
- 抽查五到十樣暢銷商品,確認「稅率等級」欄位正確。重點看用複製功能新增的那批,最容易繼承錯誤。
- 開一筆測試訂單,看結帳頁稅額是否出現、金額是否符合預期。用無痕視窗走完整流程,不要只看後台。
- 確認運費課稅選項與你的會計處理一致。若記帳士說運費隨貨課稅,core 就要設「運費課稅=是」。
- 確認發票外掛能正確開立二聯式與三聯式,統編欄位有出現。跑一筆 B2B 測試訂單,打統編看發票抬頭是否正確印出。
- 匯出上一期媒體檔,與金流對帳單逐筆核對稅額總數。兩邊差異超過 1 元就要回頭查訂單,通常是一筆折讓或作廢沒走外掛流程。
- 備份訂單資料庫與發票紀錄。電子發票的存證年限以國稅局規定為準,備份不要省。WordPress 備份外掛 列了幾個實務常用的選擇。
稅金設定是那種「設對了沒人感謝你,設錯了全站陪葬」的基本功。它不像 SEO 或轉換率優化那樣有明顯的成就感,卻是任何一家想長久經營的電商不能跳過的地基。把 core 的商品稅與運費稅設扎實,把發票這層交給對的外掛,再照上面的清單定期回頭確認,你的店就能把心力放回真正會帶來成長的事情上:商品、流量、與顧客關係。
如果你想從更源頭的地方把整座 WooCommerce 站一次架對,包括主題選擇、金物流、稅務這條鏈路的先後順序,WooCommerce 完整架站教學 是一篇適合從零開始對照閱讀的總覽。地基先打好,後面的每一層才疊得上去。
最後提醒一句:以上整理的是 WooCommerce 的設定邏輯與操作步驟,不是稅務建議。你的實際稅率、免稅範圍、發票開立方式,會因為營業項目、銷售對象、是否跨境而不同,遇到判斷不了的情況,請找你的記帳士或會計師確認。系統幫你把稅算對、把發票開出來,但「這筆交易到底適用哪一種稅」這個判斷,永遠是人的責任,不是外掛的責任。把工具的歸工具、把專業的歸專業,這才是把稅務這件事真正做對的態度。
常見問題
為什麼 WooCommerce 設了 5% 結帳卻沒顯示稅金?
WooCommerce 運費要不要一起課稅?
WooCommerce 稅金跟發票開立一樣嗎?
WooCommerce 免稅商品怎麼設定?
發票稅額和訂單後台差了一兩塊,是稅率設錯了嗎?
操作步驟
- 確認定價策略:商品為含稅價或未稅淨額,二選一,不可同時開啟外加,避免向同一筆訂單重複課稅。
- 啟用 WooCommerce 稅金功能:進 WooCommerce > 設定,勾「啟用稅金」並按儲存,稅金分頁才會出現。
- 新增 TW 5% 標準稅率:到稅金 > 標準稅率新增一列,國家代碼填 TW、州與郵遞區號留空、稅率填 5.0000、稅名稱填「營業稅」、勾選運送、不勾複合。
- 運送方式設為應課稅:到運送方式 > 編輯物流(如超商取貨、宅配),把稅金狀態改為應課稅,運費即併入 5% 計稅基礎。
- 前台結帳實測:用無痕視窗挑一個測試商品結帳,確認購物車與結帳頁出現獨立稅金欄,稅額等於未稅小計乘 5%(允許捨入尾差)。
- 串接電子發票與月結對帳:用電子發票外掛把稅額寫入發票,再用訂單匯出批次輸出當月稅額合計交會計比對,完成計稅、開發票、申報三階段銜接。