ecshop二次開發指南 購物車篇

2021-09-30 13:02:24 字數 2206 閱讀 8462

第乙個問題 儲存使用者購物車資料

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

else

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

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

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

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

這裡發帖真麻煩地說,兩套驗證...

什麼是ECShop二次開發?

所謂ecshop二次開發,也稱之為ecshop功能開發 ecshop外掛程式開發,同時某些時候ecshop的模板開發也可認為是對ecshop的二次開發。ecshop二次開發就是對開源 系統ecshop的功能或外觀的補充,在原有的程式基礎上加以功能性的優化與外觀性的美化,或特定的功能拓展。ecshop...

ecshop二次開發 廣告投放

安裝完成之後如何使用 1.到後台找到廣告管理 廣告列表 新增廣告 新增成功 2.廣告管理 廣告列表 新增欄位 新增成功 3.模板管理 設定模板 新增廣告位 4.確認 5.展示效果 一,進入後台 廣告管理 新增廣告 中加入地區,這裡我選擇只加入省份 前提是必須在ecs ad這個資料庫中建立乙個city...

ecshop二次開發 單點登入

單點登入 singlesignon 簡稱為sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。當使用者第一次訪問應用系統1的時候,因為還沒有登入,會被引導到認證系統中進行登入 根據使用者提供的登入資訊,認證系統進行...