Files
conti-docs/prd/modules/07-INV-库存.md
T

25 KiB
Raw Blame History

4.7 库存

本文件是【库存 INV】模块需求的编辑入口。 主文件 ../Continental-Retail-APP-PRD.md 第 4.7 节已于 2026-08 从本文件回灌(V1.1),此后的需求变更仍改本文件、再回灌。 两者不一致时以本文件为准。 目录约定见 README.md

模块码 INV
V1.0 章节 4.7
描述粒度 6 维精简模板
需求依据 现状截图反推
现状承载系统 O2O(库存查询、扫码入库)+ ROOS(条码库存、扫码出库)
需求条数 11(待确认 9,完成度 18%
本次新增待确认 4REQ-INV-008 / 009 / 010 见附-5REQ-INV-011 见附-1
配图 12 张(设计稿 1 / 现状-O2O 9 / 现状-ROOS 2

模块概要


底部导航的三版方案中,业务菜单版有「库存」tab、设计稿 5 tab 方案有「入库」tab(见三版底部导航方案)。本节内容由现状截图反推。

业务目标 —— 把「查得到货、扫得进库、对得上账」收敛到 App 内,解决痛点 2.3中「门店无法实时判断可售库存」的问题

入口 —— 底部导航「库存 / 入库」tab;首页快捷入口「扫码入库」「扫码出库」;采购收货流程

页面内容 —— 库存查询(SKU 列表 + 四级轮胎参数筛选)、扫码入库记录、扫码出库、条码库存(入库记录 / 出库记录 / 在库条码)

主流程

  • 查询:选择搜索类型 → 输入关键字或逐级筛选 → 查看 SKU 库存状态与结算价
  • 入库:扫描轮胎条码 → 校验 → 写入在库条码 → 生成入库记录

权限规则 —— 店长全量;技工可查询与扫码入/出库,TODO(REQ-INV-001) 确认技工是否可见结算价

数据来源 —— O2O(库存查询、扫码入库)、ROOS(条码库存、扫码出库)

4.7.1 库存查询

设计稿-库存查询

页面内容 —— App 目标形态:搜索框 + 一行五个下拉筛选(胎面宽 / 扁平比 / 直径 / 花纹 / 黑科技),主体为 SKU 卡片列表,卡上含库存状态标签与小程序结算价(稿中含普利司通 / 米其林 / 倍耐力,规格与级别为占位数据)。

关键交互 —— ①点搜索框输入关键字 → 检索;②点五个下拉任一 → 展开取值面板,逐级收窄;③上下滑动卡片列表。稿中未画搜索类型切换、未画筛选重置入口、未画分页或上拉加载。

可用角色 —— 店长 全量;技工 可查询。卡片右下「小程序结算价」对技工是否可见未定 TODO(REQ-INV-001)——若判定不可见,本卡片布局需出一版无价格的技工态。

需求关联 —— REQ-INV-002 SKU 与产品编码、REQ-INV-003 库存状态覆盖、REQ-INV-004 筛选维度

现状-O2O 库存查询

页面内容 —— O2O 小程序现状:搜索行为「搜索类型下拉 + 输入框 + 搜索按钮」三段式,筛选行只有四个(无黑科技),列表为通栏分隔行含产品编码、库存状态、商品名与小程序结算价,本图为测试环境数据(编码多值且被截断、库存状态列大多为空)。

关键交互 —— ①点「产品信息 ▾」→ 切换搜索类型(见下一张图);②输入关键字点「搜索」→ 检索;③点四个筛选任一 → 展开取值面板;④上下滑动列表。

可用角色 —— 店长 ;技工 可查询,结算价可见性待定 TODO(REQ-INV-001)

需求关联 —— REQ-INV-002(一行多编码正是本图实证)、REQ-INV-003(库存状态大面积为空正是本图实证)、REQ-INV-004(促销标签的去留)

现状-O2O 库存查询-搜索类型选择

页面内容 —— 「产品信息」下拉的展开态,浮层给出产品信息(当前选中)与产品code 两个搜索类型,其余区域被遮罩。

关键交互 —— ①点搜索行「产品信息 ▾」→ 展开 / 收起本浮层;②选「产品信息」→ 按商品名称检索;③选「产品code」→ 按产品编码检索;④点遮罩区 → 收起浮层。

可用角色 —— 店长 ;技工

需求关联 —— REQ-INV-002——现状把「产品信息」与「产品code」做成两种并列的搜索类型,正是「主键到底是 SKU 还是产品编码」这一口径问题在交互层的外显;App 若统一为 SKU,这个下拉是保留还是取消需一并裁决。

四级轮胎参数筛选:胎面宽、扁平比、直径、花纹逐级收窄。以下四张图为四级筛选各自展开后的取值面板。

现状-O2O 库存查询-筛选胎面宽

页面内容 —— 「胎面宽」的展开态,面板为 4 列 chip 网格、实测 20 项取值(013175325),底部并排「重置」「确认」。

关键交互 —— ①点 chip 选取值(单选还是多选本图无法确认,图中无任何 chip 处于选中态);②「重置」清空本级已选;③「确认」应用筛选并收起面板;④点遮罩收起。

可用角色 —— 店长 ;技工

需求关联 —— REQ-INV-004;取值中的 013 不是合法胎面宽 → REQ-INV-008

现状-O2O 库存查询-筛选扁平比

页面内容 —— 「扁平比」的展开态,结构同上但取值远多于胎面宽(首屏可数 60 余项且可继续滚动,第 2、3 项即为 ssss测试),本图底部被截断未拍到按钮。

关键交互 —— ①上下滚动取值网格;②点 chip 选取值;③滚到底部使用重置 / 确认(本图未拍到该区域)。

可用角色 —— 店长 ;技工

需求关联 —— REQ-INV-004;取值含 ssss测试 两个非数值项,且 107 / 120 / 255 等远超乘用车胎扁平比常见区间(约 25–80)→ REQ-INV-008

现状-O2O 库存查询-筛选直径

页面内容 —— 「直径」的展开态,结构同前两级,取值同样 60 余项且可滚动(首项即 测试),底部截断。

关键交互 —— 同扁平比:滚动网格 → 点 chip 选取值 → 底部重置 / 确认。

可用角色 —— 店长 ;技工

需求关联 —— REQ-INV-004列表首项即为 测试,且含 348 等远超乘用车轮辋直径区间(13–24 英寸)的取值 → REQ-INV-008

现状-O2O 库存查询-筛选花纹

页面内容 —— 「花纹」的展开态,4 列 chip 网格完整拍到全部 42 项取值,超长名称在 chip 内以 截断。

关键交互 —— ①点 chip 选取值;②「重置」/「确认」;③点遮罩收起。

可用角色 —— 店长 ;技工

需求关联 —— REQ-INV-004;本图是四级筛选数据质量问题最集中的一张 → REQ-INV-008:测试残留(bang123cpsx测试自动化测试CPC2自动…CC7item / CSC5 item / MC6 item)、疑似重复(CCC LX2CCCLX2UC6 SUV 出现两次)、字段串位(123/45R / 17 / 195/55R 是规格串误入花纹字段)、以及长名截断导致的不可辨识。

现状与目标的三处差异(均需确认):

# 现状(O2O 设计稿(App 说明
1 主键是产品编码,且一行可能是逗号分隔的多个编码 主键是 SKU 两者是否同一概念、多编码如何在 SKU 视图下展示 —— TODO(REQ-INV-002)
2 「库存状态」一列大多为空/置灰,仅个别显示「库存充足」 每条都有库存充足 / 紧张 / 缺货标签 库存状态数据是否已具备全量覆盖能力 —— TODO(REQ-INV-003)
3 无「黑科技」筛选,有「促销」标签 有「黑科技」筛选,无促销标签 两个维度是否都保留 —— TODO(REQ-INV-004)

库存查询现状与目标差异

4.7.2 扫码入库

现状-O2O 扫码入库

页面内容 —— 入库记录查询页(非扫码页),筛选行为日期区间 2026.04.012026.04.27 + 品牌下拉(图中已选中「马牌」),其下是橙色汇总条「总入:0 条」,本图为空态故记录行的字段构成无法确认。

关键交互 —— ①点日期区间 → 打开日期筛选浮层(见下方第二张图);②点品牌下拉 → 展开品牌筛选(见下方第一张图);③汇总条「总入:N 条」随筛选条件变化;④页面本身未见扫码按钮——本页是入库记录查询页,扫码动作的入口在 O2O 首页而非此处。

可用角色 —— 店长 全量;技工 可扫可查(一线高频操作)。

需求关联 —— REQ-INV-005 入库写入目标、REQ-INV-006 扫码由 App 原生实现、REQ-INV-007 重复条码拒绝

现状-O2O 扫码入库-筛选品牌

页面内容 —— 品牌下拉的展开态,三个选项:全部品牌 / 马牌(✓ 当前选中)/ 维京

关键交互 —— ①点品牌下拉 → 展开 / 收起;②点选项 → 单选切换,选中项右端显示 ✓;③点遮罩 → 收起。

可用角色 —— 店长 ;技工

需求关联 —— 品牌可选值只有马牌与维京两个 Continental 集团品牌,而 4.7.1 的库存查询里出现普利司通 / 米其林 / 倍耐力——两者覆盖范围不同,佐证「入库」与「库存查询」在现状下是两套口径不一致的数据,是 REQ-INV-005 需要一并裁决的部分。

现状-O2O 扫码入库-自定义日期筛选

页面内容 —— 日期区间的展开态,浮层有「月份选择」「自定义」两个 tab(当前停在自定义),其下为两个日期输入框构成区间,底部并排「全部日期」「确认」。

关键交互 —— ①切换「月份选择」/「自定义」两种取期模式;②点任一日期框 → 唤起日期选择器;③「全部日期」→ 取消区间限制,查全部;④「确认」→ 应用区间并收起。

可用角色 —— 店长 ;技工

需求关联 —— —(仅作现状佐证)。App 整合后是否保留「月份选择 / 自定义」双模式,随 REQ-INV-005 的入库页形态一并确定。

4.7.3 扫码出库与条码库存

现状-ROOS 首页-扫码出库操作选择弹窗

页面内容 —— ROOS 首页扫码后弹出的模态弹窗「请选择需要执行的操作」,底部两个并排按钮 「去延保」「直接出库」,背景可见 ROOS 首页与四宫格互跳入口,标题栏写明「MF ROOS UAT 测试环境」。

关键交互 —— ①在 ROOS 首页点扫码入口扫描轮胎条码 → 弹出本弹窗;②点「去延保」→ 携该条码进入延保建单流程;③点「直接出库」→ 仅登记出库、不建延保单;④弹窗未提供取消或关闭按钮,能否点遮罩关闭本图无法确认。

可用角色 —— 店长 ;技工 (扫码出库属一线高频操作)。但「去延保」分支会创建延保单,而延保建单对技工是否开放尚未定 TODO(REQ-WTY-003)——两处口径必须对齐,否则会出现「技工能出库却在弹窗第二步被拦」的断流。

需求关联 —— REQ-INV-005REQ-INV-006出库时的「去延保 / 直接出库」二选一分支是本模块与延保的关键衔接点,现有 7 条需求中没有任何一条描述它REQ-INV-009

条码库存:在「我的」菜单中点击「条码库存」,进入「条码库存」,tab 为入库记录、出库记录、在库条码

现状-ROOS 条码库存-入库记录

页面内容 —— 条码库存页:橙色头部含搜索框与一个独立的扫码图标,其下三个 tab(入库记录选中 / 出库记录 / 在库条码)与筛选行 品牌 / 选择日期 / 是否有效本图为空态故记录行的字段构成无法确认。

关键交互 —— ①切换入库记录 / 出库记录 / 在库条码三个 tab;②搜索框按商品编号或名称检索;③点右侧扫码图标 → 扫码直接定位条码;④三个下拉分别按品牌、日期、有效性筛选;⑤「清除筛选」一键复位全部筛选条件。

可用角色 —— 店长 全量;技工 可查。本页在 ROOS 中的入口位于「我的」菜单下,App 整合后入口位置需随导航收敛重新安排。

需求关联 —— REQ-INV-005 入库写入目标、REQ-INV-007 重复条码;「是否有效」这个筛选维度说明条码存在**有效 / 失效(作废)**两种状态,而现有需求未定义该状态、也未定义谁能作废条码 → REQ-INV-010

入库来源双写问题:扫码入库在 O2O 和 ROOS 两侧都有记录(O2O 的「扫码入库」与 ROOS 的「条码库存-入库记录」),经营业绩同时统计「扫码入库总数」与「扫码入库门店数」。整合后是一次扫码双写、还是以其中一侧为准 —— TODO(REQ-INV-005),这是本模块的关键前置决策。

4.7.4 业务规则

REQ-INV-001 结算价可见性 —— 技工是否可见小程序结算价待定 TODO(REQ-INV-001)

REQ-INV-002 SKU 与产品编码 —— 主键口径待统一 TODO(REQ-INV-002)

REQ-INV-003 库存状态覆盖 —— 库存状态标签的数据覆盖率与刷新频率待定 TODO(REQ-INV-003)

REQ-INV-004 筛选维度 —— 黑科技 / 促销两个维度的取舍待定 TODO(REQ-INV-004)

REQ-INV-005 入库写入目标 —— 扫码入库的权威写入目标待定 TODO(REQ-INV-005)

REQ-INV-006 扫码实现 —— 入库/出库扫码均为 App 原生实现(REQ-INT-003

REQ-INV-007 重复条码 —— 同一条码重复扫描应拒绝并提示已入库时间与门店

REQ-INV-008 筛选取值清洗 —— 品牌 / 花纹 / 规格 / 级别四级筛选的取值直接取自库存主数据,现状含测试残留、越界值、疑似重复与字段串位。App 是照搬现状取值还是由后端出清洗后的枚举,待定 TODO(REQ-INV-008)

REQ-INV-009 扫码出库的延保分支 —— 现状扫码出库后弹窗强制在「去延保 / 直接出库」二选一,是库存与延保的衔接点。App 是否保留该弹窗、传递哪些参数、技工能否走「去延保」,待定 TODO(REQ-INV-009)

REQ-INV-010 条码有效性状态 —— 条码存在有效 / 失效两态,其流转规则、作废权限、作废后能否重新入库,以及与 REQ-INV-007 重复校验的关系待定 TODO(REQ-INV-010)

REQ-INV-011 字段清单缺失 —— 附录 A 未收录本模块的字段清单,需业务补齐后再定接口契约 TODO(REQ-INV-011)

4.7.5 验收标准

  1. 四级参数筛选任意组合下,列表结果与筛选条件一致,清空筛选可一键还原;
  2. 同一条码重复扫描时给出明确提示,不产生重复入库记录;
  3. 扫码入库在断网时可暂存,恢复网络后批量提交且不重复;
  4. 库存状态标签与结算价来自同一次查询,不出现价格已更新而状态未更新的错位。

附:本模块归拢信息

以下内容从主文件的其它章节归拢而来,便于本模块独立评审。回灌主文件时不处理本分界线以下的部分——主文件的附录仍是全局视图。

附-1 业务数据字典(主文件附录 A

主文件附录 A 业务数据字典未收录本模块。 附录 A 现有 A.1 登录、A.2 首页、A.3 销售、A.4 提醒、A.5 采购、A.6 延保、A.7 门店管理、A.8 经营分析与财务、A.9 个人中心共 9 节,库存(INV)无对应节。

本模块涉及的字段(SKU / 产品编码、库存状态、小程序结算价、胎面宽 / 扁平比 / 直径 / 花纹、条码、入库时间、操作人、条码有效性等)目前散落在正文与截图中,未形成字段清单,也未标注权威数据来源。此处不自行编造字段表,需业务与架构补充 —— TODO(REQ-INV-011)

同样缺失的还有返利中心(RBT)、营销与会员(MKT)、福利兑换(MSP)三个模块,见 README.md 待办

附-2 权限矩阵(主文件附录 B 本模块分行)

图例 完整权限 · 🔸 受限(详见备注)· ⚙️ 需店长/后台显式授权 · ✗ 无权限 · 待确认

功能 店长 技工 备注 / 待确认
库存查询
查看小程序结算价 TODO(REQ-INV-001)
扫码入库 / 出库 一线高频操作

库存模块权限矩阵(摘自主文件附录 B

适用的全局权限实施规则:接口层强制(REQ-ACC-004);⚙️ 类由店长或后台经人员管理「可用系统」授予(REQ-ACC-005);🔸 项在待确认关闭前,一律按更严格的一侧实现REQ-ACC-006);权限变更后用户下次进入 App 即生效(REQ-ACC-007)。

本模块新增的三条待确认项也各带权限口径:REQ-INV-009 的「去延保」分支须与延保建单权限 TODO(REQ-WTY-003) 对齐;REQ-INV-010 的条码作废属高风险操作,建议默认仅店长。

附-3 待确认项(主文件 10.2.7)

编号 待确认内容 建议决策方
REQ-INV-001 技工是否可见小程序结算价 业务
REQ-INV-002 SKU 与产品编码的口径统一(一行多编码如何呈现) 业务 / 架构
REQ-INV-003 库存状态标签的数据覆盖率与刷新频率 业务
REQ-INV-004 「黑科技」与「促销」两个筛选维度的取舍 产品
REQ-INV-005 扫码入库的权威写入目标(O2O / ROOS / 双写) 架构

库存模块待确认项(摘自主文件 10.2.75 条)

本次拆分新增 4 条(回灌主文件时并入 10.2.7):

编号 待确认内容 建议决策方
REQ-INV-008 四级筛选取值需数据清洗 —— 现状取值含测试残留、越界值、疑似重复与字段串位,详见附-5 业务 / 架构
REQ-INV-009 扫码出库的「去延保 / 直接出库」分支 —— 本模块与延保模块的衔接点,现有需求完全未描述 产品 / 业务
REQ-INV-010 条码有效性状态 —— 有效 / 失效(作废)两态的流转规则、作废权限与重新入库规则均未定义 业务 / 架构
REQ-INV-011 本模块字段清单缺失 —— 主文件附录 A 无库存节,字段与权威数据来源需业务与架构补齐,详见附-1 业务 / 架构

合计 9 条待确认(原 5 条 + 新增 4 条)。回灌时需同步附录 D.2 的 INV 行(7 / 5 / 29% → 11 / 9 / 18%)与第 10.2 节总数。

附-4 配图清单(主文件附录 C 4.7 节)

说明 文件
1 设计稿-库存查询(App 目标形态,五级筛选 + SKU 卡片) ../app-design-images/库存查询.png
2 现状-O2O 库存查询(四级筛选 + 通栏行,多编码 / 库存状态空缺) ../mini-program-images/O2O/库存查询.png
3 现状-O2O 库存查询(搜索类型选择:产品信息 / 产品code) ../mini-program-images/O2O/库存查询-搜索类型选择.png
4 现状-O2O 库存查询(筛选胎面宽,20 项取值 + 重置/确认) ../mini-program-images/O2O/库存查询-筛选胎面宽.png
5 现状-O2O 库存查询(筛选扁平比,含 ssss / 测试 脏值) ../mini-program-images/O2O/库存查询-筛选扁平比.png
6 现状-O2O 库存查询(筛选直径,首项即 测试 ../mini-program-images/O2O/库存查询-筛选直径.png
7 现状-O2O 库存查询(筛选花纹,42 项,脏值 / 重复 / 串位最集中) ../mini-program-images/O2O/库存查询-筛选花纹.png
8 现状-O2O 扫码入库(空态,日期区间 + 品牌筛选 +「总入:N 条」汇总条) ../mini-program-images/O2O/扫码入库.png
9 现状-O2O 扫码入库(筛选品牌:全部品牌 / 马牌 ✓ / 维京) ../mini-program-images/O2O/扫码入库-筛选品牌.png
10 现状-O2O 扫码入库(自定义日期筛选,月份选择 / 自定义双 tab) ../mini-program-images/O2O/扫码入库-自定义日期筛选.png
11 现状-ROOS 首页扫码出库(「去延保 / 直接出库」操作选择弹窗,UAT 环境) ../mini-program-images/ROOS/首页-扫码出库操作选择弹窗.png
12 现状-ROOS 条码库存(入库记录 tab,空态,含「是否有效」筛选) ../mini-program-images/ROOS/条码库存-入库记录.png

库存模块配图清单,12 张(设计稿 1 / 现状-O2O 9 / 现状-ROOS 2)。说明较主文件附录 C已按实际截图内容补充,主文件附录 C 回灌时应一并更新。

附-5 本次拆分新增发现(待业务确认)

以下三条不在主文件现有 7 条 INV 需求内,是本次逐张核看 12 张截图时发现的、现有需求未覆盖的事项。编号接 REQ-INV-007 顺延,尚未登记进主文件 10.2.7,回灌时需一并并入并更新主文件的规模声明与附录 D.2 计数。

编号 待确认内容 证据 建议决策方
REQ-INV-008 四级筛选取值需数据清洗:现状取值直接取自库存主数据未做清洗,含测试残留(ssss测试自动化测试bang123cpsxCPC2自动…*item)、越界值(扁平比 107/120/255,直径 348,胎面宽 0/13)、疑似重复(CCC LX2 vs CCCLX2UC6 SUV ×2)、字段串位(123/45R195/55R 落入花纹)。App 是照搬现状取值,还是由后端出清洗后的枚举?超长花纹名的截断展示如何处理? 本节图 47 业务 / 架构
REQ-INV-009 扫码出库的「去延保 / 直接出库」分支:ROOS 扫码出库后弹窗强制二选一,该分支是本模块与延保模块的衔接点,现有需求完全未描述。App 是否保留该弹窗?「去延保」传递哪些参数?技工能否走「去延保」(需与 TODO(REQ-WTY-003) 对齐)?弹窗能否取消? 本节图 11 产品 / 业务
REQ-INV-010 条码有效性状态:ROOS 条码库存有「是否有效」筛选,说明条码存在有效 / 失效(作废)两态。该状态的流转规则、谁有权作废、作废后是否可重新入库、与 REQ-INV-007 重复条码校验的关系均未定义。 本节图 12 业务 / 架构

本次拆分新增待确认项,3 条

另有一项非需求性观察:本模块 12 张截图中,库存查询库存查询-搜索类型选择 的列表、以及 首页-扫码出库操作选择弹窗(标题栏写明「MF ROOS UAT 测试环境」)均取自测试环境且含测试数据扫码入库条码库存-入库记录空态。这些截图可用于确认页面结构与控件,不可用于推断线上真实数据形态与字段取值