小程序商城+礼品卡卷核销预算5k以内不可谈
项目介绍
1、WEB管理后台(控制小程序商城商品的上架、编辑、调整,核销码的批量生成、订单管理)
2、小程序商城+礼品码核销+个人信息管理等
需求文档
# 礼品兑换码核销小程序 - 需求规格
> 日期:2026-06-24
> 版本:MVP v1.0
---
## 业务背景
单一公司自营,通过批量生成兑换码制作实体礼品卡销售给客户。客户购买实体卡后,刮开涂层获取兑换码,通过小程序核销,填写收货地址,由源头厂商直接发货。
## 业务流程
```
后台添加商品 → 批量生成兑换码 → 制作实体卡 → 销售给客户
↓
客户购买实体卡 → 刮开涂层得码 → 小程序授权登录
↓
输入兑换码核销 → 验证 → 展示商品 → 填写收货地址 → 提交
↓
后台导出已核销订单 → 厂商按地址发货
```
---
## 一、功能模块
### 小程序端(客户使用)
| 模块 | 说明 |
|------|------|
| 微信授权登录 | 客户打开小程序 → 授权手机号 → 自动登录 |
| 兑换码核销 | 输入兑换码 → 验证有效性 → 展示商品信息 → 填写收货信息 → 提交核销 |
| 我的核销记录 | 列表展示已核销订单,含商品、状态(待发货/已发货)、核销时间 |
### Web 管理后台(公司工作人员使用)
| 模块 | 说明 |
|------|------|
| 登录 | 微信扫码登录或账号密码登录 |
| 商品管理 | 添加/编辑/下架商品 |
| 兑换码管理 | 按批次批量生成兑换码、设置有效期(固定期限/永久)、查看码状态 |
| 核销订单管理 | 查看核销记录,支持按商品、时间段、状态筛选,导出 Excel 给厂商发货 |
| 数据概览 | 核销量、各商品兑换数统计 |
---
## 二、数据模型
### 1. 商品表 `products`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 商品ID |
| `name` | string | 商品名称(如"金枕头榴莲 3kg") |
| `image` | string | 商品图片(云存储 fileID) |
| `description` | string | 商品描述 |
| `status` | string | 上架/下架 |
| `createTime` | date | 创建时间 |
### 2. 兑换码表 `codes`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 兑换码ID |
| `code` | string | 兑换码(大写字母+数字,如 NK6H2P8Q) |
| `productId` | string | 关联商品ID |
| `batchId` | string | 批次ID |
| `status` | string | 未核销 / 已核销 / 已过期 |
| `expireType` | string | 固定期限 / 永久有效 |
| `expireTime` | date | 过期时间(永久则为 null) |
| `createTime` | date | 生成时间 |
### 3. 核销订单表 `orders`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 订单ID |
| `codeId` | string | 关联兑换码ID |
| `code` | string | 兑换码(冗余) |
| `productId` | string | 关联商品ID |
| `productName` | string | 商品名称(冗余) |
| `userId` | string | 核销客户的 openid |
| `receiverName` | string | 收货人姓名 |
| `receiverPhone` | string | 收货人手机号 |
| `province` | string | 省 |
| `city` | string | 市 |
| `district` | string | 区 |
| `address` | string | 详细地址 |
| `status` | string | 待发货 / 已发货 |
| `redeemTime` | date | 核销时间 |
| `shipTime` | date | 发货时间 |
### 4. 批次表 `batches`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 批次ID |
| `productId` | string | 关联商品 |
| `productName` | string | 商品名称 |
| `quantity` | number | 生成数量 |
| `expireType` | string | 固定期限 / 永久有效 |
| `expireDays` | number | 有效天数(永久则为 null) |
| `createTime` | date | 生成时间 |
### 5. 用户表 `users`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | openid |
| `phone` | string | 手机号 |
| `nickname` | string | 微信昵称 |
| `createTime` | date | 首次登录时间 |
---
## 三、页面结构
### 小程序端(3 个页面)
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页/核销 | `pages/index/index` | 输入兑换码 → 验证 → 展示商品 → 填地址 → 提交 |
| 我的记录 | `pages/records/records` | 核销记录列表,按时间倒序 |
| 个人中心 | `pages/mine/mine` | 显示当前用户手机号 |
**核销主流程:**
```
打开小程序 → 输入兑换码 → 验证成功 → 展示商品信息
→ 填写收货信息 → 确认提交 → 核销成功 → 跳转记录详情
```
### Web 管理后台(左侧菜单布局)
| 页面 | 路由 | 说明 |
|------|------|------|
| 登录 | `/login` | 微信扫码或账号登录 |
| 工作台 | `/dashboard` | 核销数量、商品统计概览 |
| 商品管理 | `/products` | 列表 + 新增/编辑/下架 |
| 兑换码管理 | `/codes` | 按批次查看、批量生成、导出未核销码 |
| 核销订单 | `/orders` | 筛选查看、导出 Excel 给厂商发货 |
---
## 四、技术架构
| 层 | 选择 |
|------|------|
| 小程序框架 | 微信原生 + 云开发 |
| Web 后台框架 | Vue + TDesign / Ant Design Vue,部署云开发静态托管 |
| 数据库 | 云开发数据库(MongoDB) |
| 后端逻辑 | 云函数(Node.js) |
| 文件存储 | 云存储(商品图片、导出 Excel) |
### 兑换码核销核心逻辑(小程序端云函数)
1. 接收兑换码字符串,查询 `codes` 表
2. 校验:码是否存在、是否已核销、是否已过期
3. 查询关联商品信息
4. 校验通过 → 返回商品信息,前端展示后客户填地址
5. 提交:创建 `orders` 记录,更新 `codes.status` 为"已核销"
6. 使用数据库事务保证一致性
---
## 五、兑换码生成规则
- 8-10 位大写字母 + 数字组合,排除易混淆字符(0/O、1/I/L)
- 批量生成时保证唯一性
- 生成后支持导出 Excel(含二维码,方便直接印刷到实体卡)
---
## 六、后续扩展(非 MVP)
- 线上购买渠道,兑换码短信/微信推送
- 发货物流跟踪
- 客户收货确认/签收
- 多厂商/多品牌支持
1、WEB管理后台(控制小程序商城商品的上架、编辑、调整,核销码的批量生成、订单管理)
2、小程序商城+礼品码核销+个人信息管理等
需求文档
# 礼品兑换码核销小程序 - 需求规格
> 日期:2026-06-24
> 版本:MVP v1.0
---
## 业务背景
单一公司自营,通过批量生成兑换码制作实体礼品卡销售给客户。客户购买实体卡后,刮开涂层获取兑换码,通过小程序核销,填写收货地址,由源头厂商直接发货。
## 业务流程
```
后台添加商品 → 批量生成兑换码 → 制作实体卡 → 销售给客户
↓
客户购买实体卡 → 刮开涂层得码 → 小程序授权登录
↓
输入兑换码核销 → 验证 → 展示商品 → 填写收货地址 → 提交
↓
后台导出已核销订单 → 厂商按地址发货
```
---
## 一、功能模块
### 小程序端(客户使用)
| 模块 | 说明 |
|------|------|
| 微信授权登录 | 客户打开小程序 → 授权手机号 → 自动登录 |
| 兑换码核销 | 输入兑换码 → 验证有效性 → 展示商品信息 → 填写收货信息 → 提交核销 |
| 我的核销记录 | 列表展示已核销订单,含商品、状态(待发货/已发货)、核销时间 |
### Web 管理后台(公司工作人员使用)
| 模块 | 说明 |
|------|------|
| 登录 | 微信扫码登录或账号密码登录 |
| 商品管理 | 添加/编辑/下架商品 |
| 兑换码管理 | 按批次批量生成兑换码、设置有效期(固定期限/永久)、查看码状态 |
| 核销订单管理 | 查看核销记录,支持按商品、时间段、状态筛选,导出 Excel 给厂商发货 |
| 数据概览 | 核销量、各商品兑换数统计 |
---
## 二、数据模型
### 1. 商品表 `products`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 商品ID |
| `name` | string | 商品名称(如"金枕头榴莲 3kg") |
| `image` | string | 商品图片(云存储 fileID) |
| `description` | string | 商品描述 |
| `status` | string | 上架/下架 |
| `createTime` | date | 创建时间 |
### 2. 兑换码表 `codes`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 兑换码ID |
| `code` | string | 兑换码(大写字母+数字,如 NK6H2P8Q) |
| `productId` | string | 关联商品ID |
| `batchId` | string | 批次ID |
| `status` | string | 未核销 / 已核销 / 已过期 |
| `expireType` | string | 固定期限 / 永久有效 |
| `expireTime` | date | 过期时间(永久则为 null) |
| `createTime` | date | 生成时间 |
### 3. 核销订单表 `orders`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 订单ID |
| `codeId` | string | 关联兑换码ID |
| `code` | string | 兑换码(冗余) |
| `productId` | string | 关联商品ID |
| `productName` | string | 商品名称(冗余) |
| `userId` | string | 核销客户的 openid |
| `receiverName` | string | 收货人姓名 |
| `receiverPhone` | string | 收货人手机号 |
| `province` | string | 省 |
| `city` | string | 市 |
| `district` | string | 区 |
| `address` | string | 详细地址 |
| `status` | string | 待发货 / 已发货 |
| `redeemTime` | date | 核销时间 |
| `shipTime` | date | 发货时间 |
### 4. 批次表 `batches`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | 批次ID |
| `productId` | string | 关联商品 |
| `productName` | string | 商品名称 |
| `quantity` | number | 生成数量 |
| `expireType` | string | 固定期限 / 永久有效 |
| `expireDays` | number | 有效天数(永久则为 null) |
| `createTime` | date | 生成时间 |
### 5. 用户表 `users`
| 字段 | 类型 | 说明 |
|------|------|------|
| `_id` | string | openid |
| `phone` | string | 手机号 |
| `nickname` | string | 微信昵称 |
| `createTime` | date | 首次登录时间 |
---
## 三、页面结构
### 小程序端(3 个页面)
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页/核销 | `pages/index/index` | 输入兑换码 → 验证 → 展示商品 → 填地址 → 提交 |
| 我的记录 | `pages/records/records` | 核销记录列表,按时间倒序 |
| 个人中心 | `pages/mine/mine` | 显示当前用户手机号 |
**核销主流程:**
```
打开小程序 → 输入兑换码 → 验证成功 → 展示商品信息
→ 填写收货信息 → 确认提交 → 核销成功 → 跳转记录详情
```
### Web 管理后台(左侧菜单布局)
| 页面 | 路由 | 说明 |
|------|------|------|
| 登录 | `/login` | 微信扫码或账号登录 |
| 工作台 | `/dashboard` | 核销数量、商品统计概览 |
| 商品管理 | `/products` | 列表 + 新增/编辑/下架 |
| 兑换码管理 | `/codes` | 按批次查看、批量生成、导出未核销码 |
| 核销订单 | `/orders` | 筛选查看、导出 Excel 给厂商发货 |
---
## 四、技术架构
| 层 | 选择 |
|------|------|
| 小程序框架 | 微信原生 + 云开发 |
| Web 后台框架 | Vue + TDesign / Ant Design Vue,部署云开发静态托管 |
| 数据库 | 云开发数据库(MongoDB) |
| 后端逻辑 | 云函数(Node.js) |
| 文件存储 | 云存储(商品图片、导出 Excel) |
### 兑换码核销核心逻辑(小程序端云函数)
1. 接收兑换码字符串,查询 `codes` 表
2. 校验:码是否存在、是否已核销、是否已过期
3. 查询关联商品信息
4. 校验通过 → 返回商品信息,前端展示后客户填地址
5. 提交:创建 `orders` 记录,更新 `codes.status` 为"已核销"
6. 使用数据库事务保证一致性
---
## 五、兑换码生成规则
- 8-10 位大写字母 + 数字组合,排除易混淆字符(0/O、1/I/L)
- 批量生成时保证唯一性
- 生成后支持导出 Excel(含二维码,方便直接印刷到实体卡)
---
## 六、后续扩展(非 MVP)
- 线上购买渠道,兑换码短信/微信推送
- 发货物流跟踪
- 客户收货确认/签收
- 多厂商/多品牌支持
*************
*************
评论
