通过清心醉

Ecshop二次开发-增加立即结算

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的结构,这时候我们一样可以借鉴。

 

关于作者

清心醉 administrator

发表评论

请输入验证码: