类型:报告 · 建档:2026-04-29 | 时效性文档,引用前请核对正文的数据截止日
1 需求文档变更历史
| 版本号 | 日期 | 变更内容 | 变更人 |
|---|---|---|---|
| V1.0 | 2025-10-10 | 1. 新增:B端出货签收规则及前端交互 | 赵清、陈德智 |
| 2. 新增:B端出货及签收相关报表 | |||
| v1.1 | 2025-12-26 | 出货和签收规则中货权不一致和产品状态的控制逻辑由整单控制变更为单码控制 | 赵清、陈德智 |
| v1.2 | 2026-1-14 | 补充此需求涉及的业务流程图 | 赵清、陈德智 |
| v1.3 | 2026-1-27 | 智慧门店侧提出修改接口报错提示: | 赵清、陈德智 |
| (1)出货门店***********与签收门店***********不一致,无法签收;------大宗/bc营销出货规则 | |||
| (2)商品所属经销商************与门店所属经销商*************不一致,无法签收。------自主签收规则 | |||
| v1.4 | 2026-2-2 | 经确认,原规则中"门店类型"字段改为"门店级别" | 赵清、陈德智 |
| v1.5 | 2026-3-18 | 出货扫码范围配置项中,半径x米的配置项与赢销助手不存在接口数据交互,无需通过接口向赢销助手传输半径x米规则配置 | 陈德智 |
| v1.6 | 2026-3-25 | 增加退货单提交时产品状态的校验 | 陈德智 |
| v1.7 | 2026-4-26 | 1. 出货扫码范围校验逻辑变更; | 陈德智 |
| 2. 签收扫码范围校验逻辑变更; | |||
| 3. 出货、退货、调出扫码冻结方案; |
2 需求背景
2.1 背景介绍
2025年9月,赢销助手、智慧门店、小智进行了货权一致性、签收一致性的校验。但是长期看,规则需要收拢到中台进行统一控制,实现销售部可以按照销售五段进行个性化管理。
2.2 阅读对象
业务侧关键用户、项目经理、协同领域产品经理、开发人员、测试人员、设计人员、运维人员。
2.3 术语与缩写解释
术语/名词 解释
3 需求目标
工具类型、人员类型,支持灵活配置。
4 需求影响&风险
4.1 需求影响范围
现阶段正在运行的B端出货场景。
需求待讨论方案(不在本期实现范围内),需后续专项讨论:
1. B端出货签收环节预冻结方案
扫码出货时是否需预冻结商品,以避免短时间内多人操作同一商品导致状态冲突。
- 预冻结适用环节(出货、自主签收、退货、调拨等);
- 解冻逻辑(冻结时效、冲突处理、手动/自动解冻);
- 预冻结对其他场景的影响(如流向查证展示);
- 其他相关场景。
2. 多套产品状态管理机制
目前使用一套产品状态控制各场景。业务侧提出需设立两套状态体系:一套用于内部管理,一套用于营销。
3. "已售"或"已退货"产品在签收时的处理规则
门店长时间未扫签收码,或者自主签收下只扫码未提交,在此时间差下,提内码被扫,产品状态变成"已售",那么当门店扫签收码或者自主签收提交时,该提商品是否允许被签收?若能签收,产品状态不变,是"已售",但是签收激励是否发放?该场景下先产生的已售流向,后产生的签收流向,数据报表是否需要如实记录,对结案、对账是否有影响?是否存在风控问题?
------本次保留目前线上逻辑,针对异常扫码行为,后续版本里增加到"异常扫码"的监控里进行预警。
4. 召回商品的业务与系统处理流程
涉及营销状态由激活转为未激活、流向数据调整等场景。
5. 电子围栏内自动签收方案
经销商出货至电子围栏范围内门店时,实现出货即自动签收。
4.2 需求风险
5 产品方案
5.1 B端出货签收规则及前端交互
(1) 货权管控 (产品归属校验
需求背景:为加强渠道管理与风险控制,建议在营销活动中心平台建立统一、可灵活配置的出货规则引擎。核心管控需求如下:
规则描述: 系统强制校验,确保经销商只能出货其名下所属的产品。
管控目标: 防止串货,严格保障产品货权与渠道划分体系。
(2) 出货地电子围栏 (地理范围限制
规则描述: 司机需在出货门店电子围栏半径 X 米范围内(距离可配置),方可执行提交出货单、扫码装车等操作。
管控目标: 确保货物从指定仓库地点发出,强化出厂管控,杜绝虚假出货。规则可按不同渠道类型进行差异化设置。
(3) 出货与签收门店一致性
规则描述: 系统强制要求每张出货单中指定的"签收门店"必须与"出货门店"保持一致。
管控目标: 规范经销商与授权门店的物流流程,确保物流与财务流转的一致性。
(4) 签收地电子围栏 (签收地理校验
规则描述: 司机需将货物运送至签收门店电子围栏半径 Y 米范围内(距离可配置),方可执行扫码签收等操作。
管控目标: 确保货物准确送达至目标客户所在地,提供签收位置凭证,有效验证终端履约。
5.1.1 营销活动中心产品方案 (仅限于管控非直营、非电商业务)
- 出货签收规则配置
新增菜单,菜单路径:营销活动中心->B端出货管理->规则管理->B端出货签收规则,
(1) 配置列表

排序规则:按照更新时间倒序显示;
数据权限:按照规则创建人事业部、营销总部、销售区域、城市群、城市与权限角色中的销售五段匹配;展示权限角色中的销售五段下的规则数据;
(2) 查询条件
字段名称 逻辑说明 规则编号 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请输入规则编号" 规则名称 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请输入规则名称" 是否为默认兜底规则 下拉单选框,支持模糊查询,默认为空,非必选项 事业部 单选下拉框,默认为空,非必选项,默认提示语"请选择事业部" 创建人营销总部 单选下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择创建人营销总部",当事业部已勾选时,此筛选条件变为可用 创建人销售区域 单选下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择创建人销售区域",当营销总部已勾选时,此筛选条件变为可用 创建人城市群 单选下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择创建人城市群",当销售区域已勾选时,此筛选条件变为可用 创建人城市 单选下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择创建人城市",当城市群已勾选时,此筛选条件变为可用 状态 单选下拉框,默认为空,非必选项,默认提示语"请选择状态",选项包含:启用、禁用
(3) 查询结果及导出模版
| 字段名称 | 逻辑说明 |
|---|---|
| 规则编号 | 显示为规则编号 |
| 规则名称 | 显示为规则名称 |
| 是否为默认兜底规则 | 显示为"是"或"否" |
| 创建人事业部 | 显示为事业部名称 |
| 创建人营销总部 | 显示为营销总部名称,如果有多个,以"/"拼接显示 |
| 创建人销售区域 | 显示为销售区域名称,如果有多个,以"/"拼接显示 |
| 创建人城市群 | 显示为城市群名称,如果有多个,以"/"拼接显示 |
| 创建人城市 | 显示为城市名称,如果有多个,以"/"拼接显示 |
| 状态 | 显示为状态 |
| 创建人 | 显示创建人姓名 |
| 创建时间 | 显示创建的时间,精确到时分秒 |
| 更新人 | 显示最近一次更新的人员姓名 |
| 更新时间 | 显示最近一次更新的时间,精确到时分秒 |
| 操作功能区 | (1) 如果状态=启用,显示禁用、编辑按钮; |
| (2) 如果状态=禁用,显示启用、编辑按钮; |
(4) 操作功能
| 功能按钮 | 类型 | 操作交互 |
|---|---|---|
| 查看 | 行功能按钮 | 点击规则编码,则打开查看规则页面 |
| 新增 | 功能按钮 | 点击此按钮,则打开新增规则界面 |
| 编辑 | 行功能按钮 | 点击此按钮,则打开编辑规则界面 |
| 启用 | 行功能按钮 | 点击启用按钮,弹出二次确认对话框"是否启用此数据?"选择确认,则更新此数据为启用状态; |
| 启用时校验是否存在相同区域范围内的规则,若存在,不允许启用,提示"存在相同区域规则,无法启用"。 | ||
| 禁用 | 行功能按钮 | 点击禁用按钮,弹出二次确认对话框"是否禁用此数据?"选择确认,则更新此数据为禁用状态; |
| 兜底规则无法禁用,仅允许编辑; |
(5) 配置详情
规则界面显示如下:





新增时,支持创建多个规则,以页面table标签展示,保存提交后,根据新增时创建的多个规则自动生成规则编码。
注:编辑提交时,需校验是否存在相同区域范围内的规则,若存在,不允许启用,提示"存在相同区域规则,无法提交"。
点击保存按钮,校验内容如下:
| 字段名称 | 逻辑说明 |
|---|---|
| 规则编号 | 保存成功后,自动生成,,生成规则为BDCH+年月日+3位数升序,是规则唯一性的校验条件 |
| 规则名称 | 文本输入框,默认为空,必填项,默认提示语"请填写规则名称", |
| 如果未填写,保存时提示"请填写规则名称" | |
| 限制为50个字,保存时自动去掉空格,输入校验特殊字符时提示"特殊字符不允许保存"; | |
| 是否为默认兜底规则 | 1、默认值为否,需手动选择; |
| 2. 是否兜底规则为"是"时,区域范围默认为全部销售五段,置灰不可修改; | |
| 3. 提交时校验本次配置的规则与B端出货列表中状态为"启用"的规则是否仅有一个默认兜底规则;如果>1个,则提示:已有启用的默认兜底规则,请检查后提交;如果=1个,则提交成功;如果<1个,则提示:请创建一个默认兜底规则再提交。 | |
| 状态 | 选择框,必填项,默认选择启用 |
| 区域范围 | 是否为默认兜底规则为"否"时,默认值为"指定销售区域",必须选择区域范围; |
| 若未选择,页面上提示语"请选择区域范围", | |
| 是否兜底规则为"是"时,区域范围默认为全部销售五段,置灰不可修改; | |
| 点击选择项,列表呈现销售五段(事业部-大区-区域-城市群-城市),弹出对话框如下: | |
} | |
| 选择完成后,显示如下: | |
} | |
| 如果未选择,保存时提示"请选择区域范围"; | |
| 多个规则的区域范围不允许重复(不可见),即只能选择未在其他规则选定的区域范围; | |
| 五段有效性控制:取有效和业务失效的数据; | |
| 出货/签收扫码范围 | 列表默认为不限制,必选项, |
| 选择"指定范围",则下方展示选择框 | |
| 点击【新增】按钮,新增一行; | |
} | |
| 点击【删除】按钮,删除一行; | |
| 如果已添加行,未填写【门店渠道类型】或【门店级别】其中一个,提示"【规则信息】-【出货/签收】扫码范围,请选择门店渠道类型"; | |
| 如果已添加行,未填写【扫码半径】,提示"请选择扫码半径"; | |
| 选择时根据门店渠道类型+门店级别做唯一性校验。 |
- 出货签收退货调拨规则校验
<!-- -->(1) 出货规则配置的流向类型与码的产品状态对照表如下:
流向类型 产品状态 工厂/分仓已发货 工厂/分仓在库 经销商调出 调拨待签收 经销商调入 经销商在库 经销商已签收 经销商在库 经销商已发货 待签收 门店已签收 已签收 消费者扫提内码 已售出 消费者扫提外码核销卡券 提外码已核销 门店已退货 已退货 工厂/分仓已签收 工厂/分仓在库
(2) 【大宗团购出货及签收规则】校验规则(业务操作类型=大宗团购出货、收货码签收)
| 规则项 | 逻辑说明 |
|---|---|
| 1、出货门店与签收门店一致时,允许签收;不一致时,不允许签收 | 此规则项为默认规则项,扫码签收时,整个出货单进行校验: |
| - 如果签收门店与出货门店不一致,不允许签收; | |
| - 如果签收门店与出货门店一致,允许签收; | |
| 管控时的错误提示:"出货门店***********与签收门店***********不一致,无法签收。" | |
| 一致时,允许签收; | |
| 2、允许签收成功的产品状态:待签收(签收时过滤签收码中不符合此规则产品追溯字符码)------414版本已上线 | 以前端签收收货码传递的追溯字符码查询码的基本信息的产品状态, |
| - 如果识别追溯字符码的产品状态是待签收,则允许签收成功; | |
| - 如果识别追溯字符码的产品状态是工厂/分仓在库、已退货、已售、已签收,则签收失败; | |
| 门店/导购扫收货码签收时,如果有部分商品不符合上述规则,整单依旧允许提交,不符合上述规则的单提不允许签收成功,符合上述规则的允许签收成功 | |
| 注:(1)签收动作完成后,如果成功签收0提,则回传前端报错信息"该码状态不符,不允许签收";如果0<成功签收数<a提(a为出货单出货成功提数),接口会回传提示信息:提示方案(1)扫码签收x提,签收成功y提,签收失败x-y提,详情请前往签收记录进行查看";如果该单据签收成功a提,接口会回传提示信息"签收完成"; | |
| (2)签收记录接口中给应签总提数、失败总提数、签收成功总提数以及签收单各事业部品牌的应出总提数、失败总提数、签收成功总提数(各事业部品牌的顺序以总提数倒叙);。------详见文档中5.2.1里接口内容 | |
| (3)该出货单签收后,赢销助手侧查看出货单详情时会显示应签总提数、失败总提数、签收成功总提数以及签收单各事业部品牌的应出总提数、失败总提数、签收成功总提数(各事业部品牌的顺序以总提数倒叙); | |
| 例如:a0001出货单出货200提,金典和安慕希各100提,提交时有1提金典和1提安慕希产品状态为已签收,该提金典和该提安慕希不允许出货成功,因此扫码出货提数200、出货失败提数2、出货成功提数198;金典应出提数100、出货失败提数1、出货成功提数99;安慕希应出提数100、出货失败提数1、出货成功提数99。该出货码被签收时,有1提金典和1提安慕希产品状态为已退货,该提金典和该提安慕希不允许签收成功,因此应签总提数198、签收失败总提数2、签收成功总提数196;金典应签提数99、签收失败提数1、签收成功提数98;安慕希应签提数99、签收失败提数1、签收成功提数98。 | |
| (3)数据库记录失败提码当前的产品状态,并通过签收记录接口給到前端签收失败提码和签收失败提码当前产品状态(例如:已售出/已退货/重复签收/工厂/分仓在库)。该出货单被签收后,赢销助手侧查看出货单详情时会显示签收失败提码和签收失败提码当前产品状态。 | |
| 3、出货扫码范围 | 已配置扫码范围, |
| 识别出货经销商所属的区域范围,在配置的区域范围内, | |
| 门店的渠道类型、门店级别在配置的范围内, | |
| 以前端传递的出货位置经纬度、门店编码(查询门店资料的经纬度)比对, | |
| 选门店时校验: | |
| - 如果"门店出货与门店距离(米)"在出货门店半径X米内,则允许选择该门店; | |
| - 如果"门店出货与门店距离(米)"不在出货门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许出货" | |
| 扫码出货时,整单提交校验: | |
| - 如果"门店出货与门店距离(米)"在出货门店半径X米内,则允许出货; | |
| - 如果"门店出货与门店距离(米)"不在出货门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许出货" | |
| 未配置扫码范围, | |
| 则不校验"门店出货与门店距离(米)"; | |
| ------4月26日更新 | |
| 4、签收扫码范围 | 已配置扫码范围, |
| 识别出货经销商所属的区域范围,在配置的区域范围内, | |
| 门店的渠道类型、门店级别在配置的范围内, | |
| 以前端传递的签收位置经纬度、门店编码(查询门店资料的经纬度)比对, | |
| 扫码签收时,整单校验: | |
| - 如果"门店签收与门店距离(米)"在签收门店半径X米内,则允许出货; | |
| - 如果"门店签收与门店距离(米)"不在签收门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许签收" | |
| 签收扫码范围校验:"结束扫码"提交时,进行该规则校验,校验不通过,不允许提交;前端提示报错:"不在门店半径X米内,不允许签收,请确认后重新签收"。 | |
| 未配置扫码范围, | |
| 则不校验"门店签收与门店距离(米)"; | |
| 查码时如果识别追溯字符码不存在,则回传前端报错信息"该码不存在,不允许出货"; | |
| 查码时如果识别追溯字符码的码状态为已过期,则回传前端报错信息"该码已过期,不允许出货" | |
| 1、需提供给前端查询数据接口,与提交数据接口分开; | |
| 2. 收货码签收时规则判断顺序:2>4 | |
| 3. 整单过滤逻辑中出货失败原因:不符合规则校验时的当前产品状态(值为:已售出/待签收/已签收/已退库)(4) | |
| 4. 整单过滤逻辑中签收失败原因:不符合规则时的当前产品状态(值为:已售出/已退货/重复签收/已退库)(5) |
(3) 【BC营销出货及签收规则】校验规则(业务操作类型=BC营销出货、收货码签收)------规则同(2)一致
| 规则项 | 逻辑说明 |
|---|---|
| 1、出货门店与签收门店一致时,允许签收;不一致时,不允许签收 | 此规则项为默认规则项,扫码签收时,整个出货单进行校验: |
| - 如果签收门店与出货门店不一致,不允许签收; | |
| - 如果签收门店与出货门店一致,允许签收; | |
| 管控时的错误提示:"出货门店***********与签收门店***********不一致,无法签收。" | |
| 一致时,允许签收; | |
| 2、允许签收成功的产品状态:待签收(签收时过滤签收码中不符合此规则产品追溯字符码)------414版本已上线 | 以前端签收收货码传递的追溯字符码查询码的基本信息的产品状态, |
| - 如果识别追溯字符码的产品状态是待签收,则允许签收成功; | |
| - 如果识别追溯字符码的产品状态是工厂/分仓在库、已退货、已售、已签收,则签收失败; | |
| 门店/导购扫收货码签收时,如果有部分商品不符合上述规则,整单依旧允许提交,不符合上述规则的单提不允许签收成功,符合上述规则的允许签收成功 | |
| 注:(1)签收动作完成后,如果成功签收0提,则回传前端报错信息"该码状态不符,不允许签收";如果0<成功签收数<a提(a为出货单出货成功提数),接口会回传提示信息:提示方案(1)扫码签收x提,签收成功y提,签收失败x-y提,详情请前往签收记录进行查看";如果该单据签收成功a提,接口会回传提示信息"签收完成"; | |
| (2)签收记录接口中给应签总提数、失败总提数、签收成功总提数以及签收单各事业部品牌的应出总提数、失败总提数、签收成功总提数(各事业部品牌的顺序以总提数倒叙);。------详见文档中5.2.1里接口内容 | |
| (3)该出货单签收后,赢销助手侧查看出货单详情时会显示应签总提数、失败总提数、签收成功总提数以及签收单各事业部品牌的应出总提数、失败总提数、签收成功总提数(各事业部品牌的顺序以总提数倒叙); | |
| 例如:a0001出货单出货200提,金典和安慕希各100提,提交时有1提金典和1提安慕希产品状态为已签收,该提金典和该提安慕希不允许出货成功,因此扫码出货提数200、出货失败提数2、出货成功提数198;金典应出提数100、出货失败提数1、出货成功提数99;安慕希应出提数100、出货失败提数1、出货成功提数99。该出货码被签收时,有1提金典和1提安慕希产品状态为已退货,该提金典和该提安慕希不允许签收成功,因此应签总提数198、签收失败总提数2、签收成功总提数196;金典应签提数99、签收失败提数1、签收成功提数98;安慕希应签提数99、签收失败提数1、签收成功提数98。 | |
| (3)数据库记录失败提码当前的产品状态,并通过签收记录接口給到前端签收失败提码和签收失败提码当前产品状态(例如:已售出/已退货/重复签收/工厂/分仓在库)。该出货单被签收后,赢销助手侧查看出货单详情时会显示签收失败提码和签收失败提码当前产品状态。 | |
| 3、出货扫码范围 | 已配置扫码范围, |
| 识别出货经销商所属的区域范围,在配置的区域范围内, | |
| 门店的渠道类型、门店级别在配置的范围内, | |
| 以前端传递的出货位置经纬度、门店编码(查询门店资料的经纬度)比对, | |
| 选门店时校验: | |
| - 如果"门店出货与门店距离(米)"在出货门店半径X米内,则允许选择该门店; | |
| - 如果"门店出货与门店距离(米)"不在出货门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许出货" | |
| 扫码出货时,整单提交校验: | |
| - 如果"门店出货与门店距离(米)"在出货门店半径X米内,则允许出货; | |
| - 如果"门店出货与门店距离(米)"不在出货门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许出货" | |
| 未配置扫码范围, | |
| 则不校验"门店出货与门店距离(米)"; | |
| ------4月26日更新 | |
| 4、签收扫码范围 | 已配置扫码范围, |
| 识别出货经销商所属的区域范围,在配置的区域范围内, | |
| 门店的渠道类型、门店级别在配置的范围内, | |
| 以前端传递的签收位置经纬度、门店编码(查询门店资料的经纬度)比对, | |
| 扫码签收时,整单校验: | |
| - 如果"门店签收与门店距离(米)"在签收门店半径X米内,则允许出货; | |
| - 如果"门店签收与门店距离(米)"不在签收门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许签收" | |
| 签收扫码范围校验:"结束扫码"提交时,进行该规则校验,校验不通过,不允许提交;前端提示报错:"不在门店半径X米内,不允许签收,请确认后重新签收"。 | |
| 未配置扫码范围, | |
| 则不校验"门店签收与门店距离(米)"; | |
| ------4月26日更新 | |
| 查码时如果识别追溯字符码不存在,则回传前端报错信息"该码不存在,不允许出货"; | |
| 查码时如果识别追溯字符码的码状态为已过期,则回传前端报错信息"该码已过期,不允许出货" | |
| 1、需提供给前端查询数据接口,与提交数据接口分开; | |
| 2. 收货码签收时规则判断顺序:2>4 | |
| 3. 整单过滤逻辑中出货失败原因:不符合规则校验时的当前产品状态(值为:已售出/待签收/已签收/已退库)(4) | |
| 4. 整单过滤逻辑中签收失败原因:不符合规则时的当前产品状态(值为:已售出/已退货/重复签收/已退库)(5) |
(4) 【门店自主签收】校验规则(业务操作类型=自主签收)------扫码即签收519版本
| 规则项 | 逻辑说明 |
|---|---|
| 1、有货权的情况下:签收门店关联经销商与货权经销商一致时,允许签收;不一致时,不允许签收 | 查码接口以前端传递的签收经销商与码的基本信息的码归属经销商比对, |
| 一次校验: | |
| 1. 签收扫码时,单提进行校验: | |
| - 如果签收门店所属经销商与货权经销商一致,则允许签收; | |
| - 如果出货扫码人所属经销商与货权经销商不一致,则回传前端报错信息"商品所属经销商************与门店所属经销商*************不一致,无法签收。"; | |
| 2、签收扫码范围 | 已配置扫码范围, |
| 识别签收经销商所属的区域范围,在配置的区域范围内, | |
| 门店的渠道类型、门店级别在配置的范围内, | |
| 以前端传递的签收位置经纬度、门店编码(查询门店资料的经纬度)比对, | |
| 自主签收扫码时,校验: | |
| - 如果"门店签收与门店距离(米)"在签收门店半径X米内,则允许出货; | |
| - 如果"门店签收与门店距离(米)"不在签收门店半径X米内,则回传前端报错信息"不在门店半径X米内,不允许签收" | |
| 未配置扫码范围, | |
| 则不校验"门店签收与门店距离(米)"; | |
| ------4月26日更新 | |
| 如果识别追溯字符码不存在,则回传前端报错信息"该码不存在,不允许签收"; | |
| 如果识别追溯字符码的码状态为已过期,则回传前端报错信息"该码已过期,不允许签收" | |
| 1、需提供给前端自主签收单查询接口------079分页查询收货记录接口; | |
| 2. 签收扫码时规则判断顺序:1>2,接口为------083门店自主签收扫码签收接口; | |
| 接口文档链接:营销活动中心集成接口 |
(5) 【退货】校验规则(业务操作类型=退货)
| 规则项 | 逻辑说明 |
|---|---|
| 如果识别追溯字符码不存在,则回传前端报错信息"该码不存在,不允许退货"; | |
| 如果识别追溯字符码的码状态为已过期,则回传前端报错信息"该码已过期,不允许退货";------424版本已上线 |
(6) 【调拨】校验规则(业务操作类型=调拨)
| 规则项 | 逻辑说明 |
|---|---|
| 1、签收位置在经销商仓库时x米内,允许签收;不在经销商仓库x米内时,不允许签收 | 已勾选此规则项,并填写控制距离(米), |
| 识别调拨签收经销商所属的区域范围,在配置的区域范围内, | |
| 扫码签收时,整单进行校验,整单校验不通过,不允许提交; | |
| - 如果签收人位置在经销商仓库时x米内,允许调拨签收; | |
| 未勾选此规则项, | |
| 识别调拨签收经销商所属的区域范围,在配置的区域范围内, | |
| 允许调拨签收; | |
| 开启时管控住的错误提示:当前位置不在经销商仓库x米内,不允许签收。 | |
| 如果识别追溯字符码不存在,则回传前端报错信息"该码不存在,不允许调拨"; | |
| 如果识别追溯字符码的码状态为已过期,则回传前端报错信息"该码已过期,不允许调拨"------424版本已上线 |
- 扫码过程管控解决方案**(524版本)**
2.1核心处理逻辑
实时锁定机制:业务员执行大宗团购/BC营销出货、日常开单、退货、调拨扫码时,系统立即为对应码添加 "冻结" 状态,冻结期间禁止其他用户对该码进行任何扫码操作(含出货 / 退货 / 调拨),从源头阻断业务执行归属的冲突;
若扫码时码为"冻结"状态,系统实时提示 "该码已被【XXX(用户)】于【XX 时间】锁定(出货 /日常开单/退货/调拨场景),请联系【XXX(用户)】解锁后重试",避免后续无效操作;
正常流程:若扫码时码值为非「冻结」状态,系统将按照现有业务逻辑,正常执行后续扫码及单据处理流程,不新增额外操作门槛。
2.2解锁触发条件
系统将根据业务场景自动或手动触发解锁,确保冻结状态合理管控,兼顾业务效率与操作灵活性,具体触发条件如下:
自动解锁1:扫码用户完成对应单据提交操作(成功生成有效订单/单据),系统同步自动解锁该单据关联的所有码值。
手动解锁:扫码用户主动取消扫码操作(清空当前扫码暂存数据),系统立即解锁该用户本次扫码暂存的所有码值。
自动解锁2:超时自动解锁,系统根据「单据超时关闭配置」中设定的时间规则,自动判断并解锁超时未处理的码值。
特殊兼容:消费者扫提外码核销卡券的操作,不受码值冻结状态影响,确保C端用户核销体验无感知、不中断。
示例:出货场景下:A用户16号10点-11点扫了abcdef..50提货后未提交出货单,缓存在手机端,B用户16号下午2点-4点也扫到a/b/c这几提时,扫每一提时都会第一时间提示:该码已A用户于10:01分扫码锁定出货,请联系用户A解锁后重试。
2.3 新增功能:单据超时关闭配置
2.3.1 菜单路径
新增菜单入口,具体路径:营销活动中心 → 系统管理 → 单据超时关闭配置
2.3.2 配置页面说明
1. 进入【单据超时关闭配置】页面,将直接展示当前系统已配置的超时规则(无配置时显示为空,提示「请配置单据超时关闭规则」)。
2. 规则说明提示:鼠标悬浮至【单据超时关闭配置】标题旁的「感叹号」图标,将弹出说明弹窗,明确单据范围:「单据指B端出货场景下的大宗团购出货单、BC营销出货单、退货单、调拨单」。
3. 编辑操作:点击页面右上角「编辑」按钮,进入规则编辑页面,可进行超时规则的新增、修改操作。
鼠标滑动至【单据超时关闭配置】旁的感叹号,展示内容为:单据指B端出货场景下的大宗团购出货单、BC营销出货单、退货单、调拨单。如下图:
点击右上角"编辑"按钮,进入编辑页面,如下图:
| 字段名称 | 字段说明 | 逻辑补充 |
|---|---|---|
| 单据超时关闭配置时效性 | 下拉单选框,字典值为"选择小时关闭"、"指定当日时分秒关闭",默认为空,必选项,默认提示语"请选择时效性方式" | (1)选择"选择小时关闭",需填写小时(校验填写内容为>0的正整数),如下图: |
}; | ||
| (2)选择"指定时分秒",需填写时分秒,如下图: | ||
| "指定时分秒关闭"定义逻辑:若单据创建时间早于配置的指定时分秒,则关闭时间为当日指定时分秒;若单据创建时间晚于配置的指定时分秒则关闭时间为次日指定时分秒; | ||
| (3)选择"指定时分秒关闭"后,鼠标滑动至旁边的感叹号,展示定义逻辑;如下图 | ||
} |
配置完成后,点击保存按钮,即配置完规则,保存后通过【单据超时关闭规则同步接口】同步至SFA。
- 冻结单据报表(524版本)
新增菜单,菜单路径:营销活动中心->B端出货管理->冻结单据报表
排序规则:按照更新时间倒序显示;
数据权限:按照规则扫码事业部、营销总部、销售区域、城市群、城市与权限角色中的销售五段匹配;展示权限角色中的销售五段下的冻结单据数据;
(1) 查询条件
| 字段名称 | 逻辑说明 |
|---|---|
| 单据编码 | 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请输入单据编号" |
| 单据类型 | 单选下拉框,字典值为:大宗团购出货、BC营销出货、日常开单出货、自主签收、退货、调拨出货单 |
| 默认为空,非必选项,默认提示语"请选择事业部" | |
| 单据经销商云商编码 | 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请选择单据经销商云商编码" |
| 单据经销商 | 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请选择单据经销商云商" |
| 单据创建人员工编码 | 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请选择单据经销商创建人员工编码" |
| 单据创建时间 | 下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择单据创建时间" |
| 单据预警时间 | 下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择单据预警时间" |
| 单据关闭时间 | 下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择单据关闭时间" |
| 单据更新时间 | 下拉框,默认不可用,默认为空,非必选项,默认提示语"请选择单据更新时间" |
| 关闭状态 | 下拉框,字典值为:待关闭、超时关闭、手动关闭。默认不可用,默认为空,非必选项,默认提示语"请选择关闭状态" |
| 追溯字符码 | 文本输入框,支持模糊查询,默认为空,非必选项,默认提示语"请输入追溯字符码" |
(2) 查询结果及导出模版
字段名称 逻辑说明 单据编码 显示为单据编码 单据类型 显示为大宗团购出货、BC营销出货、日常开单出货、自主签收、退货或调拨出货单 单据所属事业部 显示为单据所属事业部 单据所属营销总部 显示为单据所属营销总部 单据所属销售区域 显示为单据所属销售区域 单据所属城市群 显示为单据所属城市群 单据所属城市 显示为单据所属城市 单据经销商云商编码 显示为单据经销商云商编码 单据经销商 显示为单据经销商 单据创建人员工编码 显示单据创建人员工编码 单据创建时间 显示单据创建时间,精确到时分秒 单据预警时间 显示单据预警时间,精确到时分秒 单据关闭时间 显示单据关闭时间,精确到时分秒 单据更新时间 显示单据更新时间,精确到时分秒 追溯字符码 显示为追溯字符码 事业部品牌 显示为事业部品牌 产品编码 显示为产品编码 产品名称 显示为产品名称 产品批次 显示为产品批次 扫码时间 显示为扫码时间 扫码方式 显示为扫码、手工录入、ocr识别 产品状态 显示为工厂/分仓在库、经销商在库、已退货、待签收、已签收 关闭状态 显示为待关闭、超时关闭、手动关闭
(3) 操作功能
功能按钮 类型 操作交互&功能逻辑 查询 功能按钮 点击此按钮,根据筛选条件查询结果 重置 功能按钮 点击此按钮,重置筛选条件 导出 功能按钮 点击此按钮,导出查询后的报表数据 展开 行功能按钮 点击此按钮,展开单据下的码数据
(4)报表字段
| 表字段名称 | 取值逻辑 |
|---|---|
| 单据编码 | 取自【查码接口】中的"单据编码" |
| 单据类型 | 取自【查码接口】中的"单据类型" |
| 单据所属事业部 | 取自【查码接口】中的"单据所属事业部" |
| 单据所属营销总部 | 取自【查码接口】中的"单据所属营销总部" |
| 单据所属销售区域 | 取自【查码接口】中的"单据所属销售区域" |
| 单据所属城市群 | 取自【查码接口】中的"单据所属城市群" |
| 单据所属城市 | 取自【查码接口】中的"单据所属城市" |
| 单据经销商云商编码 | 取自【查码接口】中的"单据经销商云商编码" |
| 单据经销商 | 取自【查码接口】中的"单据经销商" |
| 单据创建人员工编码 | 取自【查码接口】中的"单据创建人员工编码" |
| 单据创建人员工姓名 | 取自【查码接口】中的"单据创建人员工姓名" |
| 单据创建时间 | 取自【查码接口】中的"单据创建时间" |
| 单据预警时间 | 取自【查码接口】中的"单据预警时间" |
| 单据关闭时间 | 取自【查码接口】中的"单据关闭时间" |
| 追溯字符码 | (1)写入逻辑:根据【查码接口】传值的"追溯字符码"判断是否存在报表,若不存在,写入报表数据下,并将该码的码冻结状态=冻结;若存在,报错"该码已被「单据创建人员工姓名」占有,无法出货," |
| (2)删除逻辑:根据【单码解冻接口】传值的"单据编码"+"追溯字符码"匹配报表数据,将该码的码冻结状态=解冻,并删除此条报表数据;若不存在,报错提示"该码非冻结状态,请核实后操作"; | |
| 事业部品牌 | 根据【查码接口】传值的"追溯字符码"关联码生产文件的"事业部品牌" |
| 产品编码 | 根据【查码接口】传值的"追溯字符码"关联码生产文件的"产品编码" |
| 产品名称 | 根据【查码接口】传值的"追溯字符码"关联码生产文件的"产品名称" |
| 产品批次 | 根据【查码接口】传值的"追溯字符码"关联码生产文件的"产品批次" |
| 扫码时间 | 取自【查码接口】中的"扫码时间" |
| 扫码方式 | 取自【查码接口】中的"扫码方式" |
| 产品状态 | 根据【查码接口】传值的"追溯字符码"关联码生产文件当前的"产品状态" |
| 关闭状态 | 待关闭:调用【查码接口】传输"单据编码",并未收到【单据关闭接口】传值"超时关闭"和"提交关闭"; |
| 超时关闭:SFA端请求【单据关闭接口】,传值"超时关闭",营销活动中心处理该单据下的追溯字符码全部解冻,并将此单据状态更新为超时关闭, | |
| 手动关闭:通过SFA端【关闭单据】操作,操作后,SFA通过【单据关闭接口】传值"手动关闭",营销活动中心处理该单据下的追溯字符码全部解冻,并将此单据状态更新为手动关闭, | |
| ------待确认:关闭单据做在营销活动中心还是云商或者SFA |
5.1.2 赢销助手产品方案
**需求背景:**B端出货规则,当前由各前端进行控制,本次修改将优化为整体管控规则在营销活动中心进行配置,赢销助手根据接口返回展示相关提醒
以下端侧做校验的逻辑注销,调整为营销活动中心接口进行校验后直接返回结果
| 编号 | 规则类型 | 判断内容 | 赢销助手判断逻辑 | 判断结果 | 营销活动中心规划是否包含 | 备注 |
|---|---|---|---|---|---|---|
| 1-1 | B端出货 | 货权校验(是否一致) | 按大区设置是否校验 | 是,进行校验 | 是 | 调用营销活动信接口,根据查码接口中的sucess字段判断是否可以出货 |
| true:可出货 | ||||||
| false:不可出货,根据message字段返回内容展示文案 | ||||||
| 1-2 | 否,不校验 | 是 | ||||
| 2-1 | B端出货 | 产品状态校验 | 产品状态是否符合出货逻辑 | 是,进行校验 | 是 | |
| 2-2 | 否,不校验 | 是 | ||||
| 3-1 | B端退货 | 货权校验(是否一致) | 按大区设置是否校验 | 是,进行校验 | 是 | 调用营销活动信接口,根据查码接口中的sucess字段判断是否可以出货 |
| true:可出货 | ||||||
| false:不可出货,根据message字段返回内容展示文案 | ||||||
| 3-2 | 否,不校验 | 是 | ||||
| 4-1 | B端退货 | 产品状态校验 | 产品状态是否符合出货逻辑 | 是,进行校验 | 是 | |
| 4-2 | 否,不校验 | 是 |
接口侧调整:
- 增加以下参数传递给营销活动中心
| 经销商编码 | 新增 | |
|---|---|---|
| 门店编码 | 新增 | |
| 扫码位置经度 | 新增 | |
| 扫码位置维度 | 新增 | |
| 业务操作类型 | 枚举值:出货、收货码签收、自主签收、退货、调拨; | 新增 |
| (1)当业务操作类型=出货、退货,则经销商编码、门店编码、扫码位置经度、扫码位置维度,必填; | ||
| (2)当业务操作类型=收货码签收、自主签收,则门店编码、扫码位置经度、扫码位置维度,必填; | ||
| (3)当业务操作类型=调拨,则经销商编码、必填; |
若码无所属经销商(无货权),则需将扫码人所属经销商传递给营销活动中心
前端文案样式如下,文案内容根据营销活动中心接口返回进行展示,如【该码非授权产品,不允许出货】

- 增加每个扫码动作的时间,最后提交上传时,统一提交
--若26日15:00:00进行扫码,数据放在缓存里未上传,则27号再扫,前端会提示该码已扫,数据上传时仍以26日扫码时间为准。
--若26日15:00:00进行扫码,数据放在缓存里未上传,则27号删除后再扫,数据上传时以27日扫码时间为准
退货记录查接口:由营销活动中心提供,在原有【出货记录查询接口】中,新增类型字段,区分出货/退货,用于退货记录查询
扫码出货时,获取营销活动中心接口规则,默认展示当前位置x米范围内门店;若未命中规则,则延用现有逻辑,展示10公里范围内门店,支持模糊搜索
赢销助手提交出货/退货单据时,营销活动中心进行整单数据校验,并将不符合规则的的数量予以返回,展示整单扫码xx条,成功x条,失败x条,参考示意如下方:
- 赢销助手调用营销活动中心接口,进行出货/退货单数据查询时,分别展示出货及签收数量、明细;出货信息增加出货门店编码字段,签收信息增加签收人编码,出货类型字段
1)出货信息接口:增加出货类型、出货门店编码、出货数据(总数,按品牌归类计数)
2)已签收订单,需展示出货/签收数据,并在商品列表中展示详细信息,对于失败信息逐条标记(此处需营销活动中心提供相关接口)
}
}
- 调拨权限判断:产品是否允许调拨,由原有自主调用营销活动中心查码接口进行码状态校验,修改为调用营销活动中心接口整体返回是否允许调拨(仅提供dms成功数据)
调出扫码逻辑(规则已配置):
按营销活动中心调出仓库距离管控规则(如:需在仓库周围 200 米范围内方可调出)执行。前端展示该经销商下所有符合距离规则的仓库,按距离由近到远排序。默认关联最近的一家仓库
对无经纬度的仓库:引导用户进入经销商检核,补充仓库经纬度信息。
若仓库不在 200 米范围内:前端仅展示该经销商,不可选择 / 不可调出
默认展示当前用户最近一家有经纬度的仓库,若该经销商下的仓库均未维护经纬度,则弹窗提示业务线进行经纬度维护
调出扫码逻辑(规则未配置)
- 营销活动中心未配置距离管控规则:用户可选择该经销商下任一仓库进行调出

调入扫码逻辑(规则已配置)
按营销活动中心调入仓库距离管控规则(如:需在仓库周围 200 米范围内方可调入)执行。
前端展示该经销商下所有符合距离规则的仓库,按距离由近到远排序。
对无经纬度的仓库:引导用户进入经销商检核,补充仓库经纬度信息。若仓库不在 200 米范围内:前端仅展示该经销商,不可选择 / 不可调入默认展示当前用户最近一家有经纬度的仓库,若该经销商下的仓库均未维护经纬度,默认关联最近的一家仓库
调入扫码逻辑(规则未配置)
- 若营销活动中心未配置管控规则,则用户可选择该经销商下的任一仓库进行调入操作
- 扫码人五段信息、人员信息有效性校验
1) 通过系统拦截机制,明确失效人员的操作边界,保障 B 端出货流程规范流转。拦截人员信息失效/五段信息失效用户执行 B 端出货相关操作,从源头避免流程异常。
操作场景:所有 B 端出货相关操作(包括扫码出货、扫码退货、调拨环节)
2)核心流程:
触发:用户发起 B 端出货/退货/调拨操作
校验:核查人员状态、五段校验
拦截:判定人员信息失效后,终止出货流程,弹出拦截提示弹窗;
恢复:用户更新信息若恢复为启用状态(dms同步,每小时同步一次),重新发起操作,校验通过则正常流转出货流程。
3) B端出货功能流程示意
扫码前校验:选择出货场景后,校验人员是否有效,若无效则弹窗展示相关提醒,点击确认则返回至首页工作台
扫码后校验:扫码完成后,在扫码信息核对页面,点击提交按钮后,进行人员及五段信息校验,若无效则弹框提醒,无法提交单据
- 人员无效文案:您的人员信息已失效,暂无法进行 B端出货/退货相关操作
您的五段信息已失效,暂无法进行调拨操作
- 五段无效文案:您的人员信息已失效,暂无法进行 B端出货/退货相关操作
您的五段信息已失效,暂无法进行调拨操作
- 经销商+门店信息无效:门店列表不展示失效门店信息

- 码状态冻结
需求背景:
在B端出货、签收、退货、调拨等环节,存在多人同时操作同一商品的可能性(例如:仓管扫码出货、业务员扫码出货、在同一时间发生),当前无预冻结机制,可能导致,数据不一致或码状态存在疑义
核心目标:通过预冻结机制,在操作过程中锁定该码,避免同时扫码发生冲突
- 适用范围:
环节 是否预冻结 冻结触发时机 说明 出货扫码 是 扫码成功、出货单生成前 防止同一箱/码被多人同时出货 退货 是 退货单创建、扫码确认退货商品时 防止退货中的商品被再次出货 调拨 是 调拨出库扫码时 防止调拨商品被其他操作占用 盘点 暂不启用 ---
流向查证(查询) 不需要 --- 只读操作,不改变状态
- 冻结与解冻规则
1) 冻结规则
冻结粒度:按商品唯一码(箱码/提外/批次码)进行冻结
冻结时长:默认15分钟(可配置) @营销活动中心
冻结状态标识:营销活动中心进行控制
同一时间只允许一个操作:若商品已被冻结,后续操作直接提示冲突,不支持强制继续
2) 解冻逻辑
解冻方式 触发条件 说明 说明 自动解冻 冻结满xx分钟且操作未完成 定时任务扫描,恢复可操作状态 防止同一箱/码被多人同时出货 操作完成解冻 出货/签收/退货成功提交 正常流程结束后立即解冻,转为终态 防止退货中的商品被再次出货 操作取消/超时 用户主动取消/清除缓存 用户取消 防止调拨商品被其他操作占用 手动解冻(管理员)
3)前端页面
前端记录单据创建时间 + 最后一次扫码时间,若超过自动解冻时间,则再次进入扫码页面时,给予提醒,本次xx条扫码记录已清空
若该码已冻结,则前端toast返回【该码已被扫码】-具体文案以营销活动中心返回为准
前端增加整单取消功能,业务课进行整单删除,营销活动中心需提供整单解锁功能

- 后端增加整单取消功能,根据门店编码+扫码人进行解锁(权限范围待确认)
5.1.3 智慧门店产品方案
- 以下端侧做校验的逻辑注销掉,调整为营销活动中心接口进行校验后直接返回结果
| 编号 | 规则类型 | 判断内容 | 智慧门店判断逻辑 | 判断结果 | 营销活动中心规划是否包含 | 备注 |
|---|---|---|---|---|---|---|
| 1-1 | 门店收货码签收/自主签收 | 距离校验配置 | 按大区设置是否校验 | 是,进行校验 | 是 | 当前配置文件取消 |
| 前端距离限制也取消 | ||||||
| 1-2 | 否,不校验 | 是 | ||||
| 2-1 | 门店收货码签收/自主签收 | 距离校验 | 判断人员操作经纬度与门店云商定位距离x米内 | 在范围内,允许签收 | 是 | 改为调营销活动中心接口获取结果; |
| 入参:门店code、操作人经纬度 | ||||||
| 2-2 | 不在范围内,不允许签收 | 是 | ||||
| 2-3 | 主数据中门店无定位,提示门店未登记位置信息,请联系经销商业代处理 | 是 | ||||
| 2-4 | 用户设备无定位,提示开启定位 | 端侧保留 | ||||
| 3-1 | 门店收货码签收 | 产品状态 | 产品状态是否符合签收条件 | 是,可签收 | 是 | 改为营销活动中心接口获取结果 |
| 入参:签收模式、门店code | ||||||
| 3-2 | 否,不可签收 | 是 | ||||
| 3-3 | 有效期状态 | 产品有效期是否符合签收条件 | 是,可签收 | 是 | ||
| 否,不可签收 | ||||||
| 4-1 | 门店收货码签收 | 门店一致性 | 出货门店和签收门店一致 | 一致,允许签收 | 是 | |
| 4-2 | 不一致,不允许签收 | 是 | ||||
| 5-1 | 门店自主签收 | 产品状态 | 产品状态是否符合签收条件 | 是,可签收 | 是 | |
| 5-2 | 否,不可签收 | 是 | ||||
| 5-3 | 有效期状态 | 产品有效期是否符合签收条件 | 是,可签收 | 是 | ||
| 否,不可签收 | ||||||
| 6-1 | 门店自主签收 | 货权一致 | 有货权,货权一致允许签收 | 一致,允许签收 | 是 | |
| 6-2 | 不一致,不允许签收 | 是 | ||||
| 6-3 | 为空,允许签收 | 是 |
- 端侧展示toast效果不变,文案取接口信息即可

注:具体提示文案,需业务逐条确认通过
- 自主签收场景下,增加记录每个扫码动作的时间(包括扫码-取扫码时间;拍照-取拍照时间、手动录入-取查询码时间),缓存中也要增加,最后提交上传时,统一提交给接口;当扫码动作时间为空时,默认赋值为提交签收时间;
签收码签收场景下,~~提交收货过程不涉及改动;~~提交签收时,营销活动中心会校验提交码是否符合签收条件(不包含过期校验),若部分码不符合签收条件,则实时反馈给前端进行提示(文案接口提供),提示形式为toast
自主签收场景下,用户点击结束收货按钮,调用提交收货接口,接口会再次校验码查询相关逻辑(不包含过期校验),端侧根据接口返回整单校验结果,前端弹窗展示;(文案接口提供),整单全部成功签收情况下,提示形式依然保持原toast
- 收货明细中,增加按品牌区分展示总量、成功、异常的数量,同时下方商品列表增加异常标签展示(接口负责增加),同时增加环境照片的展示
- 收货记录、
退货记录、收货明细功能,由原本地数据调整为调用营销活动中心【查询收货单信息】接口~~【查询退货单信息】~~接口进行获取,接口文档待提供;
[营销活动中心集成接口](https://doc.weixin.qq.com/sheet/e3_AVEASwahAH4CNMUF0ljdORV0lq4S3?scode=AK0AZgcfAA0dK0D44aAVEASwahAH4
测试注意:盘点场景下同步增加---码查询接口增加过期字段,前端增加过期校验,接口给提示文案--2.5
1.28新增需求:主数据推送给智慧门店的经销商数据,自动据账号注册逻辑清除签收码签收的实现逻辑进行变更,将原有的SFA出货到智慧门店进行ES存储的形式取消,变更为SFA出货后,智慧门店扫签收码时直接调用营销活动中心相关接口进行签收(与小智一致),减少因中间环节过多导致的签收失败问题出现;
具体调用接口如下:
首先调 033 出货记录查询接口
然后调 025 签收码签收接口
- 3.11更新
自主签收场景下,调用码查询接口时,切换为新的077码查询接口,仅修改接口地址,其他逻辑不变
- 2026.4.9更新 4.14上线版本
在原来已实现的需求基础上,单独将签收码签收功能、收货记录功能代码拆分出来,单独上线,不考虑自主签收的逻辑改造;
具体上线范围如下:
(1) 智慧门店前端保留距离校验,通过校验才可进入收货流程;
(2) 扫码收货时,智慧门店扫签收码时直接调用营销活动中心相关接口进行签收,首先调 078 出货记录查询接口,然后调 025 签收码签收接口
(3) 出货单状态、出货门店一致性、码状态都由025签收码签收接口负责校验,将校验结果返回给前端,前端直接展示接口返回结果及文案
(4) 收货记录页面,调用营销活动中心接口获取数据,不走本地
<!-- -->- 2026.4.10更新 4.22上线版本
具体上线范围如下:
(1) 签收码签收、自主签收,在签收前需保证门店五段、经销商状态、门店状态都必须有效,否则弹出相应提示;
门店五段没有状态,只有是否有值,必填需求中已经覆盖了此字段必传情况,如果因数据缺失造成签收码签收、自主签收时无法上传,即接口返回提示:"扫码人五段不能为空,请补充完整后重试";
经销商状态:端侧在签收码签收时,不传经销商信息,所以无需关心;自主签收时,端侧选择经销商已进行经销商在营状态校验,非在营状态已被剔除,所以也满足需求;
补充说明:主数据给智慧门店同步经销商状态的对应关系如下,取自主数据-经销商基础信息表-合作状态字段
主数据-经销商状态 智慧门店-经销商状态 有效、业务失效 合作 财务失效 停止
- 门店状态:端侧在签收码签收、自主签收时,选择门店环节已进行门店状态筛选,只能选择有效门店,所以满足需求;
补充说明:主数据给智慧门店同步门店状态逻辑为取门店头层-status状态1: 营业;2:关闭
(2) 必填项需求,已完成开发
<!-- -->- 2026.4.10更新 5.19版本
具体上线范围如下:
(1) 人员扫码位置校验:
- 校验逻辑变更:端上将当前进入收货/盘点页面时的本地距离校验逻辑取消,改为在提交签收时,由营销活动中心签收接口负责校验距离,入参包含但不限于门店五段+门店编码+场景(签收码签收/自主签收)+距离,接口返回通过/不通过,如不通过端上根据接口返回文案进行提示;
<!-- -->签收码签收场景:包含微信扫一扫扫签收码、扫码收货页面内扫签收码,调**签收码签收接口,**在现有接口基础上进行改造;
自主签收场景:调自主签收接口(需切换新接口);
<!-- -->距离计算:每次调用签收接口时,重新获取一次实时定位接口数据,用于计算距离,进行上传;校验环节:保留当前端侧的进入收货页面前的校验逻辑,同时增加在签收码签收、自主签收扫码后进行校验,目的是解决进入收货页后人员移动再扫码签收的问题,具体如下表
签收类型 距离校验环节签收码签收 扫码后-调距离接口校验(新增)-调出货记录查询接口-调签收码签收接口自主签收 扫码后-ai防作弊-调距离接口校验(新增)-调新自主签收接口
(2) 自主签收流程调整:【自主签收场景】扫码即签收,营销活动中心提供新接口,接口负责校验货权经销商一致性(包含为空)、码状态、过期、箱提货权一致性;通过校验并直接签收,给端侧返回校验结果及签收结果;
<!-- -->- 自主签收页面原型
}
原图 变更图
核心改造点:
- 每次进入页面,生成一个新单号(规则待定),调签收接口时将对应单号上传接口;新单号生成规则如下:
<!-- -->每次进入签收页面即生成新单号;
每个单号的有效期截止至生成当日的23:59:59,跨日后需重新生成新单号;
自主签收同一个单号下调用签收的数量,受收货记录查询接口性能影响,不建议超过1000提上限---建议前端不增加强制要求;
智慧门店与小智生成的单号不允许出现重复;
<!-- -->取消原"结束签收"按钮,扫码即签收;
取消原上传环境照片环节;
取消原各品牌数量统计;
手动输入模式下,原"查询"按钮,调整文案为"查询并签收";
页面展示用户扫码操作的商品列表:将每一提/箱的签收成功结果,即时落在下方,按原逻辑进行sku汇总
商品明细列表取消原"删除"操作
只显示签收成功的数据,不显示签收失败的数据;
如扫描箱码,接口负责校验每提商品,若其中存在部分不可签收的商品,接口返回提示:"****,请拆箱签收"
数据展示规则说明:数据为前端缓存显示,退出页面即清除,再次进入扫码页面恢复至初始状态,重新生成单号
业务提醒:上线前一段时间宣导用户,上线后,前端已扫码未提交的缓存数据,将无法正常签收,需要重新扫码签收;
- 收货记录页面原型
}
核心改造点:
收货类型为"自主签收"的收货单的展示优化:调整为以"单号"为单位进行签收记录汇总;列表页和明细页原流水号改为展示单号;
智慧门店查询营销活动中心接口入参:时间段、门店编码,接口按照不同查询条件返给前端;
签收码签收记录不发生变化,仍按照老逻辑展示;
收货明细页中,收货类型为【自主签收】的情况,不再展示签收失败的商品明细;
原B端出货规则需求中,端侧记录扫码动作、OCR识别、手动输入查询的时间并上传的需求,可以取消,营销活动中心以提交签收时间为准即可;
取消原收货时间显示,但目前方案未展示出每一提商品的操作自主签收具体到时分秒的时间,需业务确认是否需要;
(3) 微信扫一扫签收时优化默认出货门店:业务期望智慧门店在微信扫一扫扫签收码签收场景,在选择门店环节,优化选中出货码的出货门店,所以需要SFA生成的出货码值中加入出货门店编码;
[签收码签收默认门店优化PRD](https://doc.weixin.qq.com/doc/w3_ATEA_QaiAMICNY3pzibtCTRejQvmN?scode=AEAA-AczAAYFmflGN4ATEA_QaiAMI&isEnterEdit=1
(4) 签收码签收、自主签收,在调用签收接口前需本地校验经销商状态/门店状态都有效,否则弹出相应提示:"经销商失效"/"门店状态失效",不再继续调用相应签收接口;
5.1.4 小智产品方案
以下端侧做校验的逻辑注销掉,调整为营销活动中心接口进行校验后直接返回结果
需要增加"开关"设置:开启时,端侧做校验的逻辑注销掉,调整为营销活动中心接口进行校验后直接返回结果;关闭时,使用原有逻辑,前端调接口判断直接出校验结果
| 编号 | 规则类型 | 判断内容 | 小智判断逻辑 | 判断结果 | 营销活动中心规划是否包含 | 备注 |
|---|---|---|---|---|---|---|
| 1-1 | 门店收货码签收/自主签收 | 扫码定位范围 | 按大区设置是否判断 | 是,进行校验 | 是 | 当前配置文件取消 |
| 1-2 | 否,不校验 | 是 | ||||
| 2-1 | 门店收货码签收/自主签收 | 扫码定位范围 | 判断人员操作经纬度与门店云商定位距离x米内 | 在范围内,允许签收 | 是 | 改为调码查询接口获取结果 |
| 2-2 | 扫码定位范围 | 不在范围内,不允许签收 | 是 | |||
| 2-3 | 扫码定位范围 | 主数据门店无定位,提示门店未登记位置信息,请联系经销商业代处理 | 是 | |||
| 2-4 | 扫码定位范围 | 用户设备无定位,提示开启定位 | 端侧保留 | |||
| 3-1 | 门店收货码签收 | 产品状态 | 产品状态是否符合签收条件 | 是,可签收 | 是 | 改为调码查询接口获取结果 |
| 产品有效期 | ||||||
| 3-2 | 否,不允许签收 | 是 | ||||
| 4-1 | 门店收货码签收 | 门店一致 | 出货门店和签收门店一致 | 一致,允许签收 | 是 | |
| 4-2 | 出货门店和签收门店一致 | 不一致,不允许签收 | 是 | |||
| 5-1 | 门店自主签收 | 产品状态 | 产品状态是否符合签收条件 | 是,允许签收 | 是 | |
| 产品有效期 | ||||||
| 5-2 | 否,不允许签收 | 是 | ||||
| 6-1 | 门店自主签收 | 货权一致 | 有货权,货权一致允许签收 | 一致,允许签收 | 是 | |
| 6-2 | 有货权,货权一致允许签收 | 不一致,不允许签收 | 是 | |||
| 6-3 | 无货权允许签收 | 为空,允许签收 | 是 |
- 端侧展示toast效果不变,文案取接口信息即可

2、增加在扫码签收场景,增加每个码的实际扫码时间(包括扫码-取扫码操作时间;拍照-取拍照操作时间、手动录入-取查询码操作时间),并传给后端记录和展示
3、签收码签收场景下,~~提交收货过程不涉及改动;~~提交签收时,营销活动中心会再次校验提交码是否符合签收条件,若部分码不符合签收条件,则实时反馈给前端进行提示(文案接口提供)
- 自主签收提交时,点击结束收货按钮,再次调用提交收货接口,校验码查询相关逻辑,接口返回整单校验结果,前端页面报错信息的界面提示(文案接口提供)。签收异常数据>0,则显示【提示】·
场景一:
}场景二:
5、收货明细中,增加异常标签展示(接口负责增加):货权不一致,产品状态不符等;汇总统计增加成功数量、异常数量

2026.4.9调整,4.14已上线
1.需求描述:
技术需要将B端出货-扫码签收(判断:码状态、出货单状态、出货门店与签收门店一致)逻辑代码抽离原有分支。
在签收码签收场景下,调用营销活动中心-签收码签收接口进行校验,前端页面提示:成功XX提,失败XX提,并进行集成测试
2.规则:
- 自主签收:
导购使用二维码扫描/拍照识别/手工输入等方式,调用活动中心的"码查询"接口进行逻辑判断/录入商品信息,点击签收,成功则直接跳转到签收记录,失败则根据接口返回的判断进行错误提示。 --- 逻辑不变
- 签收码签收:导购使用二维码方式扫描签收码,调用活动中心-签收码签收接口,根据活动中心的返回,前端提示:签收XX,成功XX,失败XX 。
具体为,提交签收时,营销活动中心会再次校验提交码是否符合签收条件,若部分码不符合签收条件,则实时反馈给前端进行提示(文案接口提供)

- 收货明细中,增加异常标签展示(接口负责增加):货权不一致,产品状态不符等;汇总统计增加成功数量、异常数量

2026.4.15调整,4.22上线
B端出货-扫码签收(签收码签收+自主签收)小智端增加校验逻辑,即人员有效性校验,
在提交数据时增加以下条件校验,并进行提示:
1、人员是否在职
2、经销商是否有效
3、门店是否有效
4、人员五段是否有效
2026.4.10更新 5.19版本
自主签收+收货码签收,接口判断规则:人员扫码位置范围校验
用户进入页面前,前端调用中台接口(参数:人员的经纬度,门店ID,五段信息),接口返回校验结果(true/false)前端进行判断,为true则允许签收,为false则提示用户,门店超出范围
人员有效性校验,在用户提交签收时,小智端进行判断和校验。
人员扫码位置校验,在用户提交签收时,小智端进行判断和校验。
4.【自主签收链路优化】:
扫码即签收,由营销活动中心提供新接口,接口负责校验货权经销商一致性(包含为空)、码状态、过期、箱提货权一致性,及范围校验(前端传五段、门店、人与店距离);通过校验并直接签收,给端侧返回校验结果及签收结果;
- 【收获码签收优化】
签收提交数据时,接口判断范围,货权一致性,签收码状态
- 进入页面去掉门店范围校验,但未开启定位校验还需要保留
- 自主签收页面原型
优化前:

链路优化后:

调整点:
4.1 导购进入扫码页面时,自动生成一个流水号(规则:uuid),调签收接口时将对应单号上传接口;新流水号生成规则如下:
进入扫码页面时就生成一个,退出扫码页面,相当于关闭了这个单。下一次进入,则重新生成一个新的流水号
单号是否支持跨天 --- 待业务沟通
需要限制一份单的收货数量不超过1000提(由活动中心提供上限),小智这边在超过上限时,给出弹窗提示"本单签收已超过上限,请重新进入扫码页面进行签收",点击【知道了】或叉掉弹窗,系统自动刷新扫码页面。
4.2 去掉数量统计
4.3 去掉【结束签收】按钮
4.4 下方商品明细列表改动点:
只展示导购签收成功的商品信息:每一提/箱,按照SKU进行汇总。不展示签收失败的。
去掉原来的"删除"
如果扫描箱码,其中存在部分不可签收的商品,接口返回提示:"****,请拆箱签收"
该页面数据由小智端缓存显示,导购退出页面即清除。再次进入该页面时,恢复至初始状态,导购重新进行自主签收。
4.5 取消原逻辑:用户缓存未提交的签收数据
- 签收记录页
}
调整点:
4.6 收货类型为"自主签收"时,收货详情页只展示签收成功的商品明细,不展示失败的。
4.7 小智查询营销活动中心接口入参:时间段(支持查询近1年内数据)、门店编码,接口按照不同签收类型的查询条件,查询数据返给前端
4.8 收货类型为"门店签收码签收"时,签收记录逻辑不变,按原来逻辑展示
4.9 原B端出货规则需求中,端侧记录扫码动作、OCR识别、手动输入查询的时间并上传的需求,可以取消,营销活动中心以提交签收时间为准即可;
4.10 取消原收货时间显示,目前方案:取用户扫的最后一提作为收货时间,需业务确认该方案
5.2 B端出货场景调拨明细表(调拨控制在营销活动中心,数据目前已经在dms有记录了,因此营销活动中心不支持此数据记录)
~~5.2.1 营销活动中心产品方案 ~~
经销商调拨------补充2025-11-24
<!-- -->(1) 赢销助手提交调拨信息时,调用营销活动中心提供的接口【调拨回传接口】(新接口)接收调拨信息,同时根据B端出货签收规则进行校验,接口如下------技术待补充接口:
(2) 营销活动中心接收赢销助手的调拨信息时,实时将调拨信息落库,【调拨单明细表】结构如下:
(3) 新增菜单:调拨单明细表,菜单路径:营销活动中心->B端出货管理->报表管理->调拨单明细表,查询界面显示如下:

查询条件,字段说明如下:
字段名称 逻辑说明调拨单流水号 文本输入框,默认为空,非必选项,默认提示语"请填写调拨单"调出时间 日期控件,默认为空,非必选项,默认提示语"请选择调出开始时间-调出结束时间"调出经销商云商编码 文本输入框,默认为空,非必选项,默认提示语"请填写调出经销商云商编码"调出经销商云商名称 文本输入框,默认为空,非必选项,默认提示语"请填写调出经销商云商名称"调入经销商云商编码 文本输入框,默认为空,非必选项,默认提示语"请填写调入经销商云商编码"调入经销商云商名称 文本输入框,默认为空,非必选项,默认提示语"请填写调入经销商云商名称"调入时间 日期控件,默认为空,非必选项,默认提示语"请选择调入开始时间-调入结束时间"签收状态 单选下拉框,默认为空,非必选项,默认提示语"请选择签收状态",选项包含:未签收、已签收
查询结果和导出模版,字段说明如下:
调拨单流水号、货权经销商事业部、调出经销商事业部、调出经销商营销总部、调出经销商销售区域、调出经销商城市群 、调出经销商城市、调出经销商云商编码、调出经销商、调出时间、调出人员工编号、调出人员工名称、调出人员工手机号、调入经销商事业部、调入经销商营销总部、调入经销商销售区域、调入经销商城市群 、调入经销商城市、调入经销商云商编码、调入经销商、调入人员工编号、调入人员工名称、调入人员工手机号、调入时间、签收状态;
点击单行的调拨单号,进入调拨单详情,分为基本信息和产品信息2个TAB页签显示如下:
基本信息显示字段包含:调拨单流水号、调出经销商事业部、调出经销商营销总部、调出经销商销售区域、调出经销商城市群 、调出经销商城市、调出经销商云商编码、调出经销商、调出时间、调出人员工名称、调入经销商事业部、调入经销商营销总部、调入经销商销售区域、调入经销商城市群 、调入经销商城市、调入经销商云商编码、调入经销商、调入人员工名称、调入时间、签收状态;
产品信息显示字段包含:追溯字符码、货权经销商事业部、货权经销商营销总部、货权经销商销售区域、货权经销商城市群、货权经销商城市、货权经销商云商编码、货权经销商、产品品牌、产品编码、产品名称、生产年月、生产日期、产品批次、产品总数量(合计);
查询调拨单信息
营销活动中心,提供接口【查询调拨单信息】(新增接口),用于前端查询出货单信息,接口如下:------待技术补充
5.3.2 赢销助手产品方案
6 运营计划
6.1 上线前
6.1.1 历史数据处理
无
6.1.2 流程变更
无
6.2 上线后
6.2.1 上线周知范围
职责分类 人员 说明 业务 基于需求影响范围做通知 产品
研发
6.2.2 周知模板
6.2.3 运营方案
营销活动中心,上线【B端出货签收规则】界面,通知业务侧配置并启用,不上线相关的业务规则代码;
营销活动中心,上线【B端出货签收规则】相关代码,通知前端:赢销助手、智慧门店、小智,停用B端出货签收规则;
上线后,针对B端出货、签收、退货和调拨规则营销活动中心的后端控制与前端现行的卡控逻辑并存。------2025.10.27
}
}
}
};
}
}
} 






} 
} 


