适用人群
这篇教程适合以下朋友:刚用WooCommerce开店、想把运费设明白但被“按重量”“按地区”“免费包邮”绕晕的运营新手;用WordPress建站但不想装一堆复杂运费插件的个人卖家;以及需要给不同城市设置不同快递费、但又不想每次改价都抓狂的小团队,只要你会点后台菜单,能看得懂中文界面,按下面步骤走,半小时内搞定90%的常见物流场景。

WooCommerce物流设置从零到精通,避开运费坑,让订单自动匹配快递费
第一步:在开始设置前,先做好两件准备
整理你的商品数据
WooCommerce可以按商品重量、订单金额、商品件数来算运费,所以你要清楚自己的商品:每个大概多重?体积大不大?是否有些商品只能发顺丰?把重量先打在商品编辑页面的“配送”选项卡里,注意单位:后台设置里默认是千克。
列出你的快递报价表
把你合作的快递公司价格整理成表格。
- 江浙沪:首重1kg 5元,续重1kg 2元
- 其他省份:首重1kg 10元,续重1kg 5元
- 新疆西藏:首重20元,续重15元
这个表是你后面配置的“翻译原稿”,没有表,瞎填一定会出错。
第二步:打开物流设置面板
进入WordPress后台,点击左侧菜单WooCommerce → 设置 → 配送。
你会看到三个标签页:配送区域、配送方式、配送选项。
先点击配送区域,系统默认有一个“中国”区域,但别直接用,建议删掉或停用,点击“添加配送区域”,区域名称写“中国大陆”,然后把中国所有省市都勾上(点“地区”下拉框,选中国,再在列表里勾选省份,注意香港、澳门、台湾如果发快递价格不同,另建区域)。
保存后,你的区域列表里就有“中国大陆”了,点击这个区域后面的“编辑”,你会看到“配送方式”栏,里面可选:统一运费、免费配送、本地配送,先不用管,我们下一步来拆解。
第三步:用“统一运费”实现按件数或按单固定收费
如果你的店铺所有商品都是一个运费价(比如全国统一10元),那么最简单:
在“中国大陆”区域的“配送方式”里,点击“添加配送方式”,选择统一运费,然后点后面的“编辑”,设置一个费用,比如10。
这样结账时,不管买几件,都只收10元。
但如果你想让“买得越多,运费越便宜”,就在“配送选项”里,勾选“根据购物车中的商品数量,为统一运费启用计算”,然后你在统一运费的“额外费用”里填每增加一件加收2元,这样首件10元,第二件开始每件+2元。
第四步:按重量算运费(最常用)
回到“配送方式”添加一个统一运费,但这次不填“费用”,而是勾选“根据购物车中的商品重量,为统一运费启用计算”,然后在“额外费用”里填续重单价,比如2。
关键点来了:WooCommerce的“统一运费”默认首重费用就是“费用”字段本身,如果你填费用=5,额外费用=2,则代表:首重1公斤内5元,每增加1公斤多加2元,但首重到底是多少公斤?系统默认第一个重量单位(1kg)作为首重,如果你想让首重是0.5kg,必须配合一个钩子代码或者用插件,新手不建议改代码,就用1kg首重,正常。
然后去“配送选项”里,把“重量单位”改为kg,确认无误后,在前台购物车测试:加入一个商品,如果重量是0.8kg,运费就是5元;如果商品重量设置为2.5kg,那运费=首重5 + 续重2(2.5-1向上取整?不对,WooCommerce的续重计算是每次增加0.5kg才计算?这里要特别提醒:WooCommerce默认把重量分成“每增加1kg算一次续重”,2.5kg的话,超出1kg的部分是1.5kg,系统会算作2次续重,所以运费=5+22=9元,别问为什么,它就是这么粗略,如果要精确到小数点,得用更高级的插件或代码。
第五步:按不同地区设置不同运费
刚才那个“中国大陆”区域只适用统一价,如果要让江浙沪和其他省份价格不同,需要拆分区域。
删除原来的统一区域,重新创建:
- 江浙沪,把浙江、江苏、上海选进去,配送方式添加“统一运费”,费用5,额外费用2。
- 全国其他省市,把剩下的所有省份选进去(新疆、西藏、内蒙古等也可单独拆出),费用10,额外费用5。
- 新疆西藏,费用20,额外费用15。
注意:WooCommerce在结算时,会根据收货地址自动匹配第一个匹配到的区域,所以你要把价格最低、发货最快的区域放在最上面,顺序很重要,你可以拖拽区域排序。
这样,顾客在结账时,如果地址是上海,自动按江浙沪5元算;如果是广东,按10元算。
第六步:设置“免运费”的条件
想让订单满99元包邮,很简单:
在某个区域里添加免费配送方式,然后点击“编辑”,勾选“仅当订单金额达到最低金额时启用”,填最低订单金额99,再勾选“为使用免运费优惠券的用户启用”,保存后,如果你还有其他付费配送方式,记得把免费配送拖到最上面,或者把其他方式设置为“启用”但让免运费优先。
注意:这个“订单金额”是基于小计还是基于合计?默认是订单小计,也就是扣除优惠券和税费前,如果你希望按实付金额算,需要在“配送选项”里改“运费计算方式”吗?其实没有这个选项,你要在代码或插件里调,新手建议直接用默认。
第七步:测试测试再测试
配置完千万别直接开业,用浏览器的隐身模式,把不同商品加入购物车,模拟不同地址结算,看运费对不对。
测试清单:
- 上海地址 + 1件0.8kg商品 + 金额50元 → 运费应为5元(区域一)
- 广东地址 + 1件2.5kg商品 + 金额120元 → 运费应为10+52?注意,重量续重按件算还是按总重量?WooCommerce是按整个购物车的总重量来算续重,总重量2.5kg,首重1kg内10元,超出1.5kg算2次续重,10+52=20元,同时订单金额120满足99免邮,但由于你有“免费配送”方式,且它默认排在最上面,那就会显示0元,你需要决定:是包邮优先,还是普通运费优先?如果包邮优先,那么广东这笔也会免费,如果你想让“满99包邮”只针对普通区域,那在免费配送的“适用范围”里选“仅适用于某些地区”并指定区域,或者在付费配送方式上设置“排除金额达到99的订单”?实际做不到,最简单做法:给江浙沪区域不添加免费配送,只给全国其他区域添加满99免费,这样江浙沪永远按低运费走,其他地区满99免邮。
常见踩坑提醒
坑1:商品没填重量,所有订单都按0kg算,运费只收首重。
这是最隐蔽的坑,你后台产品可能几十个,但没填重量,购物车总重量是0,系统计算运费时,首重内按0kg,所以只收首重费用,续重永远不触发,解决办法:批量编辑商品,在编辑页面的“配送”里填好重量,如果你用的是虚拟商品,也必须填0。
坑2:区域里的省份勾选漏掉“内蒙古”等自治区。
很多人把“内蒙古”看成是“其他”,结果内蒙古客户下单时找不到可用的配送方式,直接被拒,建议你把所有省份都选上,再删掉不需要的。
坑3:免费配送和统一运费同时启用,但免费方式被排在最下面,系统不会自动选最便宜的。
WooCommerce在结算时展示的是所有启用的配送方式,顾客可以自己选,如果免费配送排在最下面,顾客不一定注意到,可能付了冤枉钱,然后投诉你,所以一定要把免费配送拖到最上面,或者干脆只启用一种方式。
坑4:设置了“配送区域”,但客户结算时显示“无可用配送方式”。
排查步骤:① 检查区域里是否勾选到了客户所在省份;② 检查配送方式是否启用;③ 检查统一运费的“费用”是否为空,且没有勾选“按重量启用”——如果费用为空且未启用重量计算,系统认为运费为0但方式无效?实际上费用为空时,WooCommerce会认为这个配送方式不可用,所以最少填0.01,或者填0也行,但最好填1元作为占位,再配合重量计算。
坑5:后台改运费,前台不变。
检查缓存插件(如WP Rocket、W3 Total Cache)和CDN,如果开了缓存,先去刷新缓存,或者用无痕窗口测试,WooCommerce自带的“运费”是有缓存机制的,修改后等几秒再刷新。
坑6:想要“按体积计算”运费,但系统不支持。
WooCommerce原生只支持按件数、金额、重量,如果你有超大件、异形件,建议装个“Table Rate Shipping”插件(WooCommerce官方有收费插件,也有免费的水獭插件),新手别强行用代码,容易翻车。
最后给你一个省心配置模板
- 江浙沪 → 统一运费5元,续重2元/1kg,不设免邮
- 全国除偏远 → 统一运费10元,续重5元/1kg,同时开启免费配送并设满99免邮(把免费配送拖到最上面)
- 新疆/西藏/内蒙古/青海/宁夏 → 统一运费20元,续重15元/1kg,不参与满99免邮(因为太贵了)
如果你卖的是小件轻物,直接按件数收费更简单,统一运费6元,额外费用0元,表示全国每单6元,所有商品无论多少件都6元,但利润低时慎用。
设置完成后,一定要在“设置 → 配送 → 配送选项”里勾选“启用运费计算”,然后保存,去你的前台商城,加几件商品进购物车,填写收货地址,看运费是否按你预期显示,如果不对,回头逐个检查重量、区域、方式,放心,只要按这个流程操作,绝大多数物流设置问题都能解决,祝你的店铺顺顺利利发货!
发表评论