백엔드 개발 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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

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 통합 개발 환경

드림위버 CS6

드림위버 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

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio 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 (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

See all articles