当前位置:首页 > CMS教程 > ecshop > 列表

ecshop在购物车基础上添加立即购买功能

发布:smiling 来源: PHP粉丝网  添加日期:2014-11-15 09:05:29 浏览: 评论:0 

1:goods.dwt模板文件

<a href="javascript:addToCart1({$goods.goods_id})"><img src="images/bnt_liji.gif" />

2:js/common.js

  1. function addToCart1(goodsId, parentId) 
  2.   var goods        = new Object(); 
  3.   var spec_arr     = new Array(); 
  4.   var fittings_arr = new Array(); 
  5.   var number       = 1; 
  6.   var formBuy      = document.forms['ECS_FORMBUY']; 
  7.   var quick     = 0; 
  8.   // 检查是否有商品规格  
  9.   if (formBuy) 
  10.   { 
  11.     spec_arr = getSelectedAttributes(formBuy); 
  12.     if (formBuy.elements['number']) 
  13.     { 
  14.       number = formBuy.elements['number'].value; 
  15.     } 
  16.  quick = 1; 
  17.   } 
  18.   goods.quick    = quick; 
  19.   goods.spec     = spec_arr; 
  20.   goods.goods_id = goodsId; 
  21.   goods.number   = number; 
  22.   goods.parent   = (typeof(parentId) == "undefined") ? 0 : parseInt(parentId); 
  23.   Ajax.call('flow.php?step=add_to_cart1''goods=' + goods.toJSONString(), addToCartResponse1, 'POST''JSON'); 
  24. function addToCartResponse1(result) 
  25.   if (result.error > 0) 
  26.   { 
  27.     // 如果需要缺货登记,跳转 
  28.     if (result.error == 2) 
  29.     { 
  30.       if (confirm(result.message)) 
  31.       { 
  32.         location.href = 'user.php?act=add_booking&id=' + result.goods_id + '&spec=' + result.product_spec; 
  33.       } 
  34.     } 
  35.     // 没选规格,弹出属性选择框 
  36.     else if (result.error == 6) 
  37.     { 
  38.       openSpeDiv(result.message, result.goods_id, result.parent); 
  39.     } 
  40.     else 
  41.     { 
  42.       alert(result.message); 
  43.     } 
  44.   } 
  45.   else 
  46.   { 
  47.     var cartInfo = document.getElementById('ECS_CARTINFO'); 
  48.     var cart_url = 'flow.php?step=cart'
  49.     if (cartInfo) 
  50.     { 
  51.       cartInfo.innerHTML = result.content; 
  52.     } 
  53.  location.href = cart_url; 
  54.      
  55.   } 

3:根目录下的flow.php

  1. elseif ($_REQUEST['step'] == 'link_buy')上面添加 
  2.  
  3. elseif ($_REQUEST['step'] == 'add_to_cart1'
  4.     include_once('includes/cls_json.php'); 
  5.     $_POST['goods'] = json_str_iconv($_POST['goods']); 
  6.     if (!emptyempty($_REQUEST['goods_id']) && emptyempty($_POST['goods'])) 
  7.     { 
  8.         if (!is_numeric($_REQUEST['goods_id']) || intval($_REQUEST['goods_id']) <= 0) 
  9.         { 
  10.             ecs_header("Location:./\n"); 
  11.         } 
  12.         $goods_id = intval($_REQUEST['goods_id']); 
  13.         exit
  14.     } 
  15.     $result = array('error' => 0, 'message' => '''content' => '''goods_id' => ''); 
  16.     $json  = new JSON; 
  17.     if (emptyempty($_POST['goods'])) 
  18.     { 
  19.         $result['error'] = 1; 
  20.         die($json->encode($result)); 
  21.     } 
  22.     $goods = $json->decode($_POST['goods']); 
  23.     /* 检查:如果商品有规格,而post的数据没有规格,把商品的规格属性通过JSON传到前台 */ 
  24.     if (emptyempty($goods->spec) AND emptyempty($goods->quick)) 
  25.     { 
  26.         $sql = "SELECT a.attr_id, a.attr_name, a.attr_type, "
  27.             "g.goods_attr_id, g.attr_value, g.attr_price " . 
  28.         'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 
  29.         'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . 
  30.         "WHERE a.attr_type != 0 AND g.goods_id = '" . $goods->goods_id . "' " . 
  31.         'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id'
  32.         $res = $GLOBALS['db']->getAll($sql); 
  33.         if (!emptyempty($res)) 
  34.         { 
  35.             $spe_arr = array(); 
  36.             foreach ($res AS $row
  37.             { 
  38.                 $spe_arr[$row['attr_id']]['attr_type'] = $row['attr_type']; 
  39.                 $spe_arr[$row['attr_id']]['name']     = $row['attr_name']; 
  40.                 $spe_arr[$row['attr_id']]['attr_id']     = $row['attr_id']; 
  41.                 $spe_arr[$row['attr_id']]['values'][] = array
  42.                                                             'label'        => $row['attr_value'], 
  43.                                                             'price'        => $row['attr_price'], 
  44.                                                             'format_price' => price_format($row['attr_price'], false), 
  45.                                                             'id'           => $row['goods_attr_id']); 
  46.             } 
  47.             $i = 0; 
  48.             $spe_array = array(); 
  49.             foreach ($spe_arr AS $row
  50.             { 
  51.                 $spe_array[]=$row
  52.             } 
  53.             $result['error']   = ERR_NEED_SELECT_ATTR; 
  54.             $result['goods_id'] = $goods->goods_id; 
  55.             $result['parent'] = $goods->parent; 
  56.             $result['message'] = $spe_array
  57.             die($json->encode($result)); 
  58.         } 
  59.     } 
  60.  
  61.     /* 检查:商品数量是否合法 */ 
  62.     if (!is_numeric($goods->number) || intval($goods->number) <= 0) 
  63.     { 
  64.         $result['error']   = 1; 
  65.         $result['message'] = $_LANG['invalid_number']; 
  66.     } 
  67.     /* 更新:购物车 */ 
  68.     else 
  69.     { 
  70.         // 更新:添加到购物车 
  71.         if (addto_cart($goods->goods_id, $goods->number, $goods->spec, $goods->parent)) 
  72.         { 
  73.             if ($_CFG['cart_confirm'] > 2) 
  74.             { 
  75.                 $result['message'] = ''
  76.             } 
  77.             else 
  78.             { 
  79.                 $result['message'] = $_CFG['cart_confirm'] == 1 ? $_LANG['addto_cart_success_1'] : $_LANG['addto_cart_success_2']; 
  80.             } 
  81.             $result['content'] = insert_cart_info(); 
  82.             $result['one_step_buy'] = $_CFG['one_step_buy']; 
  83.         } 
  84.         else 
  85.         { 
  86.             $result['message']  = $err->last_message(); 
  87.             $result['error']    = $err->error_no; 
  88.             $result['goods_id'] = stripslashes($goods->goods_id); 
  89.             if (is_array($goods->spec)) 
  90.             { 
  91.                 $result['product_spec'] = implode(','$goods->spec); 
  92.             }//开源软件:phpfensi.com 
  93.             else 
  94.             { 
  95.                 $result['product_spec'] = $goods->spec; 
  96.             } 
  97.         } 
  98.     } 
  99.     $result['confirm_type'] =3; 
  100.     die($json->encode($result)); 
  101. }

Tags: ecshop购物车 ecshop立即购买

分享到: