一、税收是什么:一个生活类比
先建立直觉。WooCommerce 的税收系统只做两件事:
- 找到正确的税率——根据客户地址匹配你预设的税率规则
- 用公式算出税额——把税率套到产品价格上
类比一下:税收系统就像一个自动报价器。客户在结账页填了地址,WooCommerce 拿这个地址去翻你的税率表,找到匹配的那一行(比如”美国 + 加州 → 7.5%”),然后算给客户看”你这单要加多少税”。

至于税率数字怎么来、收多少才合法——那是你和会计师的事,WooCommerce 只管计算。
二、启用税收:总开关在 General 里
税收功能默认是关的。
🔛 2.1 打开总开关
进入 WooCommerce → 设置 → 常规,往下滚到”启用税收和优惠券”区域,勾选 启用税率和计算,点击 保存更改。

保存后,设置菜单里会多出一个 Tax 标签。点进去就能看到税收的所有设置项。
💡 如果没有看到 Tax 标签,说明上一步没保存,或者 WooCommerce 插件没激活。
三、最重要的决定:价格含税还是不含税
Prices entered with tax 这个选项决定了你填写产品价格时的逻辑,是整个税收系统的地基。选错的话,后续所有价格数字都可能对不上。

它有两个选项:
- Yes, I will enter prices inclusive of tax:你填的价格已经含税了
- No, I will enter prices exclusive of tax:你填的价格是税前价
💰 3.1 含税模式:我填的价格已含税
选这个,你输入产品的标价就是客户要付的总价。假设英国店铺,VAT 税率 20%,你想让产品卖 £9.99:
- 你直接在价格栏填
9.99 - WooCommerce 自动倒推:税前价 = £9.99 ÷ 1.2 = £8.325,税额 = £1.665
- 英国客户结账看到 £9.99(含 £1.67 VAT)
- 非英国客户(无税率匹配)看到 £8.33(不含税)
公式:税额 = 价格 - (价格 ÷ (1 + 税率))
这是英国、欧盟、澳大利亚 B2C 商店的常见做法。
🏷️ 3.2 不含税模式:我填的是税前价
选这个,你输入的是税前价格,WooCommerce 在结账时往上加税。还是那个例子,想卖 £9.99 含税:
- 你在价格栏填
8.325 - WooCommerce 结账时加上 20%:£8.325 × 1.2 = £9.99
- 客户结账看到 £9.99
公式:税额 = 价格 × 税率
这是美国商店的常见做法(各州税率不同,定价时没法预知)。
🌍 3.3 跨境含税模式的坑
含税模式在跨境销售时要特别注意:客户看到的价格会随目的地税率变化。
举个例子,英国店铺(20% VAT),产品定价 £120 含税,卖到不同国家:
- 英国客户(20%):付 £120(£100 税前 + £20 VAT)
- 法国客户(19%):付 £119(£100 税前 + £19 Tax)
- 挪威客户(25%):付 £125(£100 税前 + £25 Tax)
- 无税率匹配的国家:付 £100(纯税前价,£0 税)
WooCommerce 的默认逻辑是:先剥掉你商店所在国的税,再按目的地加上当地税。所以含税定价的跨境店铺,不同国家的客户看到的最终价格可能不一样。
⚠️ 如果你想所有国家统一售价(自己吸收税率差异),需要用
woocommerce_adjust_non_base_location_prices过滤器来改,这不是后台能点出来的设置。绝大多数店铺用默认行为就够了,但要知道这个机制存在,以免跨境定价出意外。
四、其余全局设置:一次性配好
进入 WooCommerce → 设置 → Tax,在”Tax options”标签下,除了含税不含税,还有几个设置需要一起看。
📍 4.1 按什么地址算税
Calculate tax based on 下拉有三个选项:
- Customer shipping address(默认):按客户填的配送地址算税。实体商品用这个
- Customer billing address:按客户填的账单地址算税。纯数字商品有时用这个
- Shop base address:按你的商店地址算税,不管客户在哪。适用于只在本地销售、不需要区分目的地税率的情况
💡 跨境独立站默认选 Customer shipping address 就行。选了客户地址后,结账页必须让客户填完地址才会显示税——所以在没填地址前看不到税费是正常的,不是系统坏了。
🚚 4.2 运费税类
Shipping tax class 控制运费的税率怎么算。默认选 Shipping tax class based on cart items,意思是运费继承购物车中产品的税类。
继承逻辑(官方文档确认):如果购物车里有标准税率产品,运费按标准税率算;如果没有标准税率产品,则取”附加税类”列表中第一个税类的税率。
💡 如果你的国家运费税率和产品税率不同,可以在这里选一个固定税类(比如 Standard 或 Reduced rate),让运费始终走同一个税率。
📦 4.3 附加税类
Additional tax classes 文本框,一行一个税类名称。默认已经有 Reduced Rate 和 Zero Rate,你可以改名、删除或新增。
比如你可以新增一行 Digital Goods 作为数字商品专用税类。保存后,这些税类会出现在税率表子菜单里,并且可以在产品编辑页分配给产品。
⚠️ Standard 税类不可删除,它是 WooCommerce 的默认兜底税类。
👁️ 4.4 价格显示方式
两个下拉控制前端显示:
- Display prices in the shop:商店页/产品列表/产品详情页的价格显示——含税还是不含税
- Display prices during cart and checkout:购物车和结账页的价格显示——含税还是不含税
这两个设置可以和”Prices entered with tax”不一样,但如果你把它们弄成不一致的组合(比如产品填含税价,但商店页显示不含税),会导致 off-by-one 四舍五入误差——价格差一两分钱。WooCommerce 检测到这种不一致时会在后台顶部弹一个黄色警告条,点 Use recommended settings 可以一键统一。
🏪 4.5 价格后缀
Price display suffix 是加在价格后面的文字。可以用两个动态占位符:
{price_including_tax}—— 替换为含税价{price_excluding_tax}—— 替换为不含税价
举例:填 含税 {price_including_tax},前端显示为”含税 $59.74″。填 不含税: {price_excluding_tax} 则显示税前价。
💡 如果你的店走不含税定价,但想在商品页用小字显示含税参考价,用
含税 {price_including_tax}就能实现,不用插件。
📊 4.6 税收汇总方式
Display tax totals 控制结账页税费怎么展示:
- As a single total:所有税合并成一行,显示默认文字”Taxes”
- Itemized:逐条列出每种税的名称和金额。如果你在税率表里给 Tax name 填了名字(比如”加州销售税”),选 Itemized 后客户就能看到这个名称,比一个笼统的”Taxes”更专业
🔢 4.7 四舍五入
Round tax at subtotal level, instead of rounding per line:勾选后,税在小计层面四舍五入,而不是每个单品行都四舍五入。听起来差别很小,但在大量订单中可能导致几分到几毛的差异。这个按你的税务辖区要求来,不确定就问会计师。

五、手动填写税率表
全局选项配好了,接下来填实际税率。WooCommerce → 设置 → Tax 页面顶部有税类子菜单:Standard rates、Reduced rate rates、Zero rate rates(以及你自定义的税类)。点进一个开始填。
📝 5.1 进入税率表
点 Standard rates(或其他税类),你会看到一个空表格。点击 Insert row 添加一行,点击 Save changes 保存。

🔤 5.2 十个字段逐个讲
每一行税率的字段:
- Country code:ISO 两位国家代码。
US/GB/DE等。留*表示所有国家。WooCommerce 支持在输入框里直接打字搜索国家名 - State code:两位州/省代码(如
CA表示加州)。留*或不填表示该国的所有州省 - Postcode / ZIP:邮编。支持多种格式:具体邮编用分号分隔(
90210; 90211),前缀通配(902*匹配所有 902 开头的邮编),数字范围(2000...3000匹配 2000 到 3000 之间) - City:城市名,分号分隔(
London; Manchester)。注意:客户输入必须完全一致才能匹配,”Cape Town” 不会匹配 “Capetown” - Rate %:税率百分比。填
20表示 20%,支持四位小数(7.5000) - Tax name:税的名称,客户结账时会看到。比如
VAT、GST、Sales Tax。配合 Itemized 显示方式一起用效果更好 - Priority:优先级。同一地址如果有多条规则匹配,选优先级数字最小的那条。1 优先级最高。想对同一区域定义多个不同税率时,给它们分不同优先级
- Compound:是否复合税(税上税)。绝大多数跨境场景不需要勾,除非你的税务辖区明确要求
- Shipping:这个税率是否也适用于运费。默认勾选,如果你所在的辖区运费不征税,取消勾选
⚠️ Priority 是关键概念但容易被忽略。举个例子:你想全美国收 5%,但加州单独收 7.5%。那么加州 7.5% 的行 Priority 填 1,全美 5% 的行 Priority 填 2——系统先匹配加州(Priority 1),命中后就不再往下看 Priority 2 的规则了。如果把两行 Priority 都填成 1,结果就不可预测。
🇺🇸 5.3 美国各州销售税示例
美国各州税率不同,下面是几个常见州的配置示例:
| Country | State | Rate % | Tax Name | Priority |
|---|---|---|---|---|
| US | CA | 7.2500 | California Sales Tax | 1 |
| US | NY | 4.0000 | New York Sales Tax | 1 |
| US | TX | 6.2500 | Texas Sales Tax | 1 |
| US | FL | 6.0000 | Florida Sales Tax | 1 |
⚠️ 上面只是州级基础税率,实际很多城市和县还有附加税。美国销售税极为复杂,WooCommerce 官方文档明确建议使用 WooCommerce Tax 扩展做自动税率,手动维护容易跟不上税率变动。这些示例用于理解字段格式,生产环境请核实最新税率。
🇬🇧 5.4 英国 VAT 示例
英国 VAT 相对简单:
| Country | Rate % | Tax Name | Priority |
|---|---|---|---|
| GB | 20.0000 | VAT | 1 |
英国 VAT 就一行。如果你的产品中有适用减免税率(Reduced rate,5%)或零税率(Zero rate,0%)的商品,在对应税类下单独建规则。
💡 税率表支持 CSV 导入导出。建议手动填一行导出看看 CSV 长什么样,然后用 Excel 批量编辑再导入。CSV 的列顺序是:Country code, State code, ZIP/Postcode, City, Rate %, Tax name, Priority, Compound, Shipping, Tax class。
六、给产品分配税类
税率配好了,需要在产品上指定用哪个税类。
🏗️ 6.1 单个产品设置
进入任意产品编辑页,在 Product Data 面板的 General 标签下,找到两个字段:
- Tax status:选 Taxable(产品和运费都征税)、Shipping only(只对运费征税,产品本身不征)或 None(完全不征税)
- Tax class:从下拉选一个税类(Standard、Reduced Rate、Zero Rate 等)

不做任何修改的话,所有产品默认走 Standard 税类。
⚡ 6.2 批量修改税类
如果要给几十上百个产品统一改税类,去 产品 → 所有产品,勾选目标产品,顶部下拉选 Edit,点 Apply,在弹出面板里找到 Tax class 字段统一修改。

⚠️ Tax status 和 Tax class 是两个独立设置。Tax status 选 None 的话,Tax class 选什么都没用——产品直接不参与税收计算。常见错误:产品零税率(比如儿童食品)应该 Tax status 选 Taxable,Tax class 选 Zero rate,而不是直接把 Tax status 设为 None。两者区别:None 是不参与税收(订单里不出现税行),Zero rate 是参与税收但税率 0%(订单里会出现税行但金额为 0),后者在税务报表中更规范。
七、常见问题
❓ 7.1 税费显示为 0
按以下顺序排查:
- 先去 WooCommerce → 设置 → 常规,确认 启用税率和计算 已勾选并保存
- 去 WooCommerce → 设置 → Tax → Standard rates,确认至少有一条税率规则
- 检查你的税率规则是否真的匹配客户的地址——国家代码、州代码、邮编都填对了没有?比如你只配了
US-CA,但测试用了一个纽约地址,系统匹配不到任何规则,税就是 0 - 检查那个产品的 Tax status 是不是被设成了 None
🧮 7.2 产品价格数字对不上
最常见的原因是”Prices entered with tax”、”Display prices in the shop”、”Display prices during cart and checkout”三个设置不一致。如果产品填的是含税价、商店显示的是不含税价、购物车又是含税价,会导致 WooCommerce 来回倒算产生四舍五入误差。去 WooCommerce → 设置 → Tax 看页面顶部有没有黄色警告条,有的话点 Use recommended settings 一键对齐。
🎭 7.3 含税模式下改了价格,现在新旧产品价格逻辑不一致
“Prices entered with tax”的切换不影响已有产品——只影响你之后新创建的产品。已有的老产品不会自动转换价格。如果你决定从含税切不含税(或反过来),需要对已有产品逐个检查并手动调整价格数字。同样地,批量编辑时后台不提示这个影响,改之前先备份。
🔍 7.4 后台设置被灰掉了,改不了
检查 WooCommerce → 设置 → Tax 顶部是否有 Enable automated taxes 选项被勾选了。这是 WooCommerce Tax 扩展的功能——开启自动税率后,大部分手动税收设置会被接管并灰掉。如果你不需要自动税率,取消勾选 Disable automated taxes 再保存就能恢复手动设置。

💸 7.5 我跨境卖到多个国家,税率表要建多少行
取决于你的业务范围。以手动维护为例:如果只卖英国一种商品,一行 GB 20% 就够了。如果要卖到全美 50 州,每个州一行。如果要卖到欧盟 27 国,每个国家一行。手动维护超过 20-30 个辖区就比较吃力了,考虑用 WooCommerce Tax 自动税率扩展,或者至少用 CSV 导入导出 + Excel 来管理税率表。


















- 最新
- 最热
只看作者