广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > ecshop增加直接购买的功能

二次开发Ecshop二次开发

二次开发Ecshop二次开发

ecshop增加直接购买的功能

1:需要在goods.dwt模板中增加一个直接购买的按扭.

<ahref="javascript:addToCart1({$goods.goods_id})">直接购买</a>

2:在common.js增加直接购买的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'];

  // 检查是否有商品规格

  if (formBuy)

  {

 spec_arr = getSelectedAttributes(formBuy);

 if (formBuy.elements['number'])

 {

  number = formBuy.elements['number'].value;

 }

  }

  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');

}

 


3:在common.js增加返回ajax值的js

 


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;

  }

 }

 // 没选规格,跳到商品详情页

 else if (result.error == 9)

 {

  location.href = 'goods.php?id=' + result.goods_id;

 }

 else

 {

  location.href = "flow.php";

 }

  }

  else

  {

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

 if (cartInfo)

 {

  cartInfo.innerHTML = result.content;

 }

   location.href = "flow.php";

  

  }

}

 


4:在flow.php中增加直接购买的代码

 

 

elseif ($_REQUEST['step'] == 'add_to_cart1'){

  include_once('includes/cls_json.php');

 if (!empty($_REQUEST['goods_id']) && empty($_POST['goods']))

 {

  if (!is_numeric($_REQUEST['goods_id']) || intval($_REQUEST['goods_id']) <= 0)

  {

   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']);

  

 if (empty($goods->spec))

 {

  $sql = "SELECT COUNT(*) " .

    "FROM " . $ecs->table('goods_attr') . " AS ga, " .

       $ecs->table('attribute') . " AS a " .

    "WHERE ga.attr_id = a.attr_id " .

    "AND ga.goods_id = '" . $goods->goods_id . "' " .

    "AND a.attr_type = 1";

  if ($db->getOne($sql) > 0)

  {

   $result['error']   = 9;

   $result['goods_id'] = $goods->goods_id;

   die($json->encode($result));

  }

 }

  

 if ($_CFG['one_step_buy'] == '1')

 {

  clear_cart();

 }

 else

 {

  if (cart_goods_exists($goods->goods_id, $goods->spec, CART_GENERAL_GOODS))

  {

   // 商品已经存在于购物车中,返回错误信息

   $result['error']   = 1;

   $result['message'] = $_LANG['goods_exists'];

   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);

  }

 }

 $result['confirm_type'] = 4;

 die($json->encode($result));

}

最后你就能发现,这个站可以有两种购买方式共存,一种是直接购买,还有一种就是放在购物车里面。