线上卖券
线上卖券是小程序商城的券包售卖位配置页:把一批电子券打包成一个「券包」,定好售价、可售时段和每人限购,会员在小程序里付款后自动到账。卖出去的单据在线上卖券单查询 里查和作废。
一、功能概述
菜单位置:O2O业务 → 商城活动 → 线上卖券(页面地址 /admin/o2o/wx_salecoupon/)
| 用途 | 说明 |
|---|---|
| 打包卖券 | 一个券包对应一套会员礼包方案,礼包里有什么券由礼包决定 |
| 定售价与档期 | 售价 + 开始/结束时间,到点自动下架 |
| 控人数 | 每人可买几次 |
| 配封面 | 券包图片作为小程序售卖页头图 |
| 拿链接 | 一键生成小程序售卖页路径,用于分享和装修挂链 |
券包内容统一走会员礼包方案。 早期那种在券包里直接勾一串券的「旧版(选券列表)」已经停用,历史数据再保存时必须改成新版。
二、界面布局说明

| 区域 | 内容 |
|---|---|
| 工具栏 | 新增、刷新、删除(红色)、操作 下拉、生成链接(未选中券包时置灰) |
| 页签 | 右上 生效 / 草稿 / 全部 / 删除,默认停在「生效」 |
| 列表 | 行号、券包ID、券包名称(蓝色超链,点开进编辑抽屉)、售价、礼包编号、礼包名称、购买限制(数字或「不限」)、开始时间、结束时间、类型、状态、备注、创建时间;表头下一行是逐列搜索框 |
| 帮助面板 | 右侧常驻,五条原文见第六节 |
| 计数 | 左下角「共 N 条」 |
「操作」下拉里是生效方案、取消生效、删除方案。状态列显示 生效(绿)/ 草稿 / 停用。
新增/编辑抽屉
点「新增」或双击券包名称,右侧滑出「新增券包」抽屉,右上角 取消 / 保存 / 生效。

| 段 | 字段 | 说明 |
|---|---|---|
| 基本信息 | 券包ID | 只读,新建时系统预分配 |
| 状态 | 只读徽标,新建为「草稿」 | |
| 创建时间 | 建券包时间 | |
| 券包名称 | 新建时预填「券包+ID」,可改 | |
| 售价 | 步进框,单位「元」,默认 0.00 | |
| 开始日期 / 结束日期 | 小程序可售时间窗 | |
| 礼包方案 | 下拉,占位「-- 请选择礼包方案 --」,选一套已生效的会员礼包 | |
| 购买限制 | 步进框,后面灰字「次/人(0或空=不限制)」 | |
| 备注 | 单行文本 | |
| 券包图片 | 载入图片 / 删除图片 | 左侧是预览框(空时显示「暂无图片」),下方灰字「图片大小限制1MB,仅草稿状态可编辑;新增时选择的图片将在保存后上传」 |
三、业务操作步骤
步骤 1:先备好会员礼包
券包不直接列券,它挂的是会员礼包方案。先到会员礼包里把要卖的券配好并生效,回来才能在下拉里选到它(可选范围是状态为生效、类型为礼包的 WX_VipLargessSub 方案)。
步骤 2:建券包
点「新增」,填券包名称、售价、开始/结束日期,在「礼包方案」里选中那套礼包。购买限制按需要填,0 或留空表示不限购。
步骤 3:传封面图
点「载入图片」选一张图,单张不超过 1MB。图片只能在草稿状态下改;新建时选的图要等保存后才真正上传。
步骤 4:保存与生效
- 保存:落草稿,回显「创建成功」/「保存成功」,小程序看不到。
- 生效:确认框「确定要生效该方案吗?生效后不可编辑。」,通过后回显「操作成功」,券包立刻可卖。
- 取消生效:生效后要改,用它退回草稿。
- 删除:选中后点红色「删除」,确认框「确定要删除该记录吗?删除后不可恢复。」。
步骤 5:生成售卖链接
选中一行点「生成链接」,弹窗标题「生成链接」,里面列出券包名称、价格、小程序链接三项。链接由前端按所选券包 ID 拼成 pages/personal/vipGiftPack/index?caseId=N,复制到商城装修 的组件里或发到群里即可。
四、字段详细说明
| 界面字段 | 落库字段 | 含义 |
|---|---|---|
| 券包ID | fCaseId | 券包主键,新建时由系统分配(EXEC GetOnlyNum 'WX_saleCoupon') |
| 券包名称 | fCaseName | 小程序展示名 |
| 售价 | fPrice | 券包卖价,必须 >0 |
| 开始 / 结束日期 | fStartTime / fEndTime | 可售窗口 |
| 创建时间 | fCreateTime | 建券包时间,保存时写 GETDATE() |
| 礼包编号 / 礼包名称 | fGiftPackCaseNo / fGiftPackCaseName | 不是本表的列,是联查会员礼包表带出来的显示值;本表只存 ID fGiftPackCaseId |
| 购买限制 | fBuyLimit | 每人可买次数,0 或空 = 不限 |
| 类型 | fType | 1 = 新版(会员礼包);0 或空 = 旧版(选券列表),已停用 |
| 状态 | fState | 0 草稿 / 1 生效 / -1 删除 |
| 券包图片 | fImgId | 指向图片表 WX_customImage 的 fId;图片本体(fImage、fImageFileName、fImageType)存在那张表里 |
| 备注 | fRemark | 说明文字 |
券包主体在 WX_saleCoupon(注意:这张表没有 ChangeMan/ChangeDate 审计列,也没有方案编号列——列表里的「礼包编号」是联查出来的)。旧版留下的包内券明细行在 WX_saleCoupon_ticket(fCaseId + fTypeId + fQty + fRemark),新版抽屉里已经不再录入券行,历史数据仍从这张表回显。可选的礼包来自会员礼包子表 WX_VipLargessSub(条件:fCaseState=1 且 fCaseType ∈ {100, 101})。
五、典型使用场景
场景一:月饼券包做节令。 提前建好「线上月饼礼包」对应的券包,售价 188,档期设成中秋前两周,购买限制 1 次/人,生效后把链接挂到小程序首页装修的轮播图上。
场景二:100 抵 200 蛋糕券。 礼包里放一张满 200 减 100 的代金券,券包售价 100,购买限制留空不限购,做长期款。
场景三:券包卖错了要下架。 生效后不能直接改,先「取消生效」退回草稿,改完再生效;确认这版作废就删除。
六、校验规则与常见报错
右侧帮助面板五条原文:
1、券包内容统一选择会员礼包方案 2、旧版【选券列表】已停用,历史数据保存时需改为新版 3、生效前必须填写价格、开始/结束日期 4、生效后不可编辑,可用【取消生效】恢复为草稿 5、【生成链接】可获取小程序售卖页面路径
| 提示原文 | 原因 |
|---|---|
| 请输入券包名称 | 点「生效」时名称为空(前端拦) |
| 售价必须大于0 | 点「生效」时售价为 0(前端拦) |
| 请选择礼包方案 | 点「生效」时没挂礼包(前端拦) |
| 价格不能为空或为0 | 绕过前端直接生效,后端校验 |
| 开始日期不能为空 / 结束日期不能为空 | 后端生效校验缺档期 |
| 开始日期不能大于结束日期 | 后端生效校验日期倒挂 |
| 未选择礼包方案 | 后端生效校验 fGiftPackCaseId 为空或 0 |
| 旧版选券列表已停用,请先将类型改为【新版(会员礼包)】并选择礼包方案 | 打开的是旧版券包(fType=0)又直接生效 |
| 图片大小超过1MB限制 | 封面图太大 |
| 只有草稿状态可编辑图片 | 生效后想换图,先取消生效 |
| 确定要生效该方案吗?生效后不可编辑。 | 生效前确认框 |
七、常见问题
问:为什么「礼包方案」下拉是空的? 答:下拉只列已生效的会员礼包方案。先到会员礼包里把方案做好并生效。
问:旧券包打开就提示要改类型? 答:那是旧版(选券列表)券包。把类型切成「新版(会员礼包)」并选一个礼包再保存,否则改不了。
问:会员买了券包,券什么时候到账? 答:付款成功后由发券流程即时发放,生成一张卖券单。发放失败或退单时会出现「发券异常」「退单异常」,到线上卖券单查询 里处理。
问:能改已售出券包的价格吗? 答:生效后不可编辑,只能取消生效改完再生效;已成交的单据按当时售价结算,不受影响。
