一个可以包含促销活动的购物车,所以比较其他简单的购物车,会稍微复杂一点。(用的是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的构造函数里:
/** * 购物车类购物方法 * website: www.jbxue.com * @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; }
凡事有利就有弊,这个设计的好处是未登录就可以使用购物车;不好处就是两人共用一台电脑,购物车无法判断商品到底是哪一个人的。
第三点,添加一个商品到购物车。
添加一个商品到购物车,在这里,我把它想成是两个动作。
第一个动作:添加商品到购物车数据库里面。
第二个动作:查找购物车所有商品,并显示出来。
首先是第一个动作:
/** * 添加商品 * website: www.jbxue.com */ 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 购物车完整实现代码
php 购物车功能实现代码(入门例子)
php 购物车类的实现代码(单例模式)
php 购物车类实现代码
php 购物车代码示例
php 购物车类的实现代码
相关推荐
这个标题揭示了我们正在处理的是一个电子商务平台的购物车功能的源代码,名为“蓝色经典微商城”。这通常涉及到一个在线商店系统,允许用户添加商品到他们的虚拟购物车,并进行结算。在IT领域,这种类型的系统是基于...
"黑马程序员网上图书商城中的毕业设计资料,代码,数据库设计论文等" 描述进一步细化了这些资源的来源——黑马程序员的网上图书商城,暗示这可能是一个基于在线书店的系统设计项目。资源不仅限于理论知识,还有实际...
附件是PHP校园二手信息商城系统(源代码+lw),包含程序源码和答辩 ppt,无任何商用目的,附件安全绿色,仅供大家学习交流使用,大 程序源码详细展示了如何使用PHP语言来创建一个功能完备的在线商城,包括用户注册、...
微信小程序商城完整源代码是一个专为微信平台设计的在线购物应用开发项目,它允许商家构建一个功能齐全的电商平台,直接在微信生态系统内提供商品和服务。这个项目的核心是利用微信小程序的开发框架,结合后端服务和...
这篇文档将深入解析标题为"购物车源码asql文件.zip"的压缩包内容,它包含了一个购物车系统的源代码和相关的SQL数据库文件。这个压缩包主要是为了方便那些对购物车功能开发感兴趣或者需要此类系统的人获取和学习。在...
看到网上关于这个主题的资料相对匮乏,开发者出于分享精神,特地制作并开源了这个插件,方便其他用户进行二次开发或直接使用。 在phpcmsv9系统中,购物车功能的实现涉及到多个关键知识点: 1. **PHP编程**:作为...
**Ecmall网上商城PHP开源源码详解** Ecmall是一款基于PHP语言开发的电子商务平台,它以开源、免费的特点,为商家提供了构建在线商城的完整解决方案。在深入理解Ecmall之前,我们需要先了解一些基础的PHP知识,因为...
微信商城需具备商品展示、购物车管理、订单处理、支付功能,同时要能实现用户注册登录、评论分享等社交功能。 2.3.2 商城整体阐明 系统应包含商家后台管理系统、用户前端购物界面和微信接口服务三大部分,以满足...
在宠物商城项目中,H5用于构建用户友好的前端界面,提供了响应式设计,使得网站能在不同设备(如手机、平板和电脑)上无缝浏览。它还引入了新的标签如`<header>`、`<nav>`、`<article>`等,使页面结构更加清晰,便于...
开发者分享了完整的代码,这为学习者提供了一个实际操作的环境,可以深入理解PHP商城系统的架构和逻辑。 从标签"PHP电子商城"和"php"我们可以推断,这个项目将包含以下关键知识点: 1. **PHP基础**:包括变量、...
【标题】:“褐色护肤品商城微信结算购物车程序源码” 这个标题揭示了我们要讨论的核心内容——一个用于护肤品销售的电子商务平台的源代码,其特色在于支持微信支付功能。在这个程序中,用户可以在“褐色护肤品商城...
1. **源代码文件**:PHP源码,可能包括了购物车操作的控制器、模型、视图等,如`cart.php`(处理购物车操作的类)、`product.php`(产品模型)、`index.php`(用户界面)等。 2. **数据库文件**:如`database.sql`,...
鸿利数码商城可能是这个平台的品牌名称,可能包括了各种相关的代码、设计文件、数据库脚本、文档等资源。 在这个项目中,可以学习到的知识点包括: 1. **电商平台架构**:理解一个完整的电商平台是如何从需求分析...
压缩包中的"www.pudn.com.txt"可能包含了项目相关资源的链接,而"网上购物商城"可能是系统源代码的文件夹,里面可能包含项目的所有源代码文件,如控制器类、模型类、视图模板以及配置文件等。学生在答辩时应结合这些...
微信小程序提供了丰富的API接口,如微信登录、获取用户信息、微信支付、分享等功能,使得开发者能够快速构建功能完备的商城系统。 **PHP后台** 在这个系统中扮演着数据处理和服务提供者的角色。PHP是一种广泛应用的...
开源社区在软件开发中起着举足轻重的作用,开发者可以在GitHub、GitLab等平台上分享代码、寻求帮助、参与讨论。在本项目中,我们也可以将源代码发布到这些平台,接受社区的反馈和贡献,不断优化和完善系统。 总的来...
前端代码应优化以提高性能,同时考虑用户流程,如购物车操作的提示、错误信息的友好显示等。 8. **测试与调试**:在项目开发过程中,单元测试、集成测试和压力测试都是必不可少的,确保代码的正确性和系统的稳定性...