> Zencart中文手册 > zen-cart送货时间的设置方法

在百度搜了下“网上商店 设定送货时间”, 发现两个论坛的帖子,一个是shopex的,一个是ecshop的。Ethan了解过客户类似的需求,并改造了zen cart,让zen cart也可以设定送货时间。 
先看下shopex的帖子,叫做“愚蠢的送货时间设定”。 “现在下订单的时候用户可以选择送货时间,表面看上去很好,其实可以看出shopex的人自己都并不开店。 流有太多不确定因素,而客户完全不懂得这些。我有一个客户,下午13:00下的单,要求我15:00送到,这可能么? 以这项加得实在多余。增加了客户不满意的可能性。客户真的对送货时间有要求,在备注说明即可。” 
Ethan认为在某些情况下, 送货时间设定还是有用的,甚至是必须的。 
再看下ecshop的帖子,叫做“ECSHOP中能设置送货时间么?”。 
“我的网店同时还做附近小区的销售,因此需要限制一下送货时间,比如,设置在晚上12点之前能实时送货,我没有找到,请问在ECSHOP中能设置送货时间么? 
- 客户可以填写方便送货的时间,但网店不能限制送货的时间,建议写一个滚动公告在首。” 
看来ecshop还不支持设置送货时间。 
一个是愚蠢,一个是不可及,下面看看怎么改造zen cart。 
首先设计数据库,增加一个表
然后设计后台操作界面
然后,在zenmagick的框架中,设计关于送货时间的model和controller。虽然利用框架做这件事有点大才小用,但Ethan觉得利用框架写代码逻辑上比较爽。和zenmagick相比,zen cart由于没有规范的MVC框架,在这方面逊色很多。 
然后,在zen cart下单后的判断逻辑里增加对送货时间的判断,客户下单时间不能超过送货时间减去提前量。所谓提前量,就是给店主备货提供一段时间,可以在后台针对每个时间单独设定,如上图所示。如果客户下单时间超过送货时间减去提前量,则返回选择配送方式的页面,提示要求选择新的送货时间。 
最后,在选择配送方式的页面,增加送货时间设定: 
注意这里还提供了日期的选择,默认为当天,而“请选择时间...“是选择小时和分钟的。显然如果日期选择当前日期以前,是无法下单的。如日期选择当前日期或当前日期以后,能否下单,要看所选的具体小时和分钟,以及对应的提前量。 
日期的选择是利用了zencart后台的选择日期的脚本,经过适当设置后,运用到了前台。 
其具体界面可以利用CSS设置成和网站整体风格相符。