会员限时抢购
会员限时抢购(秒杀)是小程序商城的限时特价方案:在一段时间窗内,把指定商品按活动价限量卖,卖完或到点即恢复原价。它和会员拼团方案 用的是同一套单据结构,只是玩法不同。
一、功能概述
菜单位置:O2O业务 → 商城活动 → 会员限时抢购(页面地址 /admin/o2o/wxvipflashbillhead/)
| 用途 | 说明 |
|---|---|
| 定时间窗 | 开始/结束时间决定秒杀在小程序露出的时段 |
| 定活动价与库存 | 逐行给商品填秒杀价和本次放出的数量 |
| 定限购 | 按活动限购、按订单限购两种口径 |
| 定履约 | 取货起止日期 + 参与分店(不选=全部分店) |
| 拿去推广 | 生成小程序/微商城的秒杀详情页链接 |
秒杀是单据,不是简单的方案行:有草稿、已审核(生效)两态,走审核流;列表页不能直接删行,删除在单据页里做。
二、界面布局说明
列表页

| 区域 | 内容 |
|---|---|
| 右上按钮 | 新增(蓝)、审核、反审核(未勾选行时置灰)、导出、刷新 |
| 查询条 | 单据日期快捷页签:今天 / 昨天 / 本周 / 上周 / 本月(默认)/ 上月 / 自定义;高级筛选;查询、重置、导出、★ 方案 |
| 已选条件 | 「已选条件: 单据日期 等于 本月 ×」,点 × 移除该条 |
| 列表 | 勾选框、行号、方案编号(蓝色超链,落库是单据内部 ID fBillID,点开进单据页)、单据编号、方案编号(自己录入的短编号)、方案名称、开始日期、结束日期、限购(是/否)、单据状态、取货日期(未设时显示 —,设了显示「09-01 ~ 09-01」这样的区间) |
| 分页 | 「共 N 条」「共 N 页 第 N 页」,每页 20 / 50 / 100 / 200 条 |
「本月」页签只是默认高亮,进页面时列出的仍是全部方案(截图里共 660 条、33 页,第一页就从 2026-10 排到了 2026-07),按单据编号从新到旧倒序。要真按时间段看,切页签或点「查询」。
列表里有两列都叫「方案编号」:靠左那列是系统内部 ID(带超链、点进单据页),右边那列是自己录入的短编号,两者不是一回事。
单据页
点「新增」或列表里的方案编号,进入单据页,标题「会员限时抢购方案」。

| 区域 | 内容 |
|---|---|
| 工具栏 | 返回、保存(蓝)、复制、删除、推广链接(新建未保存时后三个置灰) |
| 基本信息 | 方案编号*、方案名称*、状态(只读,新建为「草稿」)、开始时间*、结束时间* |
| 限购设置 | 启用限购、按活动限购、活动限购数、按订单限购、订单限购数 |
| 取货与分店 | 取货开始日期、取货结束日期、参与分店(空=所有分店)(点开弹「选择参与分店」多选窗) |
| 明细页签 | 秒杀商品、多级单位物料、单据摘要 |
| 秒杀商品 | 「+ 添加行」「删除选中」;列只有序号、商品类别、商品编号、商品名称、商品规格、基础单位、条码——活动价和库存数量不在这个页签;空表提示「暂无商品,点击"添加行"新增」 |
| 多级单位物料 | 保存商品明细后由服务端按单位自动展开,不能手工加行,只能删行;列含商品类别、主产品商品编号/名称、商品编号/名称、条码、商品规格、原价(只读)、活动价、库存数量(可编辑)、秒杀数量(只读) |
新建时默认值:开始时间 = 今天 00:00:00,结束时间 = 今天 +5 天 23:59:50,启用限购 = 开、按活动限购 = 开、活动限购数 = 1。取货起止日期没有默认值,需要时自己填。秒杀页不显示「参团人数」「有效时间」,也不给默认值——那是拼团才有的字段。
三、业务操作步骤
步骤 1:建单
点「新增」,填方案编号和方案名称,确认起止时间。时间窗决定小程序上什么时候能抢到,注意结束时间不要早于开始时间。
步骤 2:加秒杀商品
在「秒杀商品」页签点「+ 添加行」选物料,或用商品导入。导入时常见回显:
- 「以下商品未上架或类别未启用配送,已跳过:…」
- 「商品编码【X】不存在或未上架(需类别启用配送且微信商品已上架)」
- 「商品编码【X】在明细中重复,请删除重复行」
- 「只有草稿状态的方案可以添加商品」
能进秒杀清单的前提:该商品在网店商品 里已上架,且它所属类别启用了配送。
按斤、按箱这类多级单位商品,切到「多级单位物料」页签看拆出来的子行(导入后回显「已入库并展开多级单位物料」)。
步骤 3:填库存与活动价
切到「多级单位物料」页签,逐行填活动价和库存数量。库存是这次秒杀放出的总量,抢完即止,与门店真实库存分开。生效时逐行校验:活动价漏填报「请输入物料[商品名]的活动价」,库存漏填报「请设置[商品名]的库存数量」,填了负数保存时报「库存数量不能小于0!」。
步骤 4:定限购与分店
| 开关 | 效果 |
|---|---|
| 启用限购 = 关 | 不限购,一个会员可以反复抢 |
| 按活动限购 = 开 + 活动限购数 N | 整个活动期间每人最多 N 件 |
| 按订单限购 = 开 + 订单限购数 M | 每笔订单最多 M 件 |
| 参与分店 留空 | 所有分店都能参与 |
步骤 5:保存、审核、推广
- 保存:落草稿。
- 审核:列表勾选后点「审核」,未勾选行时报「请先选择要审核的单据」;确认后逐单调用审核端点,结果框回显「审核完成:成功 X 张,失败 Y 张」,有失败时后面追加「;单据<编号>:原因」。单据页里的「审核」按钮确认语是「确认审核该单据?」。非草稿单会被挡下:「方案当前状态为【生效】,只有草稿可以生效」。
- 反审核:把生效方案退回草稿,成功回显「已取消生效,方案回到草稿状态」;单据页确认语「确认反审核该单据?」。
- 复制:确认框「确定要复制当前单据为一张新草稿吗?」,用于做下一期同构秒杀。复制只带方案设置与商品明细,日期回到新建默认(今天/+5 天),自己录的单据编号不复制(要保持唯一),秒杀数量(
fKillQty)不复制。 - 推广链接:弹窗标题「推广链接」,每行商品给出「微商城」「小程序」两个只读输入框 + 复制 按钮,点复制回显「已复制」。秒杀的小程序路径是
pages/menuOption/secKill/detail/detail.html。
四、字段详细说明
| 界面字段 | 落库字段 | 含义 |
|---|---|---|
| 方案编号(列表超链) | fBillID | 单据主键,推广链接里的 billId 就是它 |
| 单据编号 | fBillNo | 系统按单据编号规则生成,形如 Wgv261022000002(前缀 + 日期 + 6 位流水);历史单里也见 No… 前缀 |
| 方案编号(自填) | fHandwrtten | 门店自己认的短编号,必填,空着生效报「方案编号不能为空!」 |
| 方案名称 | fCaseName | 小程序展示名,必填,空着报「方案名称不能为空!」 |
| 单据状态 | fBillState | 0 草稿 / 1 生效 / -1 删除(列表过滤器显示为「已生效」) |
| 开始时间 / 结束时间 | fBegDay / fEndDay | 秒杀时间窗,界面是日期+时间一体输入;未录时间时结束日自动补 23:59:50 |
| 启用限购 | fIsQuota | 总开关,列表「限购」列按它显示 是/否 |
| 按活动限购 / 活动限购数 | fIsActivityQuota / fActivityQuota | 整个活动期间每人上限,新建默认开、值 1 |
| 按订单限购 / 订单限购数 | fIsOrderQuota / fOrderQuota | 每笔订单上限 |
| 取货开始 / 结束日期 | fDeliverBegDay / fDeliverEndDay | 到店取货窗口,两个都不填=不限;只填一个会被拦 |
| 参与分店 | fFilialeIDs | 多选分店,空 = 所有分店 |
| 单据摘要 | fBillRemark | 备注 |
| 秒杀商品页签 | WX_VIPGroupBillSheet | 序号 fLineIndex、商品 fInvID、编号 fMaterielNo、名称 fMaterielName、规格 fMaterielSpec、基础单位 fBaseUnit、条码 fBarCode |
| 原价 | fSaleSprice | 多级单位物料页签只读列,取物料/门店标准售价 |
| 活动价 | fGroupPrice | 秒杀价,可编辑,必须 >0 |
| 库存数量 | fQuantity | 本次放出的秒杀量,可编辑,必须 >0;与门店真实库存无关 |
| 秒杀数量 | fKillQty | 已抢出量,只读,服务端写入 |
秒杀与拼团同三张表:单据头 WX_VIPGroupBillHead、商品明细 WX_VIPGroupBillSheet、多级单位物料 WX_VIPGroupInv,用子类型区分——fBillTypeSubID = 0 拼团、1 秒杀;单据类型号 fBillTypeID = 613。秒杀单的「自动摘要」fAutoRemark 固定写「秒杀方案」(拼团写「拼团方案」)。三张表的 fDBID / fBillID / fLineIndex 键列在库里是 varchar(30),所以跨表关联按字符串比对。
五、典型使用场景
场景一:早八点现烤秒杀。 结束时间设到当天 10:00,库存按当日产能填 50,启用「按活动限购 1 件」,取货日期填当天,参与分店只勾三家门店。
场景二:每周复刻同一场秒杀。 上周的单子打开点「复制」,得到一张同结构草稿,只改起止时间和库存即可。
场景三:秒杀发朋友圈。 保存后点「推广链接」,复制「小程序」那一列的链接直接发到群里;从微商城入口发的用「微商城」列。
六、权限控制与前置条件
- 审核/反审核受权限项 「单据生效」、「单据反审」 控制;没有该权限的角色点审核会提示无「单据生效」权限。
- 生成推广链接需要三处配置齐全,缺失时逐条报错:「未配置微信服务地址(TWXOption.WXServiceUrl)」「未配置 AppId(TWXOption.FixedAppId 或机构微信 AppId)」「未配置机构加密密钥(Srv_Pard.fEncryptKey)」;明细未保存就点则提示「请先保存商品明细后再生成推广链接」。
- 商品能进秒杀的前提同第三节:微信商品已上架 + 类别启用配送。
生效前逐项校验(按顺序检查,命中第一条就停下并弹出原文):
| 顺序 | 拦截条件 | 提示原文 |
|---|---|---|
| 1 | 单据不是草稿 | 方案当前状态为【生效】,只有草稿可以生效 |
| 2 | 方案编号为空 | 方案编号不能为空! |
| 3 | 方案名称为空 | 方案名称不能为空! |
| 4 | 开始或结束日期没填 | 请先设置开始日期和结束日期 |
| 5 | 开始日期晚于结束日期 | 开始日期不能大于结束日期! |
| 6 | 开始时刻晚于结束时刻 | 开始时间[HH:MM:SS]不能大于结束时间[HH:MM:SS]! |
| 7 | 取货日期只填了一边 | 取货开始日期或取货结束日期不能为空! |
| 8 | 取货开始晚于结束 | 取货开始日期不能大于取货结束日期! |
| 9 | 开了按活动限购但数量≤0 | 活动限购人数必须大于0! |
| 10 | 开了按订单限购但数量≤0 | 每单限购人数必须大于0! |
| 11 | 「秒杀商品」页签没有行 | 生效前必须添加秒杀商品 |
| 12 | 某行活动价≤0 | 请输入物料[商品名]的活动价 |
| 13 | 某行库存数量≤0 | 请设置[商品名]的库存数量 |
保存(不是生效)时还有一条:结束日期早于开始日期 →「结束日期不能早于开始日期」。
七、常见问题
问:列表为什么一进来就一大堆历史单? 答:页签上「本月」只是默认高亮,列表默认按单据编号倒序展示全部方案。要缩小范围就切日期页签、点「查询」,或用「高级筛选」自定义区间。
问:生效后发现活动价填错了怎么办? 答:先「反审核」退回草稿,改完再审核生效。已生效期间不可编辑明细。
问:秒杀和拼团有什么区别? 答:拼团要凑够「参团人数」才成团、有「有效时间(小时)」;秒杀是到点即抢、按库存放量,没有成团概念。两个页面同表不同子类型。
问:库存抢完了门店还有货,顾客为什么下不了单? 答:秒杀卖的是本单填的 fKillQty,不吃门店实时库存。要补量就反审核后加库存,或再开一期。
问:旧地址 /admin/o2o/wx_vipflashbill/ 打不开了? 答:旧地址会 302 跳到本页,直接用新地址即可。
