首页 后端开发 php教程 php网上商城购物车设计代码_PHP教程

php网上商城购物车设计代码_PHP教程

Jul 13, 2016 am 10:42 AM
name php session 代码 名称 商品 编码 网上商城 设计 购物车


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代码 
  1. /**  
  2. * 购物车类购物方法 
  3. * website: www.jbxue.com  
  4. * @param string $cart_id 购物车ID  
  5. */   
  6. public function __construct()   
  7. {   
  8. Zend_Session::start();   
  9. $this->_session = new Zend_Session_Namespace('ShopCart');   
  10. if(!isset($this->_session->session_id))   
  11. {   
  12. $this->_session->session_id = md5(uniqid(mt_rand(), true));   
  13. $this->_session->info = array();   
  14. }   
  15. $this->_cart_id = $this->_session->session_id;   
  16. }   


凡事有利就有弊,这个设计的好处是未登录就可以使用购物车;不好处就是两人共用一台电脑,购物车无法判断商品到底是哪一个人的。 
第三点,添加一个商品到购物车。 
添加一个商品到购物车,在这里,我把它想成是两个动作。 
第一个动作:添加商品到购物车数据库里面。 
第二个动作:查找购物车所有商品,并显示出来。 
首先是第一个动作:

Java代码 
  1. /**  
  2. * 添加商品  
  3. * website: www.jbxue.com 
  4. */   
  5. public function goodsAddAction()   
  6. {   
  7. // 添加商品使用get请求   
  8. $goods_id = $this->_getParam('goods_id');//商品ID   
  9. $goods_spec = $this->_getParam('filter_name');//商品属性(颜色,尺码)   
  10. $goods_number = $this->_getParam('goods_number');//商品数量   
  11. $promote_name = $this->_getParam('promote_name''Default');//促销策略   
  12. //获取购物车实例   
  13. $cartB = $this->_getCart();   
  14. $cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name);   
  15. //添加成功,跳转到下一步,查找购物车所有商品,并显示出来。   
  16. $this->_showMessage(Bll_Context::isError() ? Bll_Context::getError() : '添加到购物篮成功!', Bll_Context::getRecirect('/orderv2'), 3);   
  17. }   



上段代码第15行: 
$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name); 
这就是添加商品操作函数,这里面的$promote_name是促销的一个参数,具体是用策略模式来选用哪种促销策略,我准备在下一篇文章具体来讨论。这里只要知道是添加这个商品的基本信息,存入到购物车数据库里即可。 
其次就是第二个动作:

Java代码 
  1. /**  
  2. * 购物列表  
  3. */   
  4. public function indexAction()   
  5. {   
  6. //获取购物车实例   
  7. $cartB = $this->_getCart();   
  8. //列出购物车内所有商品   
  9. $this->view->goods_list = $cartB->goodsViewList();   
  10. //获取用于显示规则消息的规则实例列表   
  11. $this->view->tips = $cartB->goodsTipRules();   
  12. //购物车内商品总数量   
  13. $this->view->total_number = $cartB->getTotalGoodsNumber();   
  14. //获取购物车内商品总货额   
  15. $this->view->total_amount = $cartB->getTotalAmount();   
  16. }   


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

您可能感兴趣的文章:

php网上商城购物车代码
php 购物车完整实现代码
php 购物车功能实现代码(入门例子)
php 购物车类的实现代码(单例模式)
php 购物车类实现代码
php 购物车代码示例
php 购物车类的实现代码

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/636690.htmlTechArticle1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods_sn 商品编码 5. goods_name 商品名称 6. shop_price 商品商城售价 7. goods_price 商品真实售价(与sho...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

See all articles