欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ecshop立即购买的实现方法

shiping1 的头像

 ecshop立即购买的实现方法


ecshop立刻购买实现方法

后台开启“一步购物则”可以不用到购物车“直接结算” 。从而实现立刻购买。然而购物车的功能又没有了。有没有像淘宝那样即可以立刻购买。又有购物车功能呢?
    1、首先我们先将“添加购物车”的跳转链接复制替换“收藏商品”的按钮上然后设一个bool值为1 。
<a href="javascript:bool =1;addToCart({$goods.goods_id})">。
    2、然后打开JS处理文件“common.js” ,在这个脚本的第一行代码之上加一个全局变量var bool =0; 查找点击购物车之后的那条链接即:flow.php?step=cart  ,找到这个(在第88行 那块)之后,在下面加这句话 (bool == 1) && (cart_url = 'flow.php?step=c**ignee');
意思是 当bool = 1 条件满足时 则cart_url链接到  'flow.php?step=checkout' 直接购买的页面



这样就实现了“立刻购买”与“添加到购物车”并存的方法

来自   http://bbs.ecshop.com/viewthread.php?tid=1132434


ecshop实现立刻购买与添加到购物车并存的方法


ecshop实现立刻购买与添加到购物车并存的方法  

2011-11-07 16:38:01|  分类: 电子商务|字号 订阅

    在后台开启“一步购物则”可以不用到购物车“直接结算” 。从而实现立刻购买。然而购物车的功能又没有了。有没有像淘宝那样即可以立刻购买。又有购物车功能呢?

    1、首先我们先将“添加购物车”的跳转链接复制替换“收藏商品”的按钮上然后设一个bool值为1 。

<a href="javascript:bool =1;addToCart({$goods.goods_id})">。

    2、然后打开JS处理文件“common.js” ,在这个脚本的第一行代码之上加一个全局变量var bool =0; 查找点击购物车之后的那条链接即:flow.php?step=cart
  ,找到这个(在第88行 那块)之后,在下面加这句话 (bool == 1) && (cart_url = 'flow.php?step=consignee');

意思是 当bool = 1 条件满足时 则cart_url链接到  'flow.php?step=consignee' 直接购买的页面

这样就实现了“立刻购买”与“添加到购物车”并存的方法

来自  http://miliwo.com/w/721/12977

 



ECSHOP首页增加”立即购买”按钮

发表:BKball 发表时间:2013-08-13 阅读:(1558) 次

 第一步:首先查看商品分类页面里商品列表的代码,找出添加立即购买按钮的代码

在模板文件夹的-library文件夹里的goods_list.lbi文件,找到以下代码:

<p>
<a href=&rdquo;javascript:addToCart({$goods.goods_id})&rdquo;><img src=&rdquo;images/but_buy.jpg&rdquo;></a>
<a href=&rdquo;javascript:collect({$goods.goods_id})&rdquo;><img src=&rdquo;images/but_coll.jpg&rdquo;></a>
<a href=&rdquo;javascript:;&rdquo; id=&rdquo;compareLink&rdquo; onClick=&rdquo;Compare.add({$goods.goods_id},&rsquo;{$goods.goods_name|escape:&rdquo;quotes&rdquo;}&rsquo;,'{$goods.type}&rsquo;)&rdquo;><img src=&rdquo;images/but_comp.jpg&rdquo;></a>
</p>

第二步:修改此段代码,将$goods.goods_id修改为$goods.id,并删除&ldquo;对比按钮&rdquo;的代码(如果需要不删除也行)

整段代码如下:

<p>
<a href=&rdquo;javascript:addToCart({$goods.id})&rdquo;><img src=&rdquo;images/but_buy.jpg&rdquo;></a>
<a href=&rdquo;javascript:collect({$goods.id})&rdquo;><img src=&rdquo;images/but_coll.jpg&rdquo;></a>
</p>

第三步:找到新品上市、热销商品、精品推荐这3个模块对于的lbi文件。修改此段代码

在模板文件夹的-library文件夹里,分别为:recommend_best.lbi,recommend_hot.lbi,recommend_new.lbi。并打开添加代码。

<li>
         <p><a href=&rdquo;{$goods.url}&rdquo;><img src=&rdquo;{$goods.thumb}&rdquo; alt=&rdquo;{$goods.name|escape:html}&rdquo; /></a></p>
         <p><a href=&rdquo;{$goods.url}&rdquo; title=&rdquo;{$goods.name|escape:html}&rdquo;>{$goods.short_name|escape:html}</a></p>
         <p>
          <!&ndash; 是否显示市场价格,如不需显示不添加即可
                {$goods.market_price} = ¥114元
                {$lang.market_price}{$goods.market_price} = 市场价格:¥114元
           &ndash;>
           <font class=&rdquo;market_price&rdquo;>{$lang.market_price}{$goods.market_price}</font><br />
           <!&ndash; {if $goods.promote_price neq &ldquo;&rdquo;} &ndash;>
          {$lang.promote_price}{$goods.promote_price}<br />
           <!&ndash; {else}&ndash;>
          <!&ndash; {$lang.shop_price} = ¥95元
                    {$lang.shop_price}{$goods.shop_price} = 本店售价:¥95元&ndash;>
          {$lang.shop_price}{$goods.shop_price}
           <!&ndash;{/if}&ndash;>
         </p>
        <!&ndash;购买按钮和收藏按钮的代码添加到这里 &ndash;>
         <p>
         <a href=&rdquo;javascript:addToCart({$goods.id})&rdquo;><img src=&rdquo;images/but_buy.jpg&rdquo;></a>
         <a href=&rdquo;javascript:collect({$goods.id})&rdquo;><img src=&rdquo;images/but_coll.jpg&rdquo;></a>
         </p>

</li>

第四步:此时首页的商品列表以及可以显示"购买"和"收藏"的按钮了,但是如果是有增加商品类型属性的商品点击"购买"是无反应,这需要添加选择商品属性的代码

首页商品列表点击"购买"无反应,正确的应该是:点击购买后,跳出选择属性的对话框。

第五步:再次查看商品分类页面里商品列表的代码,找出添加立即购买按钮的代码

在模板文件夹的-library文件夹里的goods_list.lbi文件.

<script type=&rdquo;Text/Javascript&rdquo; language=&rdquo;JavaScript&rdquo;>
<!&ndash;
{literal}
function selectPage(sel)
{
   sel.form.submit();
}
{/literal}
//&ndash;>
</script>
<script type=&rdquo;text/javascript&rdquo;>
window.onload = function()
{
   Compare.init();
   fixpng();
}
{foreach from=$lang.compare_js item=item key=key}
{if $key neq &lsquo;button_compare&rsquo;}
var {$key} = &ldquo;{$item}&rdquo;;
{else}
var button_compare = &rdquo;;
{/if}
{/foreach}
var compare_no_goods = &ldquo;{$lang.compare_no_goods}&rdquo;;
var btn_buy = &ldquo;{$lang.btn_buy}&rdquo;;
var is_cancel = &ldquo;{$lang.is_cancel}&rdquo;;
var select_spe = &ldquo;{$lang.select_spe}&rdquo;;
</script>

第六步:粘贴代码至recommend_best.lbi,recommend_hot.lbi,recommend_new.lbi三个文件的</div>之后.

第七步:可以保存上传至服务器测试了,购物和收藏按钮均可正常使用,接下来的就是修改css样式表,因为添加了2个按钮,首页的商品列表会不对称或者2个按钮不再同一行,只要修改模板文件夹里的css样式表,将商品列表里的缩略图宽度及间隔修改就可以啦,更多资料请在模板堂帮助中心搜索关键字

来自  http://help.ecmoban.com/article-1701.html
 

ecshop立即购买和加入购物车并存

ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-01-08


ecshop如何设置了购买停留在商品页面之后。将ecshop商品加入购物车的时候。就不会直接进入购物车。这样使用购物车非常不方便。我们为了既保持该页面功能,又能进入购物车功能。所以增加了另外一个购买按扭。点购买之后。可以直接进入ecshop的购物车。这样只牵涉到修改ecshop模板,二次开发难度大大降低。
1:goods.dwt模板文件
<a href="javascript:addToCart1({$goods.goods_id})"><img src="images/bnt_liji.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'] == 'link_buy')上面添加


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://www.68ecshop.com/article-752.html

普通分类: