一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php網上商城購物車設計代碼分享

php網上商城購物車設計代碼分享

2019-12-25 15:42php教程網 PHP教程

我們要做的是一個可以包含促銷活動的購物車,所以比較其他簡單的購物車,會稍微復雜一點。(用的是PHP的zend framework框架)

首先,購物車的數據庫設計: 
1. id 
2. goods_id 商品ID 
3. session_id 購物車ID 
4. goods_sn 商品編碼 
5. goods_name 商品名稱 
6. shop_price 商品商城售價 
7. goods_price 商品真實售價(與shop_price的區別在于,當打折的時候,shop_price是打折之前商品的售價,而goods_price是打折之后的) 
8. goods_number 數量 
9. weight 商品重量 
10. goods_attr 商品屬性(如顏色,尺碼) 
11. promote_code 促銷編碼(為商品促銷,做的策略模式識別碼) 
12. is_promote 促銷ID 
13. stock_id 庫存ID 
數據庫結構大概是這個樣子。當然如果還有其他的需求,比如商品的返利積分,商品是否虛擬產品,商品是否代發貨等等,可以另加標示符。這里就不一一舉例了。 
第二點,我們這個購物車要求是在用戶不登陸狀態下可以把商品添加到購物車內的,這也是最近非常流行的一種方式,所以在購物車數據庫設計里面,就沒有加入user_id這個字段,考慮到的是用戶未登陸下也可以把商品放入購物車。 
那么識別購物車到底是哪一位用戶的話,就是需要用到session_id,是用戶對應購物車的唯一識別碼。生成這個碼可以放在購物車對象Cart的構造函數里: 

復制代碼代碼如下:


/** 
* 購物車類購物方法 
* @param string $cart_id 購物車ID 
*/ 
public function __construct() 

Zend_Session::start(); 
$this->_session = new Zend_Session_Namespace('ShopCart'); 
if(!isset($this->_session->session_id)) 

$this->_session->session_id = md5(uniqid(mt_rand(), true)); 
$this->_session->info = array(); 

$this->_cart_id = $this->_session->session_id; 


凡事有利就有弊,這個設計的好處是未登錄就可以使用購物車;不好處就是兩人共用一臺電腦,購物車無法判斷商品到底是哪一個人的。 
第三點,添加一個商品到購物車。 
添加一個商品到購物車,在這里,我把它想成是兩個動作。 
第一個動作:添加商品到購物車數據庫里面。 
第二個動作:查找購物車所有商品,并顯示出來。 
首先是第一個動作: 

復制代碼代碼如下:


/** 
* 添加商品 
*/ 
public function goodsAddAction() 

// 添加商品使用get請求 
$goods_id = $this->_getParam('goods_id');//商品ID 
$goods_spec = $this->_getParam('filter_name');//商品屬性(顏色,尺碼) 
$goods_number = $this->_getParam('goods_number');//商品數量 
$promote_name = $this->_getParam('promote_name', 'Default');//促銷策略 
//獲取購物車實例 
$cartB = $this->_getCart(); 
$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name); 
//添加成功,跳轉到下一步,查找購物車所有商品,并顯示出來。 
$this->_showMessage(Bll_Context::isError() ? Bll_Context::getError() : '添加到購物籃成功!', Bll_Context::getRecirect('/orderv2'), 3); 


上段代碼第15行: 
$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name); 
這就是添加商品操作函數,這里面的$promote_name是促銷的一個參數,具體是用策略模式來選用哪種促銷策略,我準備在下一篇文章具體來討論。這里只要知道是添加這個商品的基本信息,存入到購物車數據庫里即可。 
其次就是第二個動作: 

復制代碼代碼如下:


/** 
* 購物列表 
*/ 
public function indexAction() 

//獲取購物車實例 
$cartB = $this->_getCart(); 
//列出購物車內所有商品 
$this->view->goods_list = $cartB->goodsViewList(); 
//獲取用于顯示規則消息的規則實例列表 
$this->view->tips = $cartB->goodsTipRules(); 
//購物車內商品總數量 
$this->view->total_number = $cartB->getTotalGoodsNumber(); 
//獲取購物車內商品總貨額 
$this->view->total_amount = $cartB->getTotalAmount(); 

 

這里第一個和第二個動作必須是要分開的,因為用戶也可以不添加商品直接點購物車。

下面是效果圖:

php網上商城購物車設計代碼分享


 

php網上商城購物車設計代碼分享

第一次發帖,有什么不足,不清楚的,還請見諒。歡迎討論!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩aⅴ在线观看 | 亚洲欧美专区精品久久 | 天堂在线免费观看 | 好紧好爽的午夜寂寞视频 | 69短视频| 欧美精品1区 | 久青草国产在线观看视频 | 国产成人精品一区二区不卡 | 国产网站免费看 | 深夜福利在线播放 | 出a级黑粗大硬长爽猛视频 吃胸膜奶视频456 | 亚洲男人天堂网站 | 国产免费视频 | 每天都要睡男人(nph) | 暖暖的韩国免费观看 | aaaa大片 | 精品国产免费第一区二区 | 精品视频在线免费观看 | 春意影院午夜爽爽爽免费 | 咪咪爱网友自拍 | 99精品在免费线视频 | 四虎影视网址 | 色哟哟在线播放 | 国产伦精品一区二区三区免费观看 | 邪恶肉肉全彩色无遮盖 | 歪歪动漫小说sss | 国产精品嫩草影院在线 | 大学生宿舍飞机 free | 8x8x华人免费| 国产福利资源网在线观看 | 四虎影院在线免费观看 | 99成人国产精品视频 | 欧美性理论片在线观看片免费 | 扒开斗罗美女了的胸罩和内裤漫画 | 日本人成动漫网站在线观看 | 99香蕉网 | 99热成人精品热久久669 | 精品麻豆国产 | 睡男神的这件小事小说在线阅读 | 护士让我吃奶我扒她奶 | 羞羞在线观看 |