表格运费适合这种场景:不同国家或省份价格不同,订单越重运费越高,或者订单金额达到某个档位后运费下降。它看起来只是一个CSV,但Magento会根据网站作用域和规则顺序匹配,所以最稳妥的做法不是自己新建空表,而是先从后台导出模板。

先确定你到底按什么计算

后台进入 Stores > Configuration > Sales > Delivery Methods > Table Rates。Table Rates只允许同时使用一种Condition:

  • Weight v. Destination:按订单重量和目的地计费。
  • Price v. Destination:按订单小计和目的地计费。
  • Number of Items v. Destination:按商品件数和目的地计费。

先选好Condition,再导出CSV。因为三种条件的第四列不同,拿“按金额”的模板导入“按重量”配置,表头对不上就会失败。

为什么必须切到Website作用域

Table Rates的规则是Website级别。页面左上角Store View如果停在Default Config,通常看不到正确的导入和导出操作。请切换到实际网站,例如Main Website,必要时取消“Use system value”,再保存一次Condition。

然后点击 Export CSV。导出的表头可能随后台语言显示,但不要手动翻译或改名,直接在原模板中追加规则。

一个按重量收费的例子

假设中国大陆订单按省份区分运费:上海0到5公斤12元,5公斤以上18元;其他地区0到5公斤15元,5公斤以上25元。示意数据可以写成:

CountryRegion/StateZip/Postal CodeWeight (and above)Shipping Price
CHNSH*518
CHNSH*012
CHN**525
CHN**015

这里最容易误解的是“and above”。5这一行表示重量达到5及以上时使用该价格,0这一行兜底较轻的订单。具体规则应按阈值从高到低排列;地区也要把具体值放在通配符之前,让Magento先匹配更精确的行。

国家、地区和邮编怎么写

Country使用三位国家代码,例如中国是 CHN、美国是 USA、澳大利亚是 AUS。Region/State要使用系统能识别的地区代码或名称。最保险的方法是从当前网站导出模板,并对照后台地区数据。

星号 * 是通配符。邮编列可以填一个明确邮编,也可以用星号匹配全部邮编。默认表格运费不适合表达复杂的连续邮编区间;若业务依赖邮编段,先确认规则数量是否可维护,必要时使用专门的运费模块或定制逻辑。

导入步骤并不复杂,作用域别选错

  1. 回到同一个Table Rates配置页面。
  2. 左上角再次确认是目标Website,而不是Default Config或某个Store View。
  3. 检查Condition与CSV模板一致。
  4. 在Import处选择整理好的CSV。
  5. 点击Save Config。
  6. 清理配置缓存,重新进入页面可再次导出,检查规则是否已写入。

不要只测一个地址

导入成功后至少测试四组购物车:精确地区的低重量、精确地区的高重量、通配地区的低重量、通配地区的高重量。还要测试重量刚好等于阈值时的结果,例如4.99、5.00和5.01公斤。

如果结账不显示Table Rates,按这个顺序排查:方法是否启用、国家是否在允许范围、Show Method if Not Applicable设置、商品是否有重量、虚拟商品是否参与金额计算、Website作用域是否正确,以及购物车地址是否已经触发重新估算。

一个实用建议:每次调整先导出当前规则留档。新CSV上线后保留旧版本和测试地址,运费争议发生时才能还原当时使用的规则。


如果您的运费涉及多仓、偏远地区、免费运费门槛或多个Website,规则很容易互相覆盖。需要协助梳理表格运费和结账验证,可以联系我们。