ecshop之收货地址改为手工输入

2016-07-07 16:06 来源:www.chinab4c.com 作者:ecshop专家

ecshop之收货地址改为手工输入

做外贸的网站,已经导入了世界国家、地区列表。但是此列表不太完善,希望能改为手工输入。
在参考了论坛中的方法后(http://bbs.ecshop.com/viewthread.php?tid=120495),觉得还是不太完美,需要修改多个文件的代码、数据表结构,修改的内容挺多。
后来找到另一个方法,感觉如果能实现,应该会比较完美如下:

很多客户在做ecshop二次开发的时候要求把ecshop的收货地址改为手工输入的,因为他们也不清楚客户属于哪个地方,还不如让客户自己输入呢。下面就讲下收货地址改为手工输入的具体实现,特别适合做国外客户的网店。
首先说下思想
用户输入的时候,如果该省市已经存在则查询出region_id,如果没有存在则插入数据库中,然后取得新数据的region_id。
为什么要这么做呢,因为ecshop本身的收货地址是下拉框形式,展现的是名字,但是数据传输和存储的是id,所以如果简单的改变下拉框的表现形式为输入框,会导致后面的购物流程里显示不出来区域名字。当然,你也可以修改数据传输和存储,但是太麻烦了,既要改数据表又要大量改代码。
我们目前的方法有几个好处
1,不需要大量改代码
很多人不清楚到底有多少流程会用到这个区域信息,所以大量改的话,一个是工程量大,一个是容易出现遗漏。
2,管理员可以在后台继续方便的管理区域。
接下来说下具体实现:
拿最新版本的ecshop来说,大概在flow.php里的296行,找到 elseif ($_REQUEST['step'] == 'c**ignee')这样一段代码
这里面是处理收货人信息的,找到380行,有几行注释说明 保存收货人信息
加入如下代码

看到没,主题思想是这样的,原来的流程是直接取得区域id,然后继续往下走,目前我们在把前台下拉框改为输入框后,取得输入的区域名,我们只需要把名称改为id,即可省去很多事。做法就是查询数据库,看看该区域是否存在,如果存在取得id,如果不存在就插入数据库然后取得id。
至此ecshop的收货地址改为手工输入的功能算是做好了

原帖地址:http://www.ecshopdev.com/article-443.html

回答:
收藏下。。。好贴。。。

有人用上述方法实现过吗?