购买直接进入购物车与默认购物流程并存的ecshop
2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家
| ecshop如何设置了购买停留在商品页面之后。将ecshop商品加入购物车的时候。就不会直接进入购物车。这样使用购物车非常不方便。我们为了既保持该页面功能,又能进入购物车功能。所以增加了 另外一个购买按扭。点购买之后。可以直接进入ecshop的购物车。这样只牵涉到修改ecshop模板,对ecshop二次开发稍微修改就可以做到。 1:goods.dwt模板 <a href="javascript:addToCart1({$goods.goods_id})"><img src="images/bnt_cat.gif" /> 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; // 检查是否有商品规格 if (formBuy) { spec_arr = getSelectedAttributes(formBuy); if (formBuy.elements['number']) { number = formBuy.elements['number'].value; } quick = 1; } goods.quick = quick; goods.spec= spec_arr; goods.goods_id = goodsId; goods.number= number; goods.parent= (typeof(parentId) == "undefined") ? 0 : parseInt(parentId); Ajax.call('flow.php?step=add_to_cart1', 'goods=' + goods.toJSONString(), addToCartResponse1, 'POST', 'JSON'); } 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 elseif ($_REQUEST['step'] == 'add_to_cart1') { include_once('includes/cls_json.php'); $_POST['goods'] = json_str_iconv($_POST['goods']); 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; } $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => ''); $json= new JSON; if (empty($_POST['goods'])) { $result['error'] = 1; die($json->encode($result)); } $goods = $json->decode($_POST['goods']); /* 检查:如果商品有规格,而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'; $res = $GLOBALS['db']->getAll($sql); 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; die($json->encode($result)); } } /* 检查:商品数量是否合法 */ 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']; } $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; } } } $result['confirm_type'] =3; die($json->encode($result)); } http://bin886.com/ cp2021.com | 
 
        
					
						
					
					
						
                          
					
				 
      
      最近更新
常用插件
- ecshop二次开发详细页面生
                                  插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人... 
- ecshop2.7.1打印发货单插件
                                  ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs... 
- ecshop商品分类名称增加样
                                  ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样... 
- ecshop分类批量扩展插件
                                  ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们... 
- ecshop二次商品订购人信息
                                  ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的... 
ecshop热门问答
ecshop热门资料
          
               
            ecshopTools 
                
            ecshop时限 
                
            ecshop谷歌浏览器 
                
            ecshop便宜 
                
            ecshop贝宝 
                
            ecshop商店关键字 
                
            ecshop商品团购超值礼包出错 
                
            ecshoparticle 
                
            ecshop倍数 
                
            ecshop用户等级 
                
            ecshopcolthing 
                
            ecshop飞龙 
                
            ecshop敲诈 
                
            ecshop修改那里 
                
            ecshop在线人数 
                
            ecshopconfig 
                
            ckedit水印 
                
            ecshop数据库服务器 
                
            ecshop服务器时间 
                
            ecshop首页文章 
                
            ecshop1064 
                
            ecshop缺货不能订购 
                
            ecshop输入关键词 
                
            ecshop老杨ecshp开发 
                
            子分类 
                
            ecshopeditor 
                
            ecshop重庆 
                
            ecshop困惑 
                
            ecshop打折信息 
                
            ecshop四舍五入 
             
        
      


