分享ecshop仿京东组合购买插件

来源:互联网 发布:数据归一化的作用 编辑:程序博客网 时间:2024/06/16 02:52
几番努力,实现了仿京东组合购买插件,特点如下:
1、利用系统自带的商品配件功能,不用改数据库
2、用js及模板修改,改动量小,省心,呵呵
3、改动只涉及模板goods.dwt;goods_fittings.ldi,不会影响其他页面
泡在坛子里一段时间了,参考了高手的思路,在此谢了。
展示效果:
测试展示地址
http://www.517ld.com/goods.php?id=1710
小站正在改版,有大家需要的插件,看上的,免费送,呵呵,欢迎拍砖!
有问题随时q:8441546;说明是ecshop交流,呵呵
教程:
1、增加批量购买功能js(可以放到common.js里,呵呵):
  1. /* 组合购买__添加商品到购物车__Start by 517ld.com Joe */
  2. function addToCartNums(goodsId, parentId)
  3. {
  4. var goodsIds=goodsId.substr(0,goodsId.length-1).split(',');
  5. var buynum=goodsIds.length-1;
  6. for(i=0;i<goodsIds.length;i++)
  7. {
  8. var goods = new Object();
  9. var spec_arr = new Array();
  10. var fittings_arr = new Array();
  11. var number = 1;
  12. var quick = 1;
  13. goods.quick = quick;
  14. goods.spec = spec_arr;
  15. goods.goods_id = goodsIds[i];
  16. goods.number = 1;
  17. goods.parent = (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);
  18. if(i==buynum)
  19. {
  20. Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJS**tring(), addToCartResp**e, 'POST', 'JSON');
  21. }
  22. else
  23. {
  24. Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJS**tring(), '', 'POST', 'JSON');
  25. }
  26. }
  27. }
  28. /* 组合购买__添加商品到购物车__End */
复制代码

2、修改goods.dwt
在需要显示组合的地方(表明要引用配件商品了)
  1. <!-- #BeginLibraryItem "/library/goods_fittings.lbi" --><!-- #EndLibraryItem -->
复制代码

3、修改goods_fittings.lbi:这个页面就是要修改显示组合的页面,样式自己定义,新修改增加了主产品特价判断

  1. <!-- {if $fittings} -->
  2. <script type="text/javascript">
  3. function check(){
  4. var result='{$goods.goods_id},';
  5. var fid = document.getElementById('boxOne');
  6. var box = fid.getElementsByTagName('input');
  7. for(var i = 0; i < box.length; i++){
  8.            if(box[i].type == 'checkbox' && box[i].checked){
  9.                 result = result + box[i].value + ',';
  10.            }
  11.         }
  12. //alert(result);
  13. //return false;
  14.         //在Common.js文件中添加了addToCartNums方法
  15.         addToCartNums(result);
  16. document.documentElement.scrollTop=0;
  17. }
  18. /*
  19.    计算合计金额,by 517ld.com Joe
  20. */
  21. function totalPrice(){
  22. //var result=Math.round({$goods.shop_price});
  23. var re = /[¥元]/g;
  24. <!--{if $goods.is_promote and $goods.gmt_end_time } 促销价格-->
  25.   var result='{$goods.promote_price}';
  26.   result=result.replace(re,'');
  27. <!--{else}-->
  28.   var result={$goods.shop_price};
  29. <!--{/if}-->
  30. //alert(result);
  31. var fid = document.getElementById('boxOne');
  32. var box = fid.getElementsByTagName('input');
  33. var j=1;
  34. for(var i = 0; i < box.length; i++){
  35.     if(box[i].type == 'checkbox' && box[i].checked){
  36.   var a = box[i].name;
  37.      result =  Number(result) +  Number(a.replace(re, ''));
  38.      j+=1;
  39.     }
  40. }
  41. result_format='¥%s元';
  42. re_re=/\%s/g;
  43. result_format=result_format.replace(re_re, result);
  44. document.getElementById("totalPrice").innerHTML=result_format;
  45. document.getElementById("totalNum").innerHTML=j;
  46. }
  47. </script>
  48. <div class="infotit clearfix">
  49. <h2><span class="l"></span><span class="r"></span>最佳组合</h2>
  50. </div>
  51. <div class="fitting" id="boxOne">
  52. <div class="goodsbox1">
  53.   <div class="goodsbox">
  54.     <div class="imgbox"><img src="{$goods.goods_thumb}" alt="{$goods.goods_style_name|escape:html}" /></div>
  55.      <a href="#" target="_blank" title="{$goods.goods_style_name|escape:html}">{$goods.goods_style_name|escape:html}</a><br />
  56.      <!--{if $goods.is_promote and $goods.gmt_end_time } 促销价格-->
  57.      <b class="f1">{$goods.promote_price}</b>
  58.      <!--{else}-->
  59.      <b class="f1">{$goods.shop_price_formated}</b>
  60.      <!--{/if}-->
  61.   </div>
  62. </div>
  63. <div class="fitting_right">
  64.   <br><br><br>
  65.   <font style="font-size:13px;font-weight:bold;color:#003399;">购买最佳组合</font><br>
  66.     已选择:<span id="totalNum" style="color:red;"></span>个商品<br>
  67.     搭配价:<span id="totalPrice" style="color:red;font-weight:bold;"></span><br>
  68.     <image src="/images/gmzh.gif" style="cursor:hand" onClick="check()" >
  69. </div>
  70. <div class="fitting_middle">
  71.   <!--{foreach from=$fittings item=goods}-->
  72.     <div class="goodsbox">
  73.     <div class="imgbox"><a href="{$goods.url}" target="_blank"><img src="{$goods.goods_thumb}" alt="{$goods.name|escape:html}" /></a></div>
  74.      <a href="{$goods.url}" target="_blank" title="{$goods.goods_name|escape:html}">{$goods.short_name|escape:html}</a><br />
  75.      <input type="checkbox" name="{$goods.fittings_price}" value="{$goods.goods_id}"  onClick="totalPrice()" checked=checked /><b class="f1">{$goods.fittings_price}</b>
  76.     </div>
  77.   <!--{/foreach}-->
  78. </div>
  79. <script>totalPrice();</script>
  80. </div>
  81. <!-- {/if} -->
复制代码

4、后台为一个商品增加配件,测试吧、享受吧,呵呵


http://bbs.ecshop.com/thread-181673-1-1.html


原创粉丝点击