• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >ecshop > ecshop二次开发之购物车分析

ecshop二次开发之购物车分析

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-13

佚名 向大家介绍了ecshop二次开发,ecshop二次开发手册,ecshop二次开发教程,ecshop二次开发视频,ecshop模板二次开发等相关知识,希望对您有所帮助

本文实例讲述了ecshop二次开发之购物车分析。分享给大家供大家参考。具体分析如下:

一、保存用户购物车数据

ECSHOP的购物车数据,是以Session 方式存储在数据库里,并在Session结束后 ,Distroy 掉,解决方法是:

1.购物车内容读取方式. 更改登陆后购物车获取条件 "Session 单独方式"为 Session +用户名 ,该修改位于Lib_order 下 function get_cart_goods();

2. 购物车内容记录方式,未登陆方式依然是Session , 用户登陆后,自动UPdate Cart 一次,将同一UserID下购物车内数据不是当前Session的Update到当前Session , 并将当前Session 下UserID为0的部分(未登陆情况下,Userid是0),UpdateID到当前UserID ,该修改位于 Flow.php 下面function flow_update_cart($arr)

3.更改退出时,自动Clear Cart的部分,将Distroy 当前Session 的内容,更改为Distroy 当前Session 下 User ID为0的部分。 该修改位于:Includes/cls_session.php ,     function destroy_session() 部分

说明:这种情况下就是游客关闭浏览器后,购物车清空, 注册用户购物车永久保存, 可能会对服务器造成轻微压力,主要取决于用户的数量,如果数量较多数据服务器压力较大,可以通过程序,自动清理超过一定时间段未登陆的User Cart (或者是额外增加一个数据,来标示加入购物车的时间,根据此时间判断是否自
动清理).

二、读取购物车数据

1.购物车内容读取方式. 更改登陆后购物车获取条件 "Session 单独方式"为 Session +用户名 ,该修改位于Lib_order 下 function get_cart_goods();

具体更改代码部分:

);</p> <p>$uid=$_SESSION['user_id'];
if($uid==0){
$sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " .
" FROM " . $GLOBALS['ecs']->table('cart') . " " .
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" .
" ORDER BY pid, parent_id";}else{
$sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " .
" FROM " . $GLOBALS['ecs']->table('cart') . " " .
" WHERE (user_id='".$uid."' OR session_id = '" . SESS_ID . "') AND rec_type = '" . CART_GENERAL_GOODS . "'" .
" ORDER BY pid, parent_id";
}
$res = $GLOBALS['db']->query($sql);
//........后面不变</div>

2. 购物车内容记录方式,未登陆方式依然是Session , 用户登陆后,自动UPdate Cart 一次,将同一UserID下购物车内数据不是当前Session的Update到当前Session , 并将当前Session 下UserID为0的部分(未登陆情况下,Userid是0),UpdateID到当前UserID ,该修改位于 Flow.php 下面function flow_update_cart($arr)   

}</p> <p> $sql = "SELECT `rec_id`, `goods_id`, `goods_attr_id`, `extension_code` FROM" .$GLOBALS['ecs']->table('cart').
" WHERE rec_id='$key' AND (session_id='" . SESS_ID . "' OR user_id='".$_SESSION['user_id']."')";</p> <p> $goods = $GLOBALS['db']->getRow($sql);
// 更新购物车Session & user id
$sql ="UPDATE " .$GLOBALS['ecs']->table('cart')." SET session_id='" . SESS_ID . "',user_id='".$_SESSION['user_id']."' where rec_id='".$goods['rec_id']."'";
$g = $GLOBALS['db']->query($sql);
$sql = "SELECT g.goods_name, g.goods_number ".
"FROM " .$GLOBALS['ecs']->table('goods'). " AS g, ".
$GLOBALS['ecs']->table('cart'). " AS c ".
"WHERE g.goods_id = c.goods_id AND c.rec_id = '$key'";
//...........................后面不变</div>
在用户登陆后,Flow.php打开购物车地方,需要调用一次自动更新购物车,
在$cart_goods = get_cart_goods();
之后增加如下代码

希望本文所述对大家的ecshop二次开发有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享几个Ecshop中二次开发的常见方法
  • Ecshop二次开发之自定义库文件和模板数据调用实例
  • ecshop二次开发之表结构分析
  • ecshop二次开发之购物车分析
  • ecshop二次开发之常用函数汇总
  • ecshop 二次开发 加入用户定制商品类型的方法
  • EcShop 创建管理员帐号失败的解决办法
  • ecshop二次开发 购物时为每件商品添加备注信息的修改方法

相关文章

  • 2017-05-13ECSHOP首页商品显示购买次数的实现方法
  • 2017-05-13ecshop邮件服务器设置方法
  • 2017-05-13ecshop数据库备份和数据库恢复的步骤
  • 2017-05-13Ecshop实现的支付宝手机网页支付功能免费版示例
  • 2017-05-13ecshop 同步ucenter,一步登陆discuzX
  • 2017-05-13Ecshop支付宝前台付款而后台不显示已付款的解决方法
  • 2017-05-13ecshop调用指定分类的文章的方法介绍
  • 2017-05-13ecshop配送方式里同时出现两个顺丰快递的解决方法
  • 2017-05-13EcShop 创建管理员帐号失败的解决办法
  • 2017-05-13Ecshop 去除版权的设置技巧

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • ECSHOP模版系统显示标签使用介绍
    • ecshop缩略图及产品页图模糊(图的质量是80)的两种解决方法
    • ecshop配送方式和对应的文件整理
    • ECShop显示某商品销售累计效果的实现代码
    • ecshop购物车消失后产品只能单件购买的解决方法(一步购物设置方法)
    • ecshop的ucenter同步登陆uc.php 一点错误勘误
    • ecshop二次开发之常用函数汇总
    • ecshop二次开发 购物时为每件商品添加备注信息的修改方法
    • 设置ecshop的wap版本head部分首页标题的方法
    • Ecshop使用支付宝支付成功后提示“此支付方式不存在或者参数错”的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有