- /**
- * 购物车类购物方法
- * @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行:
- /**
- * 购物列表
- */
- 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();
- }
- ?>
-
以上代码中,第一个和第二个动作必须是要分开的,允许不添加商品直接点购物车。
就是这些了,抛砖引玉吧,希望对大家有些许的启发,在下就满足了。 |