tp3.23电商
1、项目部署
1-1、配置虚拟主机(解析个本地域名)
1-2、使用TP生成项目应用代码(拷贝ThinkPHP框架文件)
1-3、手动创建后台模块(复制Home文件夹改名为Admin,当然,有个自动生成后台模块方法是在入口文件index.php加上这一行代码
define(‘BIND_MODULE’,‘Admin’);访问一次首页会自动生成后台Admin模块,然后把这一行代码注释或者删掉
)
2、URL地址优化
2-1、隐藏项目的入口文件(开启apache重写,需要走三个步骤)
2-2、设置Home为默认访问模块(修改配置项conf.php文件设置默认模块和置容许访访问的模块,
‘DEFAULT_MODULE’ => ‘Home’,//设置默认模块
‘MODULE_ALLOW_LIST’ => array(‘Home’,‘Admin’),//设置容许访访问的模块
)
3、编写后台首页
3-1、用自己的后台模板写后台首页
4、商品分类管理
4-1、配置数据库和创建分类数据表
4-2、编写商品分类(涉及子分类)的业务逻辑代码,实现对商品分类表的CURD操作
5、商品管理
5-1、创建商品数据表
5-2、编写商品(涉及扩展分类表操作,ueditor编辑器,图片上传和缩略图上传及优化,商品回收站)的业务逻辑代码,实现对商品表的CURD操作和扩展分类表(用途便于用户搜索商品)操作
6、RBAC权限管理和登录管理
6-1、概述:权限就是是否能够访问某个页面。而某个页面对应代码中就是具体的方法。通过代码控制不同的管理员是否能够访问某个方法的过程就是权限控制。经常实现权限控制的方式就是使用RBAC的方式
6-2、做三个表管理员表<>角色表<>权限菜单表,实现RBAC权限管理
6-3、登录做防用户翻墙操作,登录后显示管理员相应权限菜单界面。
7、商品类型管理
7-1、创建商品类型数据表
7-2、编写商品类型的业务逻辑代码,实现对商品类型表的CURD操作
8、属性管理
8-1、创建属性数据表
8-2、编写属性的业务逻辑代码,实现对属性表的CURD操作
9、商品与属性的的关联(添加商品时属性的入库)
9-1、实现商品添加的选项卡效果
①增加商品属性选项卡
②增加对应的商品属性table内容(商品属性页面)
③使用js控制点击切换选项卡标签
9-2显示所有的类型和根据类型切换显示出属性
①显示所有的类型
②根据类型切换显示出属性
9-3、随着商品添加修改,属性信息也随着添加修改入库
①创建商品属性表(属性表的副表)
②编写商品添加修改,属性信息也随着添加修改的业务逻辑代码,实现对商品表和商品属性表的CURD操作,显示属性
10、商品相册管理
10-1、创建商品相册数据表
10-2、随着商品的添加修改,商品相册随着也添加修改入库
10-3、相册实现选项卡效果
①增加商品相册选项卡
②增加对应的商品相册table内容(商品属性页面)
③实现点击按钮增加上传图片框
显示效果如下:
④编写代码实现相册图片上传以及数据入库和数据更新
11、商品库存控制
11-1、创建商品库存表
11-2、编写商品库存的业务逻辑代码,实现对商品库存表的CURD操作
12、前台首页显示
12-1、拷贝前台首页模板,进行模板页面静态资源替换和模板分离
12-2、商品分类显示(前台导航分类,涉及多层分类),商品列表显示
12-3、商品详情页显示(涉及商品相册显示,商品属性也叫规格显示,商品介绍多为图片)
12-4、首页促销商品显示(涉及促销商品时间计时,原价和促销价)
12-5、首页楼层分类信息显示和推荐分类下的商品
①楼层分类信息显示
②推荐分类下的商品
13、用户注册功能
13-1、创建用户数据表
13-2、显示用户注册表单页(创建控制器,拷贝模板,编写实现用户表注册用户业务逻辑的代码(涉及jQueryForm插件))
13、用户登录和退出功能
13-1、显示用户登录表单页(创建控制器,拷贝模板,编写实现用户表用户登录业务逻辑的代码(涉及jQueryForm插件),而登录后在首页头部显示用户登录信息)
13-2、用户退出(清除登录用户的session信息,页面重定向到首页)
14、购物车功能
14-1、购物车分析
14-1-1、购物车数据存储位置
①当用户已经登录,可以获取到用户的标识信息,直接将数据存储到数据库中
②当用户没有登录,可以使用session或者cookie来保存用户的信息。推荐使用cookie存储。
14-1-2、购物车记录什么数据
1、需要记录商品的ID标识
2、需要记录购买商品对应的属性值的组合例如白色,13寸
3、需要记录用户的购买的数量
使用数据表的格式演示具体的记录方式
商品ID 属性组合(记录属性值的组合) 购买数量
10 白色,13寸 2
6.1.3、购物车中针对不同属性的记录方式
对于同一个商品属性组合相同直接增加购买数量即可。对于属性组合不一样,需要单独的使用数据记录
商品ID 属性组合(记录属性值的组合) 购买数量
10 白色,13寸 2
10 黑色,13寸 1
14-2、cookie存储分析
对于cookie存储数据需要跟数据库的存储一致需要记录到对应的商品ID、属性组合以及购买数量。因此对应的数据就是一个数组格式但是目前cookie只能支持字符串的格式
可以将数组格式转换为字符串的格式 可以通过使用序列化或者使用json格式存储
14-2-1、cookie数组中key怎么命名会方便
一般存储数据是使用数组的格式,然后在序列化在写入cookie。
例如目前数据格式(在php中的数组格式)
Array(
Array(‘goods_id’=>2,’goods_attr_ids’=>’20,25’,’goods_count’=>2),
Array(‘goods_id’=>2,’goods_attr_ids’=>’22,25’,’goods_count’=>2),
);
此方式对添加购物车比较麻烦,因为在每次添加商品进入购物车时都需要检查商品跟属性组合对应的信息是否存在。如果存在直接更新购买数量,否则再次增加对应的数据
可以通过对key设置为一个有规律的值来方便判断
可以将key的设置为:商品ID-属性组合作为key
Array(
‘2-20,25’=>2,
‘2-22,25’=>1
)
使用此方式就大大的简化了cookie的数据判断操作
14-3、编写购物车数据表的业务逻辑代码,实现对商品库存表的CURD操作
14-3-1、创建购物车数据表
14-3-2、实现购物车数据保存
①控制器方法接受数据调用模型实现保存
②创建模型方法实现登录情况下的数据写入
③处理没有登录时添加购物车
14-3-3、添加购物车时检查库存
①加入购物车前检查库存
②在模型中实现方法进行库存检查
14-3-4、登录后购物车数据转移
①创建方法实现数据转移(把cookie商品信息存到数据表)
②用户登录完成之后触发转移
15、购物车列表显示、购物车中商品删除、ajax修改购物车列表商品数量和购物车下单功能
15-1、前两个根据商品id,第三个根据商品属性增加和修改
15-2、购物车下单功能实现流程
15-2-1、编写下单页面,判断是否登录
15-2-2、创建商品订单的数据表
①订单总表
该表中记录的是订单的总的信息 关于具体购买的商品信息存储在商品订单表中
②商品订单表
作用记录每一个订单对应的商品信息
15-2-3、实现订单数据入库
16、支付宝支付功能
16-1、介绍:支付宝的接入流程
16-1-1、以企业的身份来注册支付宝账户信息
16-1-2、申请接口使用的权限。
16-1-3、创建后台应用
16-1-4、具体使用代码实现支付功能
16-2、获取电脑网站支付的代码
①下载代码
具体下载地址:https://docs.open.alipay.com/270/106291/
②介绍具体的代码中文件
③具体同步回调跟异步回调
同步回调作用:实现当用户支付完成之后能够跳转到对应的商户页面(确保用户支付完成之后能够正确的对用户的支付做一个处理操作)
异步回调作用:确保商户对用户的支付做了一个正确的处理
16-3、接入支付宝测试账号
16-3-1、支付宝测试账号设置
测试相关地址:
https://openhome.alipay.com/platform/developerIndex.htm
1、查看沙箱应用中的信息
2、在沙箱应用中设置密钥信息
①查看文档确认具体怎么设置
https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105971&docType=1
②下在设置的工具
③运行工具生成密钥
注意:生成的密钥 对于公钥需要交给支付宝,私钥自己保持
④设置公钥
⑤查看支付宝的公钥
由于目前是测试后账户对应的公钥不能正常使用,因此需要知道支付宝的公钥信息
3、查看测试账户
16-3-2、具体的使用代码实现支付功能
①将支付宝的代码拷贝到web目录下
②设置支付宝的配置信息
③访问
④付款
④确认付款
⑤查看回跳结果
16-4、项目中使用支付宝
①将已经实现的支付拷贝到项目中
②修改配置文件
③修改下单操作
④设置回跳的地址
⑤解决支付使用的框架与TP函数重名问题
⑥在次测试
16-5、支付宝的支付流程图
1、用户下单完成
2、商户请求支付宝对应的支付网关(会携带很多的参数)
3、支付宝网关根据参数在跳转到支付页面
4、用户进行支付操作
5、支付成功之后,支付会请求对应的同步回调地址
6、商户根据接受的请求对订单进行处理
7、当同步实现之后,支付宝还会发生异步请求来确保商户对用户的订单做了一个正确的处理
17、查看我的订单(实现继续支付)
17-1、从购物车商品表中查看我的订单,判断有没有支付
18、商品评论、评论的列表显示、商品买家印象功能和商品分类列表筛选显示
18-1、创建商品评论表和编写其业务逻辑
18-2、商品分类四种方式排序筛选