php网上商城购物车设计代码分享

原创 2015年07月07日 15:42:53

我们要做的是一个可以包含促销活动的购物车,所以比较其他简单的购物车,会稍微复杂一点。(用的是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();
}

这里第一个和第二个动作必须是要分开的,因为用户也可以不添加商品直接点购物车。

下面是效果图:



第一次发帖,有什么不足,不清楚的,还请见谅。欢迎讨论!


版权声明:本文为博主原创文章,未经博主允许不得转载。

购物车的原理及实现.(仿京东实现原理)

2017年7月14日更新:  有很多小伙伴想要项目资料和源码, 我重新整理了一份传了上来:  这次更新的为项目全套视频及所有源码资料: 链接: https://pan.baidu.com/s...
  • weixin_41313504
  • weixin_41313504
  • 2017年12月18日 09:02
  • 66

基本实现京东购物车 mysql+php+html

想要实现基本的购物车功能,要对数据库 后台及前端知识有一定的了解
  • love_fish_dream
  • love_fish_dream
  • 2017年04月10日 23:36
  • 616

PHP电商购物车(一:建立数据表)

PHP电商购物车功能———建立数据表       最近几天,简单完成了OOP学习阶段的购物车功能环节,将以前的一些知识都简单的运用了,总的来说,总结一下这个功能版块还是很有必要的。    ...
  • qq_32080545
  • qq_32080545
  • 2016年07月04日 21:01
  • 5549

【SSH网上商城项目实战17】购物车基本功能的实现

上一节我们将商品的详细页面做完了,并使用了Hibernate的二级缓存加载详细页面来提高系统的性能。这节我们开始做购物车部分。 1. 添加新的表         首先我们向数据库中添加几张表:用户表、...
  • eson_15
  • eson_15
  • 2016年05月16日 14:25
  • 26175

一个简单的PHP购物车系统

1、需求分析  我们需要找到一种将数据库连接到用户的浏览器的方法。用户能够按目录浏览商品。 用户应该能够从商品目录中选取商品以便此后的购买。我们也要能够记录他们选中的物品。 当用户完成购买,要合计...
  • q547550831
  • q547550831
  • 2015年09月02日 15:50
  • 19065

SSM框架整合(以淘淘商城为例)

1.1. 后台系统所用的技术 框架:Spring + SpringMVC + Mybatis 前端:EasyUI 数据库:mysql 1.2. 创建数据库 1、安装mysql数据库 2、在...
  • qq_31308985
  • qq_31308985
  • 2016年03月19日 08:58
  • 4060

php做网站购物车 你搞懂了吗?

网上购物现已成为时尚,客户选择一个商品将其放入到购物车,然后返回继续购物或者去收银台,这个功能如何实现呢?今天capucivar就将使用PHP来实现这个购物车的功能。      首先,做一个简单的首...
  • qq1355541448
  • qq1355541448
  • 2014年05月20日 15:39
  • 17652

【电商网站】将商品加入购物车代码

/** * 添加产品到购物车 * @param array $info * @param string $type * @param int $member_id */ fun...
  • yanhui_wei
  • yanhui_wei
  • 2013年02月17日 16:04
  • 8426

php 实现分享到QQ空间 新浪微博

//分享到新浪微博//分享到新浪微博 $('#blog').click(function(){ window.sharetitle = '';/...
  • zhangkaiadl
  • zhangkaiadl
  • 2015年11月11日 15:22
  • 3766

Online Shopping网上商城数据库设计

本系统是我通过自学课程中了解网上商城的基本业务逻辑和经营过程而开发的一个网上商城的网站,按照我的惯例,对于比较大型的系统,我一般都是把数据库单独举出来,因为数据库设计的好坏,直接影响到后期后台代码和业...
  • judyge
  • judyge
  • 2016年03月26日 18:08
  • 947
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php网上商城购物车设计代码分享
举报原因:
原因补充:

(最多只允许输入30个字)