Ecshop默认的购物流程是先增加到购物车,然后再执行结算生成订单,如果客户看到了产品想直接购买,就会多个无趣的购物车过程。
修改方法网上也有,但可能说的不是很明细。而且该方法也会有争议的地方。
比如用户直接购买但未完成,然后返回主页什么的,购物车是否要清空重新计算,这个得看个人的需求。作者默认是不修改购物车的内容。
好了。直接说开发过程。
产品详细页在goods.dwt文件里
约337行(各人主题不一样。你可以搜索javascript:addToCart({$goods.goods_id}))
这是直接加入购物车的,我们在这下一行新增一个立即计算的URL
<a href=”javascript:Clearing({$goods.goods_id})”>立即结算</a>
点击时触发Clearing方法,参数为产品的ID,这时候我们的触发按钮就做好了。在写JS以前我们先来看JS的文件体:
/js/common.js文件
function addToCart(goodsId, parentId) 有这么一个方法是AJAX的POST请求,里面有个Ajax.call()方法在transport.js文件里有写请求方法等。
在该方法里有个Ajax.call(….. addToCartResponse, ‘POST’, ‘JSON’) //这里的addToCartResponse就是回调方法了
我们复制addToCart和addToCartResponse这两个方法
重新命名为Cliaring和Cliaringreturn //第一个为AJAX请求,第二个为回调
修改Cliaring里的Ajax.call请求的回调URL::
Ajax.call(….. addToCartResponse, ‘POST’, ‘JSON’)为Ajax.call(….. Cliaringreturn, ‘POST’, ‘JSON’)
接下来,我们修改Cliaringreturn的回调里的一个变量URL
var cart_url = ‘flow.php?step=checkout‘; 修改为var cart_url = ‘flow.php?step=cart‘;
到此修改就完毕了。
针对mobile手机端的话,其实是大同小异,只是mobile开发者使用了MVC的结构,这时候我们一样可以借鉴。
关于作者