ecshop立即购买和加入购物车并存
2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家
[p=28, 2, left]ecshop如何设置了购买停留在商品页面之后。将ecshop商品加入购物车的时候。就不会直接进入购物车。这样使用购物车非常不方便。我们为了既保持该页面功能,又能进入购物车功能。所以增加了另外一个购买按扭。点购买之后。可以直接进入ecshop的购物车。这样只牵涉到修改ecshop模板,二次开发难度大大降低。 1:goods.dwt模板文件 <a href="javascript:addToCart1({$goods.goods_id})"><img src="images/bnt_liji.gif" />[p=28, 2, left]2:js/common.js function addToCart1(goodsId, parentId) { var goods= new Object(); var spec_arr= new Array(); var fittings_arr = new Array(); var number = 1; var formBuy= document.forms['ECS_FORMBUY']; var quick= 0;[p=28, 2, left]// 检查是否有商品规格 if (formBuy) { spec_arr = getSelectedAttributes(formBuy);[p=28, 2, left] if (formBuy.elements['number']) { number = formBuy.elements['number'].value; }[p=28, 2, left] quick = 1; }[p=28, 2, left]goods.quick = quick; goods.spec= spec_arr; goods.goods_id = goodsId; goods.number= number; goods.parent= (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);[p=28, 2, left]Ajax.call('flow.php?step=add_to_cart1', 'goods=' + goods.toJSONString(), addToCartResponse1, 'POST', 'JSON'); }[p=28, 2, left]function addToCartResponse1(result) { if (result.error > 0) { // 如果需要缺货登记,跳转 if (result.error == 2) { if (confirm(result.message)) { location.href = 'user.php?act=add_booking&id=' + result.goods_id + '&spec=' + result.product_spec; } } // 没选规格,弹出属性选择框 else if (result.error == 6) { openSpeDiv(result.message, result.goods_id, result.parent); } else { alert(result.message); } } else { var cartInfo = document.getElementById('ECS_CARTINFO'); var cart_url = 'flow.php?step=cart'; if (cartInfo) { cartInfo.innerHTML = result.content; } location.href = cart_url; } } 3:根目录下的flow.php[p=28, 2, left]elseif ($_REQUEST['step'] == 'link_buy')上面添加[p=28, 2, left] elseif ($_REQUEST['step'] == 'add_to_cart1') { include_once('includes/cls_json.php'); $_POST['goods'] = json_str_iconv($_POST['goods']);[p=28, 2, left] if (!empty($_REQUEST['goods_id']) && empty($_POST['goods'])) { if (!is_numeric($_REQUEST['goods_id']) || intval($_REQUEST['goods_id']) <= 0) { ecs_header("Location:./\n"); } $goods_id = intval($_REQUEST['goods_id']); exit; }[p=28, 2, left] $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => ''); $json= new JSON;[p=28, 2, left] if (empty($_POST['goods'])) { $result['error'] = 1; die($json->encode($result)); }[p=28, 2, left] $goods = $json->decode($_POST['goods']);[p=28, 2, left] /* 检查:如果商品有规格,而post的数据没有规格,把商品的规格属性通过JSON传到前台 */ if (empty($goods->spec) AND empty($goods->quick)) { $sql = "SELECT a.attr_id, a.attr_name, a.attr_type, ". "g.goods_attr_id, g.attr_value, g.attr_price " . 'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . "WHERE a.attr_type != 0 AND g.goods_id = '" . $goods->goods_id . "' " . 'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id';[p=28, 2, left]$res = $GLOBALS['db']->getAll($sql);[p=28, 2, left]if (!empty($res)) { $spe_arr = array(); foreach ($res AS $row) { $spe_arr[$row['attr_id']]['attr_type'] = $row['attr_type']; $spe_arr[$row['attr_id']]['name']= $row['attr_name']; $spe_arr[$row['attr_id']]['attr_id']= $row['attr_id']; $spe_arr[$row['attr_id']]['values'][] = array( 'label'=> $row['attr_value'], 'price'=> $row['attr_price'], 'format_price' => price_format($row['attr_price'], false), 'id'=> $row['goods_attr_id']); } $i = 0; $spe_array = array(); foreach ($spe_arr AS $row) { $spe_array[]=$row; } $result['error']= ERR_NEED_SELECT_ATTR; $result['goods_id'] = $goods->goods_id; $result['parent'] = $goods->parent; $result['message'] = $spe_array;[p=28, 2, left]die($json->encode($result)); } } [p=28, 2, left] /* 检查:商品数量是否合法 */ if (!is_numeric($goods->number) || intval($goods->number) <= 0) { $result['error']= 1; $result['message'] = $_LANG['invalid_number']; } /* 更新:购物车 */ else { // 更新:添加到购物车 if (addto_cart($goods->goods_id, $goods->number, $goods->spec, $goods->parent)) { if ($_CFG['cart_confirm'] > 2) { $result['message'] = ''; } else { $result['message'] = $_CFG['cart_confirm'] == 1 ? $_LANG['addto_cart_success_1'] : $_LANG['addto_cart_success_2']; }[p=28, 2, left]$result['content'] = insert_cart_info(); $result['one_step_buy'] = $_CFG['one_step_buy']; } else { $result['message']= $err->last_message(); $result['error'] = $err->error_no; $result['goods_id'] = stripslashes($goods->goods_id); if (is_array($goods->spec)) { $result['product_spec'] = implode(',', $goods->spec); } else { $result['product_spec'] = $goods->spec; } } }[p=28, 2, left] $result['confirm_type'] =3; die($json->encode($result)); } |
最近更新
常用插件
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
ecshop热门问答
ecshop热门资料
ecshopsession
ecshop专业版
ecshoprelease
ecshop购物车强化
ecshop完全手册
ecshop拍卖
js保存文件
ecshop为您节省
ecshop文章管理
ecshop姐姐
ecshop淘宝CSV数据
ecshop会话
ecshop3G手机
ecshop无法
ecshop漏洞补丁
ecshop网站帮助
ecshop女生
ecshopvdakhbclcj
ecshop合二为一
ecshop全站
ecshop弱智
ecshop列队
ecshop新浪微博登录
ecshoplistTable
ecshop修改尺寸
ecshop购买流程
ecshopwin7
ecshop分店
ecshopurl目录结构
ecshop库存插件