校园超市,百货超市小程序,手把手带你开发一款微信商城小程序,云开发+cms+数据库+js+css+微信小程序

从今天开始带领大家实现一款云开发版的校园二手商城小程序

技术选型

1,前端

  • 微信小程序原生框架
  • css
  • JavaScript

2,管理后台

  • 云开发Cms内容管理系统
  • web网页

3,数据后台

  • 小程序云开发
  • 云函数
  • 云数据库
  • 云存储

效果预览

1,小程序端

1-1,首页

首页有以下几个功能点

  • 1,顶部轮播图
  • 2,商品搜索
  • 3,商城入口
  • 4,推荐入口
  • 5,客服
  • 6,热门商品推荐

1-2,商城分类列表页

商城分左侧分类栏和右侧商品列表栏,可以直接添加商品到购物车。

1-3,购物车弹窗

首先列表页可以直接添加商品到购物车

购物车弹起后可以做如下操作

  • 1,增删单个商品
  • 2,清空购物车
  • 3,删除商品

这些操作都和商品列表是联动的,也就是商品列表和购物车里增删个数,都是可以同步的。我会在项目预览章节的视频里做具体演示。

1-4,搜索功能

我们这里搜索有两个触发方式

  • 1,直接点击搜索图标
  • 2,点击键盘上的搜索键

1-5,搜索结果,支持模糊查询

如我这里只搜‘巧克’,那么商品中所有包含 巧克 的都可以搜索到
在这里插入图片描述

1-6,新品推荐列表页

会把最新发布的商品显示出来

1-7,商品详情页

1-7-1,商品信息

商品详情页有顶部图片轮播,商品信息,添加购物车,商品描述,用户评价,底部购物车。

1-7-2,商品评论列表

1-7-3,详情页添加购物车

同样商品页添加商品也有一个和购物车联动的功能。

1-8,下单页

下单页就是确认订单后进行下单支付的。有以下功能

  • 1,购物明细
  • 2,价格计算
  • 3,备注
  • 4,收货地址
  • 5,点击下单

1-9,收货地址管理页

1-9-1,地址列表

可以选择默认地址,编辑地址,删除地址,复制地址。

1-9-2,添加和修改地址

1-9-3,访问通讯录

我们填写联系方式的时候,可以直接从通讯录里读取。

1-9-4,地图上选择地址

可以直接从地图上选择收货地址。

1-10,支付页

支付页分两种方式

  • 1,模拟支付
    适合前期学习,毕业设计等演示类的场景。
  • 2,真实微信支付
    适合商用,但是使用微信支付必须要有营业执照,所以前期如果只是学习的话,建议使用模拟支付。

我们的源码目前只提供模拟支付版本,如果需要商业使用请联系石头哥。

模拟支付

真实微信支付

1-11,我的订单页

我的订单页分以下几个状态

  • 1,新下单待收货
  • 2,已收货待评价
  • 3,订单完成
  • 4,订单取消


可以看出我们既有确认收货,也有取消订单的功能。

1-12,提交评论页

我们可以对商品进行评论。

评论成功后会刷新列表,并且有评论成功的提示框

在已完成订单里可以查看评价。

后期会考虑加入打分的评论,比如五星评价系统。

1-13,评价列表页

可以查看所有评价

可以从评价列表里查看商品详情页。

1-14,个人中心

个人中心分登录和未登录两种状态

未登录

已登录

登录成功后,也可以点击退出登录按钮来退出。

1-15,微信授权登录小程序

1-16,在线客服

客户直接在小程序里发消息给客服

客服可以在网页端,或者微信端管理消息

网页端客服

小程序端客服

1-17,意见反馈

客户可以直接在小程序端提建议,建议里可以添加图片

管理员可以在小程序后台,查看客户的反馈

1-18,购物车页面


购物车为空

2,cms网页管理后台

我们这里的可视化网页后台使用的时云开发自带的cms(内容管理)

2-1,登录页

2-2,管理后台


我们可以在这里

  • 1,添加轮播图,删除轮播图,修改轮播图
  • 2,管理商品,上下架商品
  • 3,管理订单
  • 4,查看评价

    比如我查询某个商品的所评价

    设置商品是否上首页推荐位

查询哪些商品上了首页推荐位

还有更多的功能,我会在视频课里给大家用视频来演示,这样更直观。

3,数据库

数据库我们这里用云开发自带的云数据库

配套资料

1,讲解视频

视频课我会在B站免费提供给大家,欢迎关注,欢迎三连。
https://space.bilibili.com/419474640/video

2,配套笔记

配套笔记分在线版和离线电子书版。
在线笔记会在csdn上免费给到大家,欢迎关注,笔记会持续更新。
https://blog.csdn.net/qiushi_1990

3,支持石头哥😊

3-1,源码和配套资源获取

目前源码和配套资源暂时不免费,毕竟创作不易,如果有需要的同学可以私聊石头哥,拿米来换。

3-2,笔记电子书

笔记我也有整理一套电子书,大家也可以私聊石头哥获取电子书版的配套笔记。电子书笔记方便后期查询知识点,当然也要拿米来换。

3-3,配置商业版商城小程序

可以联系石头哥配置商业版的商城小程序

4,问题解答(●’◡’●)

另外石头哥提供配套解答服务。当然了,知识付费时代石头哥解答是要米的,毕竟石头哥精力有限,石头哥也是要吃面包的。石头哥有推出包月,包年解答服务。你在学习过程中有任何问题,或者工作中遇到任何编程问题,都可以来找石头哥
石头哥目前可以解答如下问题

  • 小程序方面的问题
  • 云开发方面的问题
  • Java,springboot,Javaweb方面的问题
  • 毕设方面的问题
  • 安卓app开发方面的问题
  • html+css+JavaScript方面的问题
  • 前端开发的问题
  • 后端开发的问题
  • 面试找工作方面的问题

源码版本

我目前提供下面两个版本的源码,不同的源码适合不同的场景。目前重点对模拟支付版做讲解,所以后面源码导入部分一定要认真看。
因为商业版需要营业执照,好多同学因为满足不了这个条件,所以我这里以模拟支付版为主。

1,模拟支付版

  • 这个版本适合毕业设计,初级学习等演示性的场合
  • 不需要营业执照

2,真实微信支付版

  • 这个版本适合商业场景使用
  • 必须有营业执照才可以

真实支付属于商业版,需要商业版请单独联系石头哥。

源码导入和云开发的初始化

我源码会在配套资料里给到付费用户,年卡用户也可以获取到

1-1,源码的下载

前期学习,去网盘里下载最新版的源码即可。

1-2,源码的导入

导入源码的时候一定要把appid换成你自己的。appid需要注册小程序才有的,所以学习这门课之前建议你先去看下我云开发基础课:《零基础人入门小程序云开发》

appid获取的位置如下图。

1-3,云开发的初始化

初始化云开发之前,必须先开通云开发。

1-3-1,初始化云开发环境id

点击云开发,进入云开发控制台。如果没有这个图标,说明你上面导入源码时用的不是自己的appid。所以一定要用自己的appid

获取环境id

把环境id复制到app.js里,把下面部分替换成你自己的环境id

1-3-2,云函数选择环境

这里要注意,选择的环境,必须和你app.js里填入的环境id保持一致。如果选择云开发环境为空,就多关闭重启几次即可。

1-4,云函数的部署

cloud目录下的云函数都要部署一下

开通Cms可视化网页管理后台

我们上面源码导入成功,并把云开发环境初始化成功以后,接下来就来开通cms可视化网页后台

2-1,进入云开发控制台开通内容管理(CMS)

如下图所示,直接点击开通内容管理(CMS)即可

点击完开通以后,会有如下弹窗,直接点击确定即可。不要被付费吓着,官方每月会送我们一定的免费额度的。学习得话基本上够用了。

上面点完确定后,我们只是开启了按量付费功能,因为cms得使用必须要开通按量付费才可以得。所以还要再点一次开通。如下图

点完开通后,会有如下弹窗,直接点击下一步即可。

然后我们需要设置登录内容管理后台得账号和密码,然后点击确定即可

然后我们就等待内容管理功能得开通了,需要等几分钟。

开通成功以后,我们就可以通过下面这个地址进入管理后台了。

2-2,登录Cms可视化管理后台

上面开通好以后,就可以通过后台地址登录管理后台了。如下

2-3,创建项目

第一次登录,我们还需要创建一个项目

自己输入项目名和项目id即可

然后点击进入刚刚创建的项目

到这里我们的cmd可视化网页管理后台就创建好了,下面教大家如何导入数据。

导入数据并修改数据库权限

3-1,在cms后台导入内容模型


把我为大家提前准备好的内容模型.json文件导入即可

导入完以后,可以看到多了以下几个表

3-2,新建轮播图数据


这里只需要上传你想要显示在小程序首页轮播图的图片即可。

上传好以后,不要忘记点击下创建

可以看到我们小程序首页的轮播图就替换了你传的这个。

3-3,修改轮播图数据表的权限

把lunbotu这个表的权限改为所有用户可读,仅创建者可读写。

3-4,修改商品表的权限

把goods这个表的权限改为 所有用户可读,仅创建者可读写。

源码的大致讲解(选看)

首先来给大家说下pages里的每个页面

cloud云函数如下

我会在视频里把每个页面的代码快速大致的给大家讲解下。这节可以作为选看,后面会手把手的教大家写一款属于自己的校园二手商城小程序。

我们经过前面小程序基础和云开发基础的学习,今天就来带大家实现一个综合项目,上线一款属于自己的微信商城小程序。

小程序基础学习传送门

如果你有小程序基础可以跳过上面的基础,直接看下面的,如果没有小程序基础,建议你先把上面的基础学完,再来看小程序商城开发。

一,开发准备工作

1-1,注册一个小程序

这里需要给大家强调下,我们这里是实现商城小程序,所以我们就必须注册一个属于自己的小程序,关于小程序的注册,建议大家去看下我前面的基础视频。我们后面学习支付的时候,会教大家如何把项目切换为企业小程序,所以你如果能直接注册企业小程序最好,如果不能注册企业小程序,就先注册个人小程序也行。
关于注册小程序,我这里说几点

  • 1,一个邮箱只能注册一个小程序
  • 2,注册小程序必须用自己真实身份信息
  • 3,注册企业小程序的话,必须要有营业执照(选看部分)

大家注册只需要去小程序官网就行。

注册的时候选择小程序即可

后面的步骤如实填写即可。如果注册过程中有任何问题,可以在下面留言。

1-2,拿到小程序Appid

我们上面注册好小程序以后,可以去小程序网页后台拿到appid

我们拿到appid后最好记在一个记事本上,每次都要来小程序后台拿比较麻烦。

1-3,下载开发者工具

工欲善其事必先利其器,我们开发小程序也是一样,这里必须先下载微信官方提供的小程序开发者工具。当然了,市面上也有别的一些开发工具,这里石头哥是建议大家使用官方提供的工具,毕竟官方的一些更新我们能更快的使用到。

下载安装就比较简单了。只需要去官方下载地址下载即可。

开发工具下载地址如下:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
这里的安装都是傻瓜式的,我就不再啰嗦了。

1-4,创建属于自己的微信小程序项目

上面开发者工具安装好以后,我们双击打开即可。然后新建一个小程序项目

然后填写一些项目的信息

这里强调一点,后端服务一定要记得选择不使用云服务。因为你选择使用了,项目里会给我们创建大量的无用目录,你还得一个个删除。
项目创建好以后如下

到这一步我们项目就创建好了,下一节就来开始正式的开发我们自己的商城小程序了。

二,初始化项目

我们上面创建好基础项目以后,我们就要来改造项目,初始化我们的商城小程序项目了。

2-1,创建图片目录用来放置图标

我们正常创建的默认项目是一个单页面,我们要想实现下面效果所示的多页面就要借助tabBar来实现多页面。

我们要使用tabBar就需要用到图标,所以我们要创建一个放图标的目录。

然后把我提前给大家准备好的图标放到image里即可。

这些图标我会在配套学习资料里给到大家。

2-2,创建多个页面

关于小程序里页面的快速创建我小程序基础里讲过很多遍了,这里就不再啰嗦,直接在app.json里创建下面三个页面即可

2-3,设置tabBar实现多页面布局

上面三个页面创建好以后,我们就可以通过tabBar来设置多页面布局了。
在app.json里添加如下配置。

这样我们就可以实现可以自由切换的多页面小程序了。

到这里我们的项目初始化就完成了。

三,初始化全局样式

我们在小程序里需要多处用到一些公共的,相同的颜色或者字体大小。我们如果每个地方都写上一个颜色值,后期如果需要更换主题颜色时,要修改很多地方,所以我们要把颜色定义一个全局的变量,来供需要使用到颜色的地方使用。这样后期主题颜色有变化时,我们只需要单独改变这个全局的颜色,其他地方使用到这个全局颜色的地方就方便了。所谓前人栽树后人乘凉。

3-1,在app.wxss定义全局颜色

我这里先定义一个全局的主题颜色如下:

这里要记住,我们themeColor前面的 - - 是固定写法。只有这样定义的全局变量,才能使用。

3-2,使用全局颜色变量

这里以首页里的一个文字,来给大家演示全局颜色变量的使用。
我们在home.wxml里定义一个demo的选择器

然后在home.wxss里使用

使用全局样式变量的语法也是固定的。必须是var()包裹着变量名。
这样我们就可以在任何需要统一颜色的地方,使用我们定义好的颜色变量了。

3-3,改变navigationBar顶部栏样式。

可以看出我们默认的顶部栏是白色背景,黑色文字。

对应代码是app.json里的window

那我我们如果想变成下面这样的

就要把window里的几个值做下改变。

这样我们顶部的导航栏和我们底部的tabBar主题颜色就可以保持统一了。

3-4,全局字体大小保持统一

字体大小统一,就比较容易了,我们只需要在app.wxss的page里设置font-size即可,如下

这样我们就可以把整体的字体大小设置为32rpx了。

四,首页自定义搜索框的实现

我们的搜索框,会在多个页面使用,所以我们这里把搜索框做成一个自定义组件,这样就可以在别的地方很方便的使用我们的搜索框了。
老规矩,先看效果图

4-1,自定义搜索框组件

我们这里使用自定义的组件,需要下面3步

4-1-1,创建自定义组件

首先我们要创建一个专门存放自定义组件的目录components,然后在conpontents里新建一个searchInput组件如下。

我们先在自定义组件searchInput.wxml里随便写一句话,然后在首页里引用这个自定义组件,看能不能展示出来。

4-1-2,声明引用

引用自定义组件时,就要先在home.json里声明引用。

这里我们引用完自定义组件,并命名为searchInput

4-1-3,使用自定义组件

上面声明好引用以后,我们就可以当成一个组件来使用了,如下

这样我们就可以看出,我们的首页里就可以展示出来这个自定义组件了

4-2,美化自定义搜索框

我们上面定义好了搜索框组件,也在首页里成功的使用了,但是样式不是我们所要的,所以这里我们要做样式的美化。

4-2-1,自定义wxml布局

首先我们要在wxml里定义好我们搜索框的布局

我们这里定义的navigator主要是做点击跳转使用的,我们这里点击的时候需要跳转到search页,所以我们还要先创建search页

至于如何创建新页面,我已经讲了很多遍了,不知道的同学可以去翻看下我小程序基础课。

4-2-2,自定义wxss样式

我们上面布局定义好以后,就可以来写样式了。我这里直接把样式文件贴出来给大家。

关于样式基本上没有什么讲的,大家那个知识点不懂得,可以自己去看下相关的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里直接使用我们的搜索框组件,就很简单了。

这就是我们自定义组件的好处,使用起来特别方便,哪里想使用只需要这么一行代码即可。后面想做修改时,只需要在自定义组件里做简单修改,就可以全局一起修改了。

五,首页轮播图的实现

我们这一节要来实现首页顶部的轮播图功能。
老规矩,先看效果图

5-1,开通云开发

由于我们的顶部轮播图要做成动态的数据,所以这个数据就要存到数据库里。常用的存储数据的数据库有下面几种

  • 云开发自带的数据库
  • mysql数据库

由于mysql数据库需要用Java,php或者python来开发后台,比较麻烦,所以我们这里还是用我们云开发自带的数据库比较好些。

关于云开发的开通和一些云开发的基础知识,不是本节的重点,我之前云开发基础课里有讲过,如果你没有云开发基础可以去翻看我的云开发课程
《零基础入门小程序云开发》
也可以去b站搜索‘编程小石头’观看石头哥给大家提供的福利视频课。

大家开通好云开发以后,记得要在app.js里进行云开发环境初始化

5-1-1,云开发环境初始化

我们上面创建好云开发以后,就要去云开发控制台获取云开发环境id了。

这里的云开发环境id,建议大家直接复制,不要手写,很容易写错的。

如上图,就可以在app.js里做云开发环境的初始化了。只有初始化好云开发环境id,我们才可以使用云开发功能。

5-1-2,创建首页轮播图对应的数据集合

我们这里创建一个数据表,小程序云开发里叫数据集合。

如上图所示,我们创建一个名为homeImgs的数据集合,用于存放首页轮播图的图片链接。

5-2,上传图片到云存储

我们的图片如果想动态更新,就要想办法把图片存储到云服务器里,云开发的云存储功能就为我们很好的存放图片。这里教大家如何把图片存储到云存储里。
首先进入云开发控制台,找到云存储。

然后进入我们新创建的这个文件夹,就可以点击“上传文件”进行文件上传了

然后我们随便点击一个我们上传的图片,就可以拿到图片对应的链接了

https开头的图片链接,可以直接在浏览器里打开。

但是这个https开头的链接有对应的有效期。所以我们的图片如果是在小程序里展示,建议大家使用这个cloud开头的图片链接。

cloud开头的这个链接在浏览器里不能显示,但是在我们的小程序里是可以显示的,并且是永久有效的。

5-3,添加图片链接到轮播图集合里

我们上面已经能拿到图片的链接了,那么就可以把拿到的图片链接添加到我们的轮播图集合里了。

如果我们首页轮播图想显示多个图片的话,就可以把我们多个图片链接都添加进来。

这里要记得每个数据里都是用imgUrl字段来保存图片链接的。

5-4,首页获取轮播图数据

我们数据都已经准备好了,接下来就是要在小程序里请求云开发数据库里存储的数据了,我们后期只需要改变云开发数据库里的数据,小程序里的数据就可以动态改变了。
我们在home.js里定义请求数据的方法如下。

可以看到我们请求数据成功了,但是打印的时候却是空数据。这是因为我们的云开发数据库权限要设置成所有人可读。

因为我们创建homeImgs集合时,默认的是仅创建者可读写。所以我们直接在小程序里请求时,是请求不到数据的。这里把权限改为所有用户可读即可。
我们再来请求下数据看看。

这个时候我们添加的3条图片链接数据就可以全部请求到了。接下来我们就要把这些数据显示到页面上了

5-5,渲染顶部轮播图

我们要借助swiper和swiper-item组件在页面里渲染顶部轮播图,所以要在home.wxml里定义如下的代码。

然后home.js里的代码也要稍做改造。

这样我们的数据就可以在页面上显示出来了。

但是我们这里有问题

  • 1,图片没有铺满全屏
  • 2,轮播图的提示点也没有
  • 3,轮播图不能自动滚动
    下面我们就来解决这些问题

5-6,优化轮播图

首先设置图片的mode,让图片铺满。这里用到了image的mode属性,如下图。

我把官方文档的链接给到大家:
https://developers.weixin.qq.com/miniprogram/dev/component/image.html
这里的mode裁剪模式,大家可以根据自己的需求设置。

home.wxml代码如下:

home.wxss里的代码如下:

可以看出,我们的图片这个时候撑满了屏幕,但是会有裁剪

这个取决于我们image组件的mode裁剪参数的设置,至于设置那种裁剪模式,这个你可以根据自己的业务场景来定,最好的是设计出来的图片完全符合比例。这样就不会有裁剪的问题了。

5-7,设置自动轮播

我们要设置轮播图的自动轮播等属于,其实就是来设置swiper组件的一些属性。其实官方都有给出来的。

这里也把对应的官方文档链接给到大家,大家可以根据自己的需求去做设置。
https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
我这里只设置下面两个属性

  • indicator-dots:显示指示点
  • autoplay:自动轮播
    这样我们完整的轮播图功能就实现了。

    关于轮播图的点击和跳转,我们后面章节再做讲解,这节主要是带大家实现动态的轮播图功能。

六,首页九宫格

七,精选商品

八,商品分类页

九,商品列表页

十,搜索页

十一,搜索结果页

持续更新中。。。 后面也会出配套视频讲解,敬请关注
编程小石头 Python PHP MySQL
码农一枚,非著名全栈开发人员。分享自己的一些经验,学习心得,希望后来人少走弯路,少填坑。编程小石头和你一起快乐的学编程。
相关推荐