pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

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

具體更改代碼部分:

復制代碼
代碼如下:
function get_cart_goods()
{
$goods_list = array();
$total = array(
'goods_price' => 0, // 本店售價合計(有格式)
'market_price' => 0, // 市場售價合計(有格式)
'saving' => 0, // 節省金額(有格式)
'save_rate' => 0, // 節省百分比
'goods_amount' => 0, // 本店售價合計(無格式)
);</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);
//........后面不變

2. 購物車內容記錄方式,未登陸方式依然是Session , 用戶登陸后,自動UPdate Cart 一次,將同一UserID下購物車內數據不是當前Session的Update到當前Session , 并將當前Session 下UserID為0的部分(未登陸情況下,Userid是0),UpdateID到當前UserID ,該修改位于 Flow.php 下面function flow_update_cart($arr)   

復制代碼
代碼如下:
function flow_update_cart($arr)
{
foreach ($arr AS $key => $val)
{
$val = intval(make_semiangle($val));
if ($val <= 0)
{
continue;
}</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'";
//...........................后面不變

在用戶登陸后,Flow.php打開購物車地方,需要調用一次自動更新購物車,
在$cart_goods = get_cart_goods();
之后增加如下代碼

復制代碼
代碼如下:
for($i=0; $i<count($cart_goods['goods_list']);$i++){
$a[$cart_goods['goods_list'][$i]['rec_id']]=$cart_goods['goods_list'][0]['goods_number'];}
if(count($a)>0){flow_update_cart($a);}

第三項自己琢磨吧,懶得去翻那代碼了,改掉SQL語句中session_id部分為user_id就行了

希望本文所述對大家的ecshop二次開發有所幫助。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

ECShop是一款B2C獨立網店系統,適合企業及個人快速構建個性化網上商店。這篇文章主要介紹了ecshop添加菜單及權限分配,需要的朋友可以參考下
這篇文章主要介紹了Ecshop 后臺添加新功能欄目及管理權限設置教程,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php實現保存周期為1天的購物車類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家介紹了帝國ECMS實現AJAX無刷新加入購物車的方法,對于開發商城系統的朋友很有借鑒參考價值!需要的朋友可以參考下
這篇文章主要介紹了Ecshop實現支付時傳送商品訂單號和商品名稱的方法,涉及Ecshop模板操作及底層代碼的修改相關技巧,需要的朋友可以參考下
ECSHOP2.7版本的底部版權對于優化與安全都不是很好,所以好多朋友都想給刪除了,下面的具體的方法,都是加密過的所有不容易簡單的搜索.需要的朋友可以參考下。
主站蜘蛛池模板: 2025第九届世界无人机大会 | 今日热点_实时热点_奇闻异事_趣闻趣事_灵异事件 - 奇闻事件 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 餐饮加盟网_特色餐饮连锁加盟店-餐饮加盟官网 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 小型气象站_车载气象站_便携气象站-山东风途物联网 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 27PR跨境电商导航 | 专注外贸跨境电商 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 世纪豪门官网 世纪豪门集成吊顶加盟电话 世纪豪门售后电话 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 |