商品详情页加入立即购买功能

2016-07-20 16:24 来源:www.chinab4c.com 作者:ecshop专家

如下图显示加入立即购买功能,和加入购物车不冲突。

1.在模板页面的立即购买按钮这样写:
  1. <a class="goods_buy" href="javascript:addToCart({$goods.goods_id},1)">立即购买</a>
复制代码

2.在common.js 将addToCart改为:
  1. /* *
  2. * 添加商品到购物车
  3. */

  4. function addToCart(goodsId, type, parentId)
  5. {
  6. var goods= new Object();
  7. var spec_arr= new Array();
  8. var fittings_arr = new Array();
  9. var number = 1;
  10. var formBuy= document.forms['ECS_FORMBUY'];
  11. var quick = 0;

  12. // 检查是否有商品规格
  13. if (formBuy)
  14. {
  15. spec_arr = getSelectedAttributes(formBuy);

  16. if (formBuy.elements['number'])
  17. {
  18. number = formBuy.elements['number'].value;
  19. }

  20. quick = 1;
  21. }

  22. goods.quick = quick;
  23. goods.spec= spec_arr;
  24. goods.goods_id = goodsId;
  25. goods.number= number;
  26. goods.type= type;

  27. goods.parent= (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);
  28. Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJS**tring(), addToCartResp**e, 'POST', 'JSON');
  29. }
复制代码

3.在common.js 将addToCartResp**e改为:
  1. /* *
  2. * 处理添加商品到购物车的反馈信息
  3. */
  4. function addToCartResp**e(result)
  5. {

  6. if (result.error > 0)
  7. {
  8. // 如果需要缺货登记,跳转
  9. if (result.error == 2)
  10. {
  11. if (confirm(result.message))
  12. {
  13. location.href = 'user.php?act=add_booking&id=' + result.goods_id + '&spec=' + result.product_spec;
  14. }
  15. }
  16. // 没选规格,弹出属性选择框
  17. else if (result.error == 6)
  18. {
  19. openSpeDiv(result.message, result.goods_id, result.parent);
  20. }
  21. else
  22. {
  23. alert(result.message);
  24. }
  25. }
  26. else
  27. {

  28. var cartInfo = document.getElementById('ECS_CARTINFO');

  29. var cart_url = 'flow.php?step=cart';
  30. if (cartInfo)
  31. {
  32. cartInfo.innerHTML = result.content;
  33. }

  34. if (result.one_step_buy == '1')
  35. {
  36. location.href = cart_url;
  37. }
  38. if (result.type == '1')
  39. {
  40. location.href = cart_url;
  41. }
  42. else
  43. {
  44. switch(result.confirm_type)
  45. {
  46. case '1' :
  47. if (confirm(result.message)) location.href = cart_url;
  48. break;
  49. case '2' :
  50. if (!confirm(result.message)) location.href = cart_url;
  51. break;
  52. case '3' :
  53. location.href = cart_url;
  54. break;
  55. default :
  56. break;
  57. }
  58. }
  59. }
  60. }
复制代码

4.在flowl.php中大约100行加入下面的代码:
  1. $spe_arr[$row['attr_id']]['attr_type'] = $row['attr_type'];
复制代码


这样就OK了,其实原理很简单:就是在add_to_cart函数中加入了一个值,这个值传递到了flow.php中,并传到了返回函数addToCartResp**e中。当这个值存在的时候判断直接进入结算页面。

回答:
这是。。。。。。。。。。。。。。。。。。。。。。

我测试 了下你说的方法。他还是和加入购物车功能一样。点击还是跳到购物车那个界面了

目测不对劲,楼上还有测试结果,斑竹是不是可以删掉这个混淆视听的帖子了。