首先,购物车的数据库设计: 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是打折之前商品的

首先,购物车的数据库设计:

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的构造函数里:

Java代码

/**

* 购物车类购物方法

* 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;

}

凡事有利就有弊,这个设计的好处是未登录就可以使用购物车;不好处就是两人共用一台电脑,购物车无法判断商品到底是哪一个人的。

第三点,添加一个商品到购物车。

添加一个商品到购物车,在这里,我把它想成是两个动作。

第一个动作:添加商品到购物车数据库里面。

第二个动作:查找购物车所有商品,并显示出来。

首先是第一个动作:

Java代码

/**

* 添加商品

* 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);

其次就是第二个动作:

Java代码

/**

* 购物列表

*/

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 购物车类的实现代码

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

商城购物车php代码,php网上商城购物车设计代码相关推荐

  1. 购物车及商品php代码_php购物车代码_php网上商城购物车代码一例

    摘要 腾兴网为您分享:php网上商城购物车代码一例,有信,英语字典,携程,网赚招聘等软件知识,以及迅雷vip补丁,全能素描,苏酒门户,inshort视频剪辑,北京地铁高清大图,监控上网,云播搜,维融打 ...

  2. 购物车及商品php代码_php网上商城购物车代码一例

    一个包含促销活动的购物车,用到了PHP的zend framework框架. 购物车的数据库设计: 1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods ...

  3. 淘宝店铺装修代码大全,淘宝页面设计代码.

    淘宝店铺装修代码大全    快去学习一下吧这里有我做的实例. http://shop110214125.taobao.com 有什么问题可留言我会尽量解答. http://txw100.com/  如 ...

  4. 网上书店管理系统mysql代码_网上书店信息管理系统+代码+数据库表

    附录全部源代码 package com.shoeShop.db; import java.sql.Connection; import java.sql.DriverManager; import j ...

  5. Android学习之网上商城(下)

    前言 上一篇博客主要介绍了本次网上商城的实现过程中的一些用法,这篇博客主要就是说明每个功能模式的实现方法 Android学习之网上商城(上) Android学习之网上商城(下) 源码下载: 链接:ht ...

  6. Android学习之网上商城(上)

    前言 又到了课设的时候,这次课设比较难受,因为两周时间中还有3门考试,在课设的时候还要复习,着实耗费了不少的精力,不过也收获多多,接下来总结一下本次课设中学到的东西 Android学习之网上商城(上) ...

  7. 【计算机毕业设计】123网上商城系统的设计与实现

    一.系统截图(需要演示视频可以私聊) 摘  要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式.本网上商城系统就是在这样的大环境下 ...

  8. 【计算机毕业设计】123网上商城系统设计与实现

    一.系统截图(需要演示视频可以私聊) 摘  要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式.本网上商城系统就是在这样的大环境下 ...

  9. 【计算机毕业设计】512网上商城购物系统

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上商城购物系统当然也不能排除在外.网上商城 ...

  10. B2B2C网上商城开发指南——基于SaaS和淘宝API开放平台

    B2B2C网上商城开发指南--基于SaaS和淘宝API开放平台邢波涛  郭  娟  著 ISBN 978-7-121-12983-4 2011年4月出版 定价:49.00元 16开 388 页 内 容 ...

最新文章

  1. 通过示例学习JavaScript闭包
  2. winform调用webservice增删查改_教你分别用数据库与云函数实现“增删查改”
  3. 用chkconfig配置linux自启动服务
  4. 【bzoj3744】Gty的妹子序列 分块+树状数组+主席树
  5. git(4):git安装教程
  6. java 压缩二进制流_在java中压缩二进制数据
  7. 线性时变模型预测控制推导
  8. EXCEL表格中数字金额很大时后面零很多,如何设置直接以万元为单位显示,不显示后面的零
  9. H5设备运动事件 DeviceMotionEvent 实现摇一摇功能
  10. 大白菜超级U盘启动盘制作
  11. TPM分析笔记(二)TPM2.0 规范文档
  12. 【web学习】如何绑定自己的Lofter独立域名——域名解析篇
  13. WORD、WPS中插入公式后行距变大怎么办
  14. Android11 HAL层开发
  15. 深度学习之昆虫种类识别
  16. 史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)
  17. (Mac/Windows)在终端中用finder/explorer打开文件夹的技巧
  18. 穿梭在银河的火箭队——Alpha冲刺总结随笔
  19. Eclipse常用的插件
  20. linux 休眠定时唤醒_Linux 自动唤醒和关闭的实现方法

热门文章

  1. 项目的webinf文件在哪_PMP章节练习(第四章:项目整合管理)
  2. Introduction to Computer Networking学习笔记(二十七):BitTorrent
  3. Linux系统管理——账号管理与权限及归属管理实例
  4. 前端数据/文件提交的三种方式
  5. linux通配符与正则表达式
  6. 【java】彩票中奖码生成器:java.util.Random里的方法public int nextInt(int bound)
  7. Codeforces Round #222 (Div. 1) D. Developing Game 扫描线
  8. 快速生成大量测试数据
  9. php设置上传文件浏览按钮的样式和文字,文件上传按钮的用户自定义样式的实现...
  10. spring用的是哪种工厂模式_业务复杂就用 ifelse?刚来的技术大佬用这招彻底干掉了!...