本项目基于Laravel-china教程《电商进阶》,在此基础上进行扩展开发
1、用户模块
- 支持手机号注册、登录、找回密码(腾讯云验证码和短信发送)
- 提供微信网页授权登录、小程序登录、注册API支持
2、商品模块
- 扩展商品SKU为多维度。(在原本的products(商品表)+product_skus(SKU表)基础上增加商品属性表(product_attributes)和商品属性值表(attributes),以属性值表ID字符串构成SKU)
- 修改商品分类表path字段,将本身id也加入其中(方便搜索),去除is_directory字段
- 修改秒杀验证订单是否重复逻辑,由mysql查询订单改为redis查询,减缓mysql压力
3、搜索模块
- 索引结构中增加一个Nested 对象search_properties的字段,该字段记录是否参与筛选,后台在设置商品属性时设置是否参与分面搜索即可(原来是直接聚合所有属性,然后展示在商品列表顶部的属性列表栏中供用户点击属性,筛选商品,现在后台可控制属性是否参与筛选列表的展示,像有些属性就没必要列出来给用户筛选了,比如手机有个属性是生产日期,这种属性对用户来说无关紧要,就选择不用参与分面搜索,这样就不会列出来,当然,所有的属性都是会参与关键字搜索的,不会受到是否参与分面搜索的影响)
4、API模块
- 使用DingoApi进行API开发,为小程序提供完整接口支持,支持腾讯云COS文件存储
1、用户模块
- 登录注册(找回密码)
- 商品收藏
- 收货地址
- 查看订单
- 购物流程:选择商品-》下单-》付款-》确认收货-》发表评价、申请退款
2、商品模块
- 商品无限级分类
- 后台添加商品、设置商品属性、设置商品库存
- 前台展示显示商品列表,ES搜索引擎提供强大搜索功能
- 众筹商品
- 秒杀商品
3、订单模块
- 用户订单页面显示已经提交过的订单,管理员后台显示已支付订单
- 后台输入物流信息,进行发货操作
5、优惠券模块
- 多种优惠方案(满减、打折)
- 后台设置优惠券,前台提供优惠券使用接口
6、支付模块
- PC端前台提供微信/支付宝扫码支付,同时提供分期付款功能
- 小程序端提供微信支付
- 前台提供用户申请退款接口、后台审核是否同意退款、众筹失败时自动退款、一键退款分期订单
7、其他 轮播图管理、站点信息管理、会员管理、权限管理等
- 1、git clone或者下载解压到本地
- 2、将public设置为网站根目录,调整storage目录权限,在public目录下手动创建uploads文件夹并分配给服务器权限
- 3、composer install
- 4、npm install
- 5、npm run production
- 6、启动redis
- 7、安装好jdk1.8配置好java环境
- 8、下载ElasticSearch以及它的中文分词插件,两个的版本要对应上,把下载的插件解压到es的plugins目录下重命名为ik
- 9、在elasticSearch的config目录下新建 analysis/synonyms.txt,不用写内容都行,这个文件主要用于同义词搜索,没有不行(最终路径看起来像这样 /usr/local/src/elasticsearch-6.3.0/config/analysis)
- 10、linux: 新建一个用户,切换到该用户,启动ES。windows直接执行bin下的bat脚本即可
- 11、启动mysql,创建数据库,配置env数据库,运行php artisan migrate:fresh
- 12、后台管理员账号为admin 密码为admin 前台用户账号为123456@qq.com 密码为123456
- 13、配置好队列和定时任务,
- 提示:APP_DEBUG为true时,注册时的短信验证码不会发送,固定为1234,APP_ENV为local时,支付回调使用NGROK_URL配置的网址,证书目录需要自己手动在resources下新建wechat_pay目录,把微信证书丢里面