Magento表运费设置方法

by Web全栈工程师 on 2011 年 08 月 04 日

Magento 默认启用的是固定运费(Flat Rate),但是有时候我们需要按照重量来计算快递费,所以,我们可以用表运费(Table Rate)来实现这个功能。

作为我们国内Magento网站来说,如果我们需要使用顺丰速运的运费模块,我们需要先导入地区编码,才能使用表运费功能。

导入表运费的地区编码涉及到的数据库表有:
directory_country(国家代码列表)
directory_country_region(地区代码列表)

directory_country 我们不需要修改,里面已经定义了中国的标识符号:

 

我们只需要在directory_country_region表里导入中国省份和地区的标识符即可,添加数据库表数据的方法很多,可以直接在phpmyadmin等数据库工具直接添加,我这里介绍通过mysql导入的方法:

INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SH', '上海');

如果需要根据locale定义不同语言下面显示的地区名称,可以参考下directory_country_region_name这个表

全国34省份和地区编码参考:

INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'BJ', '北京');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SH', '上海');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'TJ', '天津');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HE', '河北');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SX', '山西');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'NM', '内蒙古');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'LN', '辽宁');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'JL', '吉林');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HL', '黑龙江');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'JS', '江苏');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'ZJ', '浙江');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'AH', '安徽');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'FJ', '福建');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'JX', '江西');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SD', '山东');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HA', '河南');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HB', '湖北');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HN', '湖南');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'GX', '广西');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'GD', '广东');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HI', '海南');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'CQ', '重庆');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SC', '四川');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'GZ', '贵州');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'YN', '云南');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'XZ', '西藏');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'SN', '陕西');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'GS', '甘肃');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'QH', '青海');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'NX', '宁夏');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'XJ', '新疆');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'HK', '香港');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'AM', '澳门');
INSERT INTO `magentodemo`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES (NULL, 'CN', 'TW', '台湾');

只需把SQL代码里的magentodemo替换成自己的数据库名,如果有前缀名,可以在directory_country_region加上表前缀。

在数据库里加入省份和地区的标识符之后,我们就可以导入表运费的CSV文件,
当然,导入表运费的选项,是在后台设置里,选择相应网站列表之后才会显示的,如图:

导入的CSV格式如下:


参考资料:
http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-table-rate-shipping/
http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide/chapter_4

Comments on this entry are closed.

Previous post:

Next post: