ecshop增加购买直接进入购物车与默认购物流程并存
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-18 16:39:16 浏览: 评论:0
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 (!emptyempty($_REQUEST['goods_id']) && emptyempty($_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 (emptyempty($_POST['goods']))
- {
- $result['error'] = 1;
- die($json->encode($result));
- }
- $goods = $json->decode($_POST['goods']);
- /* 检查:如果商品有规格,而post的数据没有规格,把商品的规格属性通过JSON传到前台 */
- if (emptyempty($goods->spec) AND emptyempty($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 (!emptyempty($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));
- }
Tags: ecshop增加购买 购物流程
相关文章
- ·简化Ecshop匿名用户购物流程 (2014-11-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)