开启ecshop一件购买功能
接触EC不久,也慢慢学习ecshop二次开发,为了实现商品直接购买功能。去百度搜索了很多资料。不过大多不能用或者不全!后来总算找到个靠谱的,才知道原来ecshop后台中有自带一步购物功能。但开启后,就无法使用购物车功能。我在那篇教程的基础上再加上自己的修改,终于完美实现了ecshop直接购买与购物车并存的功能。这里就跟大家详细讲解下:
- 到ecshop也就是你网站的后台开启一步购物。
2. 增加直接购买的按钮。
在temp/default/goods.dwt下找到<li class="padd">
<ahref="javascript:bool=0;addToCart({$goods.goods_id})"><imgsrc="images/bnt_cat.gif" /></a>
<a href="javascript:collect({$goods.goods_id})"><imgsrc="images/bnt_colles.gif" /></a>
大概在390行的位置.然后在下面增加你的button代码:
<ahref="javascript:bool=1;addToCart({$goods.goods_id})"><imgsrc="images/bnt_buy_1.gif" alt="直接购买"/></a>
其中bool=1是用来判断用户点的是购物车还是直接购买。
- 修改点击按钮时负责处理的js函数addToCart.
打开js/common.js,在开头定义变量var bool=0.然后找到
Ajax.call('flow.php?step=add_to_cart',&goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
修改为
Ajax.call('flow.php?step=add_to_cart', 'bool='+bool+'&goods=' +goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
即向flow.php中传入bool变量。
- 修改flow.php。
将flow.php中if($_CFG['one_step_buy'] == '1')全改为if(bool==1)这样就实现了当在后台开启一步购物也能通过bool变量区分购物车和一步购物。
- 修改addToCartResponse.
回到common.js。找到var cart_url ='flow.php?step=cart';下面增加
if(bool == 1)
cart_url= 'flow.php?step=checkout';
这样就实现了点击直接购买就跳过购物车页面直接进入商品确认页面。
OK ,功能完成。