从今天开始带领大家实现一款云开发版的校园二手商城小程序
首页有以下几个功能点
商城分左侧分类栏和右侧商品列表栏,可以直接添加商品到购物车。
首先列表页可以直接添加商品到购物车
购物车弹起后可以做如下操作
这些操作都和商品列表是联动的,也就是商品列表和购物车里增删个数,都是可以同步的。我会在项目预览章节的视频里做具体演示。
我们这里搜索有两个触发方式
如我这里只搜‘巧克’,那么商品中所有包含 巧克 的都可以搜索到
在这里插入图片描述
会把最新发布的商品显示出来
商品详情页有顶部图片轮播,商品信息,添加购物车,商品描述,用户评价,底部购物车。
同样商品页添加商品也有一个和购物车联动的功能。
下单页就是确认订单后进行下单支付的。有以下功能
可以选择默认地址,编辑地址,删除地址,复制地址。
我们填写联系方式的时候,可以直接从通讯录里读取。
可以直接从地图上选择收货地址。
支付页分两种方式
我们的源码目前只提供模拟支付版本,如果需要商业使用请联系石头哥。
模拟支付
真实微信支付
我的订单页分以下几个状态
可以看出我们既有确认收货,也有取消订单的功能。
我们可以对商品进行评论。
评论成功后会刷新列表,并且有评论成功的提示框
在已完成订单里可以查看评价。
后期会考虑加入打分的评论,比如五星评价系统。
可以查看所有评价
可以从评价列表里查看商品详情页。
个人中心分登录和未登录两种状态
未登录
已登录
登录成功后,也可以点击退出登录按钮来退出。
客户直接在小程序里发消息给客服
客服可以在网页端,或者微信端管理消息
网页端客服
小程序端客服
客户可以直接在小程序端提建议,建议里可以添加图片
管理员可以在小程序后台,查看客户的反馈
购物车为空
我们这里的可视化网页后台使用的时云开发自带的cms(内容管理)
我们可以在这里
比如我查询某个商品的所评价
设置商品是否上首页推荐位
查询哪些商品上了首页推荐位
还有更多的功能,我会在视频课里给大家用视频来演示,这样更直观。
数据库我们这里用云开发自带的云数据库
视频课我会在B站免费提供给大家,欢迎关注,欢迎三连。 https://space.bilibili.com/419474640/video
配套笔记分在线版和离线电子书版。 在线笔记会在csdn上免费给到大家,欢迎关注,笔记会持续更新。 https://blog.csdn.net/qiushi_1990
目前源码和配套资源暂时不免费,毕竟创作不易,如果有需要的同学可以私聊石头哥,拿米来换。
笔记我也有整理一套电子书,大家也可以私聊石头哥获取电子书版的配套笔记。电子书笔记方便后期查询知识点,当然也要拿米来换。
可以联系石头哥配置商业版的商城小程序
另外石头哥提供配套解答服务。当然了,知识付费时代石头哥解答是要米的,毕竟石头哥精力有限,石头哥也是要吃面包的。石头哥有推出包月,包年解答服务。你在学习过程中有任何问题,或者工作中遇到任何编程问题,都可以来找石头哥 石头哥目前可以解答如下问题
我目前提供下面两个版本的源码,不同的源码适合不同的场景。目前重点对模拟支付版做讲解,所以后面源码导入部分一定要认真看。 因为商业版需要营业执照,好多同学因为满足不了这个条件,所以我这里以模拟支付版为主。
真实支付属于商业版,需要商业版请单独联系石头哥。
我源码会在配套资料里给到付费用户,年卡用户也可以获取到
前期学习,去网盘里下载最新版的源码即可。
导入源码的时候一定要把appid换成你自己的。appid需要注册小程序才有的,所以学习这门课之前建议你先去看下我云开发基础课:《零基础人入门小程序云开发》
appid获取的位置如下图。
初始化云开发之前,必须先开通云开发。
点击云开发,进入云开发控制台。如果没有这个图标,说明你上面导入源码时用的不是自己的appid。所以一定要用自己的appid
获取环境id
把环境id复制到app.js里,把下面部分替换成你自己的环境id
这里要注意,选择的环境,必须和你app.js里填入的环境id保持一致。如果选择云开发环境为空,就多关闭重启几次即可。
cloud目录下的云函数都要部署一下
我们上面源码导入成功,并把云开发环境初始化成功以后,接下来就来开通cms可视化网页后台
如下图所示,直接点击开通内容管理(CMS)即可
点击完开通以后,会有如下弹窗,直接点击确定即可。不要被付费吓着,官方每月会送我们一定的免费额度的。学习得话基本上够用了。
上面点完确定后,我们只是开启了按量付费功能,因为cms得使用必须要开通按量付费才可以得。所以还要再点一次开通。如下图
点完开通后,会有如下弹窗,直接点击下一步即可。
然后我们需要设置登录内容管理后台得账号和密码,然后点击确定即可
然后我们就等待内容管理功能得开通了,需要等几分钟。
开通成功以后,我们就可以通过下面这个地址进入管理后台了。
上面开通好以后,就可以通过后台地址登录管理后台了。如下
第一次登录,我们还需要创建一个项目
自己输入项目名和项目id即可
然后点击进入刚刚创建的项目
到这里我们的cmd可视化网页管理后台就创建好了,下面教大家如何导入数据。
把我为大家提前准备好的内容模型.json文件导入即可
导入完以后,可以看到多了以下几个表
这里只需要上传你想要显示在小程序首页轮播图的图片即可。
上传好以后,不要忘记点击下创建
可以看到我们小程序首页的轮播图就替换了你传的这个。
把lunbotu这个表的权限改为所有用户可读,仅创建者可读写。
把goods这个表的权限改为 所有用户可读,仅创建者可读写。
首先来给大家说下pages里的每个页面
cloud云函数如下
我会在视频里把每个页面的代码快速大致的给大家讲解下。这节可以作为选看,后面会手把手的教大家写一款属于自己的校园二手商城小程序。
我们经过前面小程序基础和云开发基础的学习,今天就来带大家实现一个综合项目,上线一款属于自己的微信商城小程序。
小程序基础学习传送门
如果你有小程序基础可以跳过上面的基础,直接看下面的,如果没有小程序基础,建议你先把上面的基础学完,再来看小程序商城开发。
这里需要给大家强调下,我们这里是实现商城小程序,所以我们就必须注册一个属于自己的小程序,关于小程序的注册,建议大家去看下我前面的基础视频。我们后面学习支付的时候,会教大家如何把项目切换为企业小程序,所以你如果能直接注册企业小程序最好,如果不能注册企业小程序,就先注册个人小程序也行。 关于注册小程序,我这里说几点
大家注册只需要去小程序官网就行。
注册的时候选择小程序即可
后面的步骤如实填写即可。如果注册过程中有任何问题,可以在下面留言。
我们上面注册好小程序以后,可以去小程序网页后台拿到appid
我们拿到appid后最好记在一个记事本上,每次都要来小程序后台拿比较麻烦。
工欲善其事必先利其器,我们开发小程序也是一样,这里必须先下载微信官方提供的小程序开发者工具。当然了,市面上也有别的一些开发工具,这里石头哥是建议大家使用官方提供的工具,毕竟官方的一些更新我们能更快的使用到。
下载安装就比较简单了。只需要去官方下载地址下载即可。
开发工具下载地址如下:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 这里的安装都是傻瓜式的,我就不再啰嗦了。
上面开发者工具安装好以后,我们双击打开即可。然后新建一个小程序项目
然后填写一些项目的信息
这里强调一点,后端服务一定要记得选择不使用云服务。因为你选择使用了,项目里会给我们创建大量的无用目录,你还得一个个删除。 项目创建好以后如下
到这一步我们项目就创建好了,下一节就来开始正式的开发我们自己的商城小程序了。
我们上面创建好基础项目以后,我们就要来改造项目,初始化我们的商城小程序项目了。
我们正常创建的默认项目是一个单页面,我们要想实现下面效果所示的多页面就要借助tabBar来实现多页面。
我们要使用tabBar就需要用到图标,所以我们要创建一个放图标的目录。
然后把我提前给大家准备好的图标放到image里即可。
这些图标我会在配套学习资料里给到大家。
关于小程序里页面的快速创建我小程序基础里讲过很多遍了,这里就不再啰嗦,直接在app.json里创建下面三个页面即可
上面三个页面创建好以后,我们就可以通过tabBar来设置多页面布局了。 在app.json里添加如下配置。
这样我们就可以实现可以自由切换的多页面小程序了。
到这里我们的项目初始化就完成了。
我们在小程序里需要多处用到一些公共的,相同的颜色或者字体大小。我们如果每个地方都写上一个颜色值,后期如果需要更换主题颜色时,要修改很多地方,所以我们要把颜色定义一个全局的变量,来供需要使用到颜色的地方使用。这样后期主题颜色有变化时,我们只需要单独改变这个全局的颜色,其他地方使用到这个全局颜色的地方就方便了。所谓前人栽树后人乘凉。
我这里先定义一个全局的主题颜色如下:
这里要记住,我们themeColor前面的 - - 是固定写法。只有这样定义的全局变量,才能使用。
这里以首页里的一个文字,来给大家演示全局颜色变量的使用。 我们在home.wxml里定义一个demo的选择器
然后在home.wxss里使用
使用全局样式变量的语法也是固定的。必须是var()包裹着变量名。 这样我们就可以在任何需要统一颜色的地方,使用我们定义好的颜色变量了。
可以看出我们默认的顶部栏是白色背景,黑色文字。
对应代码是app.json里的window
那我我们如果想变成下面这样的
就要把window里的几个值做下改变。
这样我们顶部的导航栏和我们底部的tabBar主题颜色就可以保持统一了。
字体大小统一,就比较容易了,我们只需要在app.wxss的page里设置font-size即可,如下
这样我们就可以把整体的字体大小设置为32rpx了。
我们的搜索框,会在多个页面使用,所以我们这里把搜索框做成一个自定义组件,这样就可以在别的地方很方便的使用我们的搜索框了。 老规矩,先看效果图
我们这里使用自定义的组件,需要下面3步
首先我们要创建一个专门存放自定义组件的目录components,然后在conpontents里新建一个searchInput组件如下。
我们先在自定义组件searchInput.wxml里随便写一句话,然后在首页里引用这个自定义组件,看能不能展示出来。
引用自定义组件时,就要先在home.json里声明引用。
这里我们引用完自定义组件,并命名为searchInput
上面声明好引用以后,我们就可以当成一个组件来使用了,如下
这样我们就可以看出,我们的首页里就可以展示出来这个自定义组件了
我们上面定义好了搜索框组件,也在首页里成功的使用了,但是样式不是我们所要的,所以这里我们要做样式的美化。
首先我们要在wxml里定义好我们搜索框的布局
我们这里定义的navigator主要是做点击跳转使用的,我们这里点击的时候需要跳转到search页,所以我们还要先创建search页
至于如何创建新页面,我已经讲了很多遍了,不知道的同学可以去翻看下我小程序基础课。
我们上面布局定义好以后,就可以来写样式了。我这里直接把样式文件贴出来给大家。
关于样式基本上没有什么讲的,大家那个知识点不懂得,可以自己去看下相关的css知识点。这里我把完整的wxss代码,贴出来给到大家。关于css也可以直接复制石头哥的代码。
.search_input { height: 80rpx; padding: 15rpx; background: var(--themeColor); } .search_input navigator { height: 100%; display: flex; justify-content: center; align-items: center; background: white; border-radius: 15rpx; color: #666; }
这样样式定义好以后,在我们的home.wxml里直接使用我们的搜索框组件,就很简单了。
这就是我们自定义组件的好处,使用起来特别方便,哪里想使用只需要这么一行代码即可。后面想做修改时,只需要在自定义组件里做简单修改,就可以全局一起修改了。
我们这一节要来实现首页顶部的轮播图功能。 老规矩,先看效果图
由于我们的顶部轮播图要做成动态的数据,所以这个数据就要存到数据库里。常用的存储数据的数据库有下面几种
由于mysql数据库需要用Java,php或者python来开发后台,比较麻烦,所以我们这里还是用我们云开发自带的数据库比较好些。
关于云开发的开通和一些云开发的基础知识,不是本节的重点,我之前云开发基础课里有讲过,如果你没有云开发基础可以去翻看我的云开发课程 《零基础入门小程序云开发》 也可以去b站搜索‘编程小石头’观看石头哥给大家提供的福利视频课。
大家开通好云开发以后,记得要在app.js里进行云开发环境初始化
我们上面创建好云开发以后,就要去云开发控制台获取云开发环境id了。
这里的云开发环境id,建议大家直接复制,不要手写,很容易写错的。
如上图,就可以在app.js里做云开发环境的初始化了。只有初始化好云开发环境id,我们才可以使用云开发功能。
我们这里创建一个数据表,小程序云开发里叫数据集合。
如上图所示,我们创建一个名为homeImgs的数据集合,用于存放首页轮播图的图片链接。
我们的图片如果想动态更新,就要想办法把图片存储到云服务器里,云开发的云存储功能就为我们很好的存放图片。这里教大家如何把图片存储到云存储里。 首先进入云开发控制台,找到云存储。
然后进入我们新创建的这个文件夹,就可以点击“上传文件”进行文件上传了
然后我们随便点击一个我们上传的图片,就可以拿到图片对应的链接了
https开头的图片链接,可以直接在浏览器里打开。
但是这个https开头的链接有对应的有效期。所以我们的图片如果是在小程序里展示,建议大家使用这个cloud开头的图片链接。
cloud开头的这个链接在浏览器里不能显示,但是在我们的小程序里是可以显示的,并且是永久有效的。
我们上面已经能拿到图片的链接了,那么就可以把拿到的图片链接添加到我们的轮播图集合里了。
如果我们首页轮播图想显示多个图片的话,就可以把我们多个图片链接都添加进来。
这里要记得每个数据里都是用imgUrl字段来保存图片链接的。
我们数据都已经准备好了,接下来就是要在小程序里请求云开发数据库里存储的数据了,我们后期只需要改变云开发数据库里的数据,小程序里的数据就可以动态改变了。 我们在home.js里定义请求数据的方法如下。
可以看到我们请求数据成功了,但是打印的时候却是空数据。这是因为我们的云开发数据库权限要设置成所有人可读。
因为我们创建homeImgs集合时,默认的是仅创建者可读写。所以我们直接在小程序里请求时,是请求不到数据的。这里把权限改为所有用户可读即可。 我们再来请求下数据看看。
这个时候我们添加的3条图片链接数据就可以全部请求到了。接下来我们就要把这些数据显示到页面上了
我们要借助swiper和swiper-item组件在页面里渲染顶部轮播图,所以要在home.wxml里定义如下的代码。
然后home.js里的代码也要稍做改造。
这样我们的数据就可以在页面上显示出来了。
但是我们这里有问题
首先设置图片的mode,让图片铺满。这里用到了image的mode属性,如下图。
我把官方文档的链接给到大家: https://developers.weixin.qq.com/miniprogram/dev/component/image.html 这里的mode裁剪模式,大家可以根据自己的需求设置。
home.wxml代码如下:
home.wxss里的代码如下:
可以看出,我们的图片这个时候撑满了屏幕,但是会有裁剪
这个取决于我们image组件的mode裁剪参数的设置,至于设置那种裁剪模式,这个你可以根据自己的业务场景来定,最好的是设计出来的图片完全符合比例。这样就不会有裁剪的问题了。
我们要设置轮播图的自动轮播等属于,其实就是来设置swiper组件的一些属性。其实官方都有给出来的。
这里也把对应的官方文档链接给到大家,大家可以根据自己的需求去做设置。 https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html 我这里只设置下面两个属性
关于轮播图的点击和跳转,我们后面章节再做讲解,这节主要是带大家实现动态的轮播图功能。
免费视频讲解:https://www.bilibili.com/video/BV1E54y1h7KL