Files
conti-docs/Architecture-Diagram/202606-Continental-Retail-APP-PRD.md
T

1525 lines
40 KiB
Markdown
Raw Normal View History

# 202606 Continental Retail APP PRD
| 项目 | Continental Retail APP |
| --- | --- |
| 文档类型 | 产品需求文档 PRD |
| 版本 | v2.0 重构版 |
| 日期 | 2026-06 |
| 文档定位 | 研发交付级需求文档 |
| 适用对象 | 产品、业务、架构、移动端、后端、集成、测试、项目管理 |
| 主技术路线 | React Native |
| 备选技术路线 | Flutter |
| 参考资料 | `202606 Conti Retail APP Component data source.md``零售商系统方案研讨会PPT.retro.md``architecture-diagram.drawio` |
## 1. 文档说明
本文档用于定义 Continental Retail APP 定档版本的完整产品需求、系统边界、集成方式、业务流程、异常处理、权限要求和验收标准,目标是让研发、测试、集成和项目管理团队在不依赖口头补充说明的情况下理解系统如何建设、业务如何流转、不同服务如何协同。
本文档不是:
- UI 视觉稿。
- 数据库设计文档。
- 接口定义文档。
- 技术方案详设文档。
本文档必须达到以下深度:
- 可以作为研发任务拆解基础。
- 可以作为接口联调边界依据。
- 可以作为测试用例编写基础。
- 可以作为业务评审、架构评审和项目排期基线。
## 2. 项目背景
Continental Retail APP 是面向零售商门店和一线员工的一体化移动工作平台。项目目标不是简单把历史小程序搬到APP,而是建立一个统一移动入口,将门店经营过程中分散在多个后台和供应商系统里的能力重新组织成可落地、可扩展、可管控的业务平台。
当前业务环境主要由三类后台能力构成:
- `App Backend`:APP主后台,位于中间主域,负责账号、门店、权限、配置、统一聚合和业务编排。
- `Mini Program Backend`:多个历史小程序后台域,仍然保留独立后台边界,承担 O2O、延保、马上下单、ROOS/返利等既有业务能力。
- `F6 Supplier Domain`:供应商提供的采购、促销、ERP及部分销售施工相关能力,既包含 H5 页面,也包含能力接口。
当前业务存在的核心问题包括:
- 门店日常经营依赖多个小程序和多个后台,入口分散,角色切换成本高。
- 销售、开单、施工、结算、入库等关键流程需要 F6 能力,但移动端接入方式不统一。
- 采购、库存、返利、核销、延保、客服、消息等业务来自不同后台,数据来源和访问链路混杂。
- 总分店、多门店、门店角色、员工权限、门店资料等基础能力缺乏统一中心。
- 历史小程序后台仍需继续复用,无法在短期内完全替换。
- F6 是外部供应商能力域,移动端不应将其视为主后台系统,必须通过主后台进行主流程控制和集成隔离。
因此,本项目需要重新定义统一访问架构、服务边界和产品流程,使 Mobile App 成为唯一统一入口,App Backend 成为主业务编排中心,Mini Program Backend 作为独立业务域继续承载既有业务,F6 作为供应商能力域通过标准化方式被接入。
## 3. 产品目标
### 3.1 业务目标
- 建立零售商统一移动入口,承接门店员工高频日常作业。
- 统一账号、门店、角色、菜单、待办、通知和配置管理。
- 将历史小程序后台能力整合到APP工作台中,减少多入口切换。
- 将 F6 的采购、促销、ERP和相关 H5 页面能力纳入 APP 业务闭环。
- 通过 App Backend 实现统一身份、统一权限、统一链路治理和统一集成策略。
- 提升销售、采购、库存、延保、返利和门店管理的执行效率与可视化水平。
### 3.2 用户目标
- 一线员工用一个APP完成登录、扫码、开单、施工、采购、入库、售后和客服咨询。
- 店长可以在APP内维护门店资料、员工权限、库存和经营数据。
- 多门店用户可以统一切换门店并获得对应上下文数据。
- 平台可以在首页集中下发公告、待办、预警和活动信息。
### 3.3 成功标准
- 用户登录后可在一个APP中完成核心工作,不需要频繁切换小程序。
- APP 内主业务访问链路统一收敛到 App Backend。
- F6 供应商能力成功接入,且只在 H5 嵌入场景对移动端开放直接访问。
- 关键模块具备完整业务流程、异常提示、权限校验和测试标准。
- 研发可以基于本文档直接拆解需求并发起接口联调。
## 4. 术语表
| 术语 | 说明 |
| --- | --- |
| Mobile App | Continental Retail APP 移动端,采用 React Native 实现 |
| App Backend | APP主后台,中间主域,统一 BFF/聚合/编排服务 |
| Mini Program Backend | 历史小程序后台集合,在PRD中按独立服务表达 |
| O2O Backend | O2O 订单、核销、门店业务相关后台 |
| Warranty Backend | 延保业务后台 |
| Order Backend | “马上下单”相关门店、人员、地址、资料能力后台 |
| ROOS Backend | 返利、采购、核销、经营分析相关后台 |
| F6 Supplier Domain | 供应商管理域,提供采购、促销、ERP及相关页面/接口能力 |
| F6 Web Portal / H5 | F6 提供的嵌入式 H5 页面能力 |
| F6 Capability APIs | F6 提供的后端接口能力 |
| F6 Integration Adapter | App Backend 内用于接入 F6 的集成适配层 |
| Embedded H5 Access | Mobile App 直接嵌入访问 F6 H5 页面 |
| Source of Truth | 某业务数据的最终归属和主数据拥有方 |
| Store Context | 当前门店上下文,包括门店ID、组织、角色、权限范围 |
## 5. 角色与使用场景
### 5.1 角色定义
| 角色 | 核心职责 | 常用功能 |
| --- | --- | --- |
| 店长 | 门店经营、人员、库存、数据管理 | 门店切换、店铺管理、人员管理、采购、经营分析、财务、返利 |
| 前台客服 | 客户接待、查询、登记 | 登录、扫码、客户查询、历史工单、新建工单、待办、公告 |
| 收银 | 收款、核销、订单结算 | 结算、收款、订单详情、核销收入、延保出库 |
| 维修技师 | 施工检测和查车 | 查车模板、异常记录、拍照、报告发送、完工 |
| 美容技师 | 美容服务执行 | 施工任务、项目处理、完工确认 |
| 市场专员 | 活动和营销管理 | 促销信息、CRM任务、客户触达、活动日历 |
| 经销商管理员 | 多门店和业务监督 | 门店切换、经营汇总、员工权限、客服入口 |
| 平台运营 | 触达和内容运营 | 公告、问卷、活动、待办配置、提醒配置 |
### 5.2 典型使用场景
- 门店员工每天打开APP,查看待办、预警、公告,并快速进入扫码、开单或采购流程。
- 店长在APP内切换门店,补全门店资料、调整员工权限并查看经营表现。
- 前台或技师通过扫描 VIN 或车牌进入客户查询、到店记录、报价开单、施工查车和结算。
- 采购人员在APP内查询商品、查看促销、下单采购、确认收货并完成入库。
- 财务或店长查看返利、核销收入和门店经营报表。
## 6. 系统架构与服务边界
### 6.1 总体架构原则
系统架构以 `architecture-diagram.drawio` 为准,遵循以下原则:
- `Mobile App -> App Backend` 是唯一主访问链路。
- `App Backend` 是 APP 的主后台与中间主域。
- `Mini Program Backend` 仍然是独立后台域,不并入 App Backend。
- `F6` 是供应商能力域,不被定义为主后台系统。
- `App Backend -> F6` 通过 `F6 Integration Adapter` 发起 B2B allowlisted 访问。
- `Mobile App -> F6` 只保留 `Embedded H5 Access`,仅用于嵌入F6页面。
- 历史 Mini 后台能力逻辑上优先经 App Backend 聚合;若短期存在历史直连,则按兼容链路表达,不作为主链路。
### 6.2 系统域定义
#### 6.2.1 Mobile App
Mobile App 是用户唯一可见的统一移动入口,负责:
- 登录页、首页、个人中心和原生模块页面承载。
- RN 容器、WebView 容器、扫码、相机、相册、拨号、文件上传等原生能力调度。
- 本地登录态管理、本地缓存、权限申请和设备级提示。
- 接收 App Backend 返回的菜单、权限、配置和业务数据。
- 嵌入并管理 F6 H5 页面生命周期。
#### 6.2.2 App Backend
App Backend 位于主业务域,是整个 APP 的主后台和统一编排中心,负责:
- 用户认证、Token签发、刷新和退出。
- 用户、门店、角色、菜单、配置、权限统一管理。
- 首页聚合服务。
- 客服、协议、地址、消息、系统配置等 APP 基础能力。
- 统一错误码、统一日志、统一审计、统一安全控制。
- 对 Mini Program Backend 的数据聚合、字段标准化和兼容封装。
- 对 F6 进行换票、能力调用、鉴权和供应商链路治理。
#### 6.2.3 Mini Program Backend 独立后台域
Mini Program Backend 仍然保留为独立后台域。PRD 内按业务服务拆分如下:
| 服务 | 业务责任 |
| --- | --- |
| O2O Backend | O2O 订单、消息、待办、核销、门店业务相关能力 |
| Warranty Backend | 延保服务、延保注册、延保历史、延保出库 |
| Order Backend | 马上下单相关门店资料、人员、地址、门店管理 |
| ROOS Backend | 采购辅助、返利、核销收入、经营分析、部分商品能力 |
| Shared Mini Capabilities | 公告、促销、活动、问卷等历史渠道能力,按实际归属服务承接 |
这些服务的特点:
- 它们仍然是独立运行的后台服务,不被 App Backend 替代。
- 它们可以是数据主来源,但移动端不应再把它们视为第一入口。
- App Backend 对其进行统一适配和聚合。
- 某些历史能力在过渡期允许保留兼容直连。
#### 6.2.4 F6 Supplier Domain
F6 是供应商能力域,不属于 APP 主系统。F6 对外提供两类能力:
- `F6 Web Portal / H5 Pages`
- `F6 Capability APIs`
F6 在本项目中的定位:
- 提供采购、促销、ERP相关能力。
- 提供部分门店销售/施工/结算/扫码入库相关 H5 页面能力。
- 作为供应商能力域被接入,而不是被当成 APP 的主后台。
- 移动端只在嵌入 H5 时直接访问 F6。
- 所有非 H5 主链路能力原则上通过 App Backend 和 F6 Integration Adapter 访问。
#### 6.2.5 F6 Integration Adapter
F6 Integration Adapter 是 App Backend 侧的集成适配组件,负责:
- F6 B2B allowlisted 服务访问。
- F6 鉴权、票据换取、签名、Header组装。
- 字段映射、状态映射、错误码转换。
- 超时重试、熔断、日志追踪、供应商异常隔离。
- 业务编排时对 F6 API 的统一出口控制。
### 6.3 主访问链路
#### 6.3.1 主链路
主链路定义为:
`Mobile App -> App Backend`
以下功能默认必须走主链路:
- 登录认证。
- 用户、门店、角色、菜单。
- 首页工作台。
- 用户协议、隐私政策。
- 地址、客服、系统配置。
- 对 Mini 服务的聚合展示。
- 对 F6 页面入口的签发与上下文准备。
#### 6.3.2 Mini Program Backend 兼容链路
对于历史 Mini 服务,系统采用:
`主链路 App BFF + 保留少量兼容直连`
即:
- 新设计或重构后的移动端能力优先由 App Backend 聚合暴露。
- 历史上需要直接连接 Mini Program Backend 的能力允许保留,但必须在模块中明确标注。
- 兼容直连不是推荐架构,不可在新模块中无约束扩散。
#### 6.3.3 F6 H5 链路
嵌入 F6 页面时,链路为:
`Mobile App -> Embedded H5 Access -> F6 Web Portal / H5 Pages`
此链路仅适用于:
- 扫码页。
- 到店记录页。
- 报价开单页。
- 施工查车页。
- 结算收银页。
- 扫码入库页。
- 与采购、促销、ERP直接相关的 F6 页面。
#### 6.3.4 F6 API 链路
需要由主后台调用供应商能力时,链路为:
`Mobile App -> App Backend -> Business Service Orchestration -> F6 Integration Adapter -> F6 Capability APIs`
适用于:
- 获取H5票据或免登参数。
- 获取采购、促销、ERP相关补充能力。
- 供应商侧需要主后台协同的查询或写入场景。
### 6.4 数据与上下文治理
#### 6.4.1 用户上下文
用户上下文至少包括:
- 用户ID。
- 员工ID。
- 手机号。
- 角色编码。
- 权限集。
- 渠道标识。
- 登录态 Token。
#### 6.4.2 门店上下文
门店上下文至少包括:
- 当前门店ID。
- 门店编码。
- 组织ID。
- 所属总店/分店关系。
- 门店角色范围。
- 当前门店可访问菜单。
#### 6.4.3 Source of Truth 原则
同一业务必须定义主数据归属,不允许前端混用多个返回结果作为最终口径。PRD中每个功能需明确:
- 运行时访问链路。
- 逻辑数据来源。
- 最终保存/回写目标。
- 状态判定主来源。
## 7. Embedded H5 接入规范
### 7.1 适用范围
Embedded H5 仅用于承载 F6 页面,不扩展为通用任意外链容器。
### 7.2 H5 入口流程
1. 用户在APP中点击某个需要F6页面的功能入口。
2. APP调用 App Backend 获取该页面的 H5 启动信息。
3. App Backend 判断用户登录态、门店上下文、角色权限是否合法。
4. App Backend 通过 F6 Integration Adapter 获取 F6 访问票据、签名或临时访问参数。
5. App Backend 返回最终 H5 访问 URL 和必要上下文。
6. APP 使用 WebView 打开目标 H5 页面。
### 7.3 H5 启动上下文
H5 启动上下文至少包含:
- `ticket` 或等效一次性票据。
- `userId`
- `employeeId`
- `storeId`
- `storeCode`
- `orgId`
- `roleCode`
- `source=app`
- `targetPage`
- `traceId`
### 7.4 H5 与 App 的桥接能力
App 必须为 F6 H5 提供以下桥接能力:
- 打开扫码。
- 打开相机。
- 打开相册。
- 上传图片/文件。
- 调起拨号。
- 关闭当前页。
- 返回上一页。
- 刷新页面。
- 获取当前登录态或票据刷新结果。
- 获取当前门店上下文。
- 弹出 Toast、Dialog、Loading。
- 跳转到 APP 原生页面。
### 7.5 H5 生命周期管理
APP 必须处理:
- 页面标题同步。
- 返回按钮与关闭按钮。
- 首次加载与二次进入缓存策略。
- Token 过期后的重新换票。
- 页面白屏、超时、网络失败兜底。
- H5 上传中断和重新提交提示。
- 门店切换后已打开 H5 页面是否允许继续使用。
默认策略:
- 门店切换后,当前 H5 页面必须失效并提示用户重新进入。
- 用户退出登录后,所有 H5 会话必须同步失效。
### 7.6 H5 安全要求
- 仅允许白名单域名打开。
- 所有 H5 访问使用 HTTPS/TLS。
- H5 页面不得直接保存 APP 明文 Token。
- 供应商错误信息需转换为用户可理解提示。
- H5 与 APP 之间的桥接事件必须有来源校验。
## 8. 功能需求总则
### 8.1 统一描述模板
本PRD所有功能模块统一使用以下描述维度:
- 业务目标
- 目标角色
- 入口
- 前置条件
- 页面内容
- 主流程
- 异常流程
- 业务规则
- 权限规则
- 访问链路
- 逻辑数据来源
- 回写目标
- 状态变化
- 验收标准
### 8.2 统一交互规则
- 所有按钮操作必须有明确提交结果反馈。
- 提交中必须防重复点击。
- 网络失败必须有错误提示和重试能力。
- 高风险操作需要二次确认。
- 表单类页面必须定义保存成功、保存失败和离开未保存提醒。
### 8.3 统一权限规则
- 未登录用户不可访问需登录功能。
- 无门店权限用户不可进入业务首页。
- 菜单显示由 App Backend 返回的权限控制。
- 敏感能力需叠加角色权限校验。
- H5 页面不可绕过 App Backend 直接获得业务权限。
## 9. 模块访问矩阵
| 模块 | 主访问路径 | 逻辑数据来源 | 编排责任方 | 回写目标 |
| --- | --- | --- | --- | --- |
| 登录与协议 | App -> App Backend | App Backend | App Backend | App Backend |
| 首页工作台 | App -> App Backend | App Backend + O2O + ROOS + Warranty + 配置服务 | App Backend | 各原业务后台 |
| 门店切换 | App -> App Backend | App Backend | App Backend | App Backend |
| 店铺管理 | App -> App Backend | Order Backend / O2O / App Backend | App Backend | 对应 Mini 服务 |
| 人员管理 | App -> App Backend | Order Backend | App Backend | Order Backend |
| 扫一扫 | App -> Embedded F6 H5 | F6 H5 / F6 API | App Backend + F6 H5 | F6 或下游业务系统 |
| 客户查询 | App -> App Backend 或 Embedded F6 H5 | F6 / O2O / Warranty | App Backend / F6 H5 | F6 / O2O / Warranty |
| 报价开单 | App -> Embedded F6 H5 | F6 | F6 H5 | F6 |
| 施工查车 | App -> Embedded F6 H5 | F6 | F6 H5 | F6 |
| 结算收银 | App -> Embedded F6 H5 | F6 + Warranty | F6 H5 + App Backend | F6 / Warranty |
| 提醒 | App -> App Backend | F6 / O2O / 短信服务 | App Backend | F6 / O2O |
| 延保服务 | App -> App Backend | Warranty Backend | App Backend | Warranty Backend |
| 采购商品/促销 | App -> App Backend / Embedded F6 H5 | F6 + ROOS + 活动服务 | App Backend / F6 H5 | F6 / ROOS |
| 购物车/结算 | App -> App Backend | F6 / ROOS / O2O | App Backend | F6 / O2O / ROOS |
| 收货/扫码入库 | App -> Embedded F6 H5 | F6 | F6 H5 | F6 |
| 采购订单 | App -> App Backend | F6 / ROOS / O2O | App Backend | F6 / O2O |
| 库存管理 | App -> App Backend / Embedded F6 H5 | F6 / O2O / ROOS | App Backend / F6 H5 | F6 / O2O |
| 经营分析 | App -> App Backend | ROOS / O2O / F6 / Warranty | App Backend | 只读 |
| CRM | App -> App Backend | F6 / O2O / 营销服务 | App Backend | 对应营销服务 |
| 财务 | App -> App Backend | F6 / O2O / ROOS | App Backend | 对应财务系统 |
| 个人中心 | App -> App Backend | App Backend / Order Backend | App Backend | 对应后台 |
## 10. 登录与合规
### 10.1 手机验证码登录
**业务目标**
支持用户通过手机号和验证码登录 APP,并在登录完成后建立用户、门店、角色和菜单上下文。
**目标角色**
所有用户。
**入口**
APP 启动页默认进入登录页。
**前置条件**
- 用户已在后台存在可登录账号。
- 用户手机号已被业务系统绑定。
**页面内容**
- 手机号输入框。
- 验证码输入框。
- 获取验证码按钮。
- 登录按钮。
- 用户协议与隐私政策勾选项。
**主流程**
1. 用户输入手机号。
2. 点击获取验证码。
3. APP 调用 App Backend 请求下发验证码。
4. App Backend 调用短信服务发送验证码。
5. 用户输入验证码并点击登录。
6. App Backend 校验验证码、账号状态和门店权限。
7. 登录成功后返回 Token、用户资料、门店列表、默认门店、菜单权限、协议状态。
8. APP 保存登录态并进入首页。
**异常流程**
- 手机号格式错误。
- 验证码发送失败。
- 验证码错误或过期。
- 用户被禁用。
- 用户无门店权限。
- 协议未勾选。
**业务规则**
- 验证码发送需限频。
- 同一手机号连续失败超过阈值时触发风控。
- 登录成功后必须立即获取门店上下文。
**权限规则**
- 未勾选协议不可继续登录。
**访问链路**
App -> App Backend -> 短信服务。
**逻辑数据来源**
App Backend。
**回写目标**
App Backend。
**状态变化**
- 未登录 -> 验证中 -> 登录成功 / 登录失败。
**验收标准**
- 合法手机号可获取验证码。
- 正确验证码可登录。
- 登录成功后能拿到门店和菜单。
- 错误验证码不能登录并有明确提示。
### 10.2 账号密码登录
**业务目标**
支持传统账号密码登录。
**页面内容**
- 账号输入框。
- 密码输入框。
- 显示/隐藏密码。
- 登录按钮。
**主流程**
1. 用户输入账号和密码。
2. App Backend 校验账号、密码和状态。
3. 登录成功后返回统一登录上下文。
4. APP 进入首页。
**异常流程**
- 账号不存在。
- 密码错误。
- 账号锁定。
- 无门店权限。
**访问链路**
App -> App Backend。
**逻辑数据来源**
App Backend。
**回写目标**
App Backend。
**验收标准**
- 正确凭据可以登录。
- 错误凭据不可登录。
### 10.3 用户协议与隐私政策
**业务目标**
满足合规要求,告知用户 APP 对手机号、门店信息、相机、相册、扫码、拨号等权限的使用目的。
**业务规则**
- 首次登录必须确认协议。
- 协议内容从 App Backend 下发。
- 协议版本升级后可要求重新确认。
### 10.4 退出登录
**业务目标**
清理本地登录态并失效当前 H5 会话。
**业务规则**
- 清理 Token、门店上下文、本地用户信息和缓存。
- 关闭所有已打开的 F6 H5 会话。
- 退出后返回登录页。
## 11. 首页工作台
### 11.1 模块目标
首页是 APP 的核心工作台,负责展示当前用户、当前门店和当前角色下最重要的业务入口和实时信息。
### 11.2 首页组成
- 当前门店信息。
- 门店切换入口。
- 当前角色菜单。
- 扫一扫快捷入口。
- 待办事项。
- 动态预警。
- 公告/通知。
- 促销信息。
- 施工队列。
- 快捷入口区。
### 11.3 首页展示
**业务目标**
在一个页面中聚合用户需要优先关注的任务、异常和高频动作。
**目标角色**
所有登录用户。
**入口**
登录成功默认进入。
**前置条件**
- 已完成登录。
- 已建立默认门店上下文。
**页面内容**
- 顶部:门店名称、门店切换、消息入口。
- 中部:动态菜单、扫码、待办、预警、公告、促销。
- 底部:Tab 导航。
**主流程**
1. APP 进入首页。
2. APP 调用 App Backend 获取首页聚合数据。
3. App Backend 获取当前门店、菜单、用户权限。
4. App Backend 聚合 O2O、Warranty、ROOS、公告和预警数据。
5. 返回首页展示数据。
**异常流程**
- 某个子模块接口失败时仅该模块展示异常态。
- 门店上下文缺失时引导重新选择门店。
**业务规则**
- 首页展示内容必须与当前门店绑定。
- 菜单由权限控制,不可前端写死。
- 高优先级待办和高等级预警置顶。
**访问链路**
App -> App Backend。
**逻辑数据来源**
App Backend + O2O Backend + Warranty Backend + ROOS Backend。
**回写目标**
各业务后台。
**验收标准**
- 首页能展示门店、菜单、待办、预警、公告和促销。
- 任意单个模块失败不导致整页不可用。
### 11.4 门店切换
**业务目标**
为多门店用户切换当前业务上下文。
**主流程**
1. 用户点击门店名称。
2. APP 调用 App Backend 获取门店列表。
3. 用户选择目标门店。
4. App Backend 返回切换成功后的门店上下文。
5. APP 刷新菜单、首页数据和相关缓存。
6. 如当前存在打开的 F6 H5 页面,强制失效并提示重新进入。
**业务规则**
- 当前门店影响所有业务数据。
- 门店切换后,购物车、待办、预警、订单和 H5 页面上下文必须同步切换。
### 11.5 扫一扫
**业务目标**
提供统一扫码入口,支持 VIN、车牌、二维码和条形码识别,并将用户带入正确的后续业务。
**目标角色**
前台客服、店长、收银、技师等。
**入口**
- 首页快捷入口。
- 某些业务页的二级扫码按钮。
**前置条件**
- 当前用户有扫码权限。
- 已授权相机权限。
**页面内容**
- F6 嵌入扫码页。
- 识别结果提示。
- 功能选择弹窗。
**主流程**
1. 用户点击扫一扫。
2. APP 向 App Backend 请求 F6 扫码页访问参数。
3. APP 打开 Embedded F6 H5 扫码页。
4. 用户扫描 VIN、车牌或二维码。
5. H5 返回识别结果并触发对应业务动作。
6. 根据结果进入客户查询、核销、入库、延保或其他流程。
**异常流程**
- 相机未授权。
- H5 加载失败。
- 识别失败。
- 识别结果没有对应业务上下文。
- 未接入 F6 的车辆无法直接匹配。
**业务规则**
- 对未接入 F6 的车辆,默认进入车辆信息补录或新建工单兜底流程。
- 识别结果必须和当前门店上下文绑定。
**访问链路**
App -> App Backend -> Embedded F6 H5。
**逻辑数据来源**
F6 H5 / F6 API。
**回写目标**
F6 或下游业务系统。
**验收标准**
- 可识别 VIN、车牌、二维码、条形码。
- 可根据识别结果进入对应流程。
- 未识别或无权限时有清晰提示。
### 11.6 公告/通知
**业务目标**
统一触达官方公告、系统通知、业务提醒和促销内容。
**业务规则**
- 列表按发布时间倒序。
- 促销类通知可在首页滚动。
- 支持已读状态。
- 是否支持删除由后台能力决定。
### 11.7 待办事项
**待办范围**
- O2O 订单接单提醒。
- 待安装订单。
- 延保视频上传提醒。
- 问卷提醒。
- 门店资料完善提醒。
- 渠道资料提醒。
- 支付提醒。
**业务规则**
- 待办按优先级和时效排序。
- 点击待办跳转对应处理页。
### 11.8 动态预警
**预警范围**
- 月度签约量预警。
- O2O 补货率预警。
- O2O 时效订单预警。
- 库存预警。
- 缺货提醒。
- 滞销提醒。
**业务规则**
- 预警按等级和时间排序。
- 支持跳转处理页面。
## 12. 店铺管理
### 12.1 模块目标
店铺管理用于维护门店基础资料、经营资料、人员权限和收款信息,是门店基础管理中心。
### 12.2 访问定义
- 主访问路径:App -> App Backend
- 逻辑数据来源:Order Backend / O2O Backend
- 编排责任:App Backend
- 回写目标:对应 Mini 服务
### 12.3 基础信息
**页面内容**
- 门店名称
- 门店编码
- 负责人姓名
- 联系方式
- 门店地址
- 门店评分
- 门头照片
**业务规则**
- 支持查看、编辑、保存。
- 无编辑权限用户只读。
- 门头照片支持上传和替换。
- 资料缺失时产生待办。
### 12.4 店铺服务信息
**页面内容**
- 合作线上渠道
- 合作线下渠道
- 分销渠道
- 合作平台
- 服务项目
**业务规则**
- 修改后保存到对应 Order Backend 服务。
### 12.5 营业执照信息
**页面内容**
- 企业名称
- 社会信用代码
- 营业执照图片
- 有效期
**业务规则**
- 证照缺失或过期生成提醒。
### 12.6 渠道信息
- 展示渠道类别、状态、绑定关系。
- 支持编辑保存。
### 12.7 经营范围
- 会员体系开通申请。
- 认证轮胎技术检测中心申请。
- 服务项目管理。
- 开票方式维护。
### 12.8 收款信息
**业务规则**
- 展示脱敏银行信息。
- 修改手机号、解绑银行卡需二次确认。
- 仅高权限角色可见。
### 12.9 人员管理
**页面内容**
- 员工列表
- 员工详情
- 角色分配
- 启停状态
**主流程**
1. 店长进入人员管理。
2. 查看员工列表。
3. 创建或编辑员工。
4. 分配角色和权限。
5. 保存并同步后台。
**业务规则**
- 停用后员工不可登录。
- 权限变更后重新登录生效。
## 13. 销售流程
### 13.1 模块目标
销售流程覆盖客户到店前后的完整服务链路,包括准备、客户查询、报价开单、施工查车、结算、提醒和售后。
### 13.2 流程总览
1. 首页进入销售准备。
2. 通过扫码或查询进入客户查询。
3. 进入报价开单。
4. 进入施工查车。
5. 完成结算收银。
6. 触发提醒和售后。
### 13.3 准备
**功能内容**
- 待办事项。
- 消息公告。
- O2O 订单接单提醒。
- 延保上传提醒。
### 13.4 客户查询
#### 13.4.1 首页扫码入口
**访问链路**
App -> App Backend -> Embedded F6 H5。
**逻辑数据来源**
F6 H5 / F6 API。
**主流程**
1. 扫描车牌或 VIN。
2. 系统识别车辆。
3. 进入历史记录或新建流程。
#### 13.4.2 历史工单记录
**业务目标**
让用户快速查看车辆或客户的历史维修/服务记录。
**页面内容**
- 历史工单列表。
- 工单号。
- 时间。
- 门店。
- 状态。
- 明细入口。
**访问链路**
App -> App Backend。
**逻辑数据来源**
F6 Capability APIs 为推荐默认方案;如部分历史记录仍来自 O2O,则通过 App Backend 聚合。
**回写目标**
只读。
#### 13.4.3 新建工单
**业务目标**
为未匹配历史记录或需要新增服务的客户创建工单。
**页面内容**
- 车牌
- VIN
- 车型
- 车主信息
- 服务项目
- 备注
**推荐方案**
- 新建工单主数据默认写入 F6。
- 若某些业务仍需写入 O2O,则由 App Backend 负责双系统编排或补同步,后续待接口确认。
#### 13.4.4 销售商机
**逻辑数据来源**
F6 Capability APIs。
**功能内容**
- 服务提醒记录。
- 意向池。
- 商机详情。
- 跟进动作。
#### 13.4.5 延保历史记录
**逻辑数据来源**
Warranty Backend。
### 13.5 报价开单
**业务目标**
支持在到店后完成车辆资料补全、报价和开工单。
**访问链路**
App -> App Backend -> Embedded F6 H5。
**逻辑数据来源**
F6 H5 / F6 APIs。
**主流程**
1. 从客户查询进入报价开单。
2. APP 获取 F6 页面访问参数。
3. 打开 F6 到店记录或开单页。
4. 补全 VIN、车型、车主信息。
5. 选择服务项目,生成报价。
6. 用户确认后开单。
**业务规则**
- 门店上下文必须在进入 H5 前就确定。
- 报价金额和工单状态以 F6 为准。
### 13.6 施工查车
**业务目标**
完成查车、异常记录、检测报告和结果转化。
**页面内容**
- 检测模板
- 检测项目
- 异常项
- 正常项批量确认
- 拍照上传
- 报告发送入口
**主流程**
1. 从开单结果进入查车。
2. 选择模板。
3. 记录正常与异常项。
4. 上传照片。
5. 生成报告。
6. 发送给车主。
7. 选择转工单或转商机。
**异常流程**
- 模板为空。
- 图片上传失败。
- 发送短信失败。
### 13.7 结算收银
**业务目标**
完成收银、附加项目、结算确认和延保关联。
**访问链路**
App -> Embedded F6 H5,必要时通过 App Backend 调用延保或补充状态服务。
**主流程**
1. 进入 F6 结算页。
2. 添加其他项目。
3. 确认金额。
4. 完成收款。
5. 如命中延保场景,进入延保处理。
**业务规则**
- 结算金额以 F6 为准。
- 延保出库必须同步到 Warranty Backend。
### 13.8 提醒
**功能内容**
- 设置提醒规则。
- 生成提醒单。
- 跟进提醒单。
- SA 发券。
- 电话或短信提醒。
**访问链路**
App -> App Backend -> F6 APIs / 短信服务。
### 13.9 售后
**功能内容**
- 延保服务。
- 延保注册。
- 质量理赔。
- 延保理赔。
**访问链路**
App -> App Backend。
**逻辑数据来源**
Warranty Backend。
## 14. 采购流程
### 14.1 模块目标
采购流程覆盖门店采购、促销、购物车、订单、收货与入库,并允许区分马牌和非马牌产品。
### 14.2 架构原则
- 采购、促销、ERP相关主能力归属于 F6 供应商域。
- APP 不将 F6 视为主后台,而是通过 App Backend 编排或 H5 承载接入。
- 非轮产品、返利、部分活动信息如仍来自 ROOS 或 Mini 服务,由 App Backend 聚合输出。
### 14.3 触发采购
**入口**
- 首页快捷入口
- 缺货预警跳转
- 库存页面跳转
- 采购 Tab
**业务规则**
- 所有采购都应能在 APP 内发起。
- 区分马牌和非马牌入口。
### 14.4 产品查询
**页面内容**
- 品类树
- 品牌筛选
- 搜索框
- 商品卡片
- 促销标签
- 仓库信息
- DOT 信息
- 价格信息
**业务规则**
- 非轮产品必须支持清晰树状分类。
- 同一 SKU 下支持多个 DOT、多仓库、多价格展示。
- 促销信息需清晰展示生效时间和规则。
**访问链路**
- 默认:App -> App Backend。
- 如某些页面由 F6 提供现成 H5,则 App Backend 返回 H5 入口。
**逻辑数据来源**
- F6 APIs / F6 H5 为主。
- ROOS 或活动服务作为补充来源。
### 14.5 添加购物车
**页面内容**
- 商品清单
- 数量修改
- DOT 选择
- 仓库选择
- 批量选择
- 删除
- 去结算
**业务规则**
- 购物车以主后台编排结果为准。
- 价格变化和库存变化必须在结算前再次校验。
### 14.6 采购结算
**页面内容**
- 收货地址
- 商品信息
- 优惠信息
- 金额汇总
- 支付方式
- 提交订单
**主流程**
1. 用户确认商品。
2. 选择地址和支付方式。
3. App 调用 App Backend 提交订单。
4. App Backend 调用 F6/相关服务完成订单生成。
5. 返回下单结果。
**业务规则**
- 支付、证书、令牌逻辑由后端控制。
- 提交后需同步 ERP 采购模块。
### 14.7 收货与扫码入库
**业务目标**
完成到货确认和扫码入库。
**访问链路**
App -> App Backend -> Embedded F6 H5。
**逻辑数据来源**
F6 H5 / F6 APIs。
**主流程**
1. 从采购订单进入收货。
2. 打开扫码入库页。
3. 扫描商品条码。
4. 绑定门店与条码。
5. 完成入库。
### 14.8 采购订单
**功能内容**
- 订单列表
- 订单详情
- 支付状态
- 发货状态
- 收货状态
**访问链路**
App -> App Backend。
**逻辑数据来源**
F6 + O2O/ROOS 聚合,按订单类型区分。
### 14.9 线下采购
**功能内容**
- 缺货提醒转采购单
- 快速采购
- 一键入库
- 安全库存下限采购
- 批量采购入库
- 销售单拍照识别
- Excel 导入入库
**推荐默认方案**
- 线下采购流程由 App Backend 统一编排。
- 涉及 OCR、导入和库存写入的能力按 F6/ERP 优先承接。
## 15. 库存管理
### 15.1 模块目标
库存管理负责展示库存状态、管理入库、盘点、安全库存、DOT 和预警。
### 15.2 库存明细
**页面内容**
- 商品名称
- SKU
- 仓库
- DOT
- 可用库存
- 锁定库存
- 在途库存
### 15.3 安全库存
**业务规则**
- 支持按动态公式计算。
- 支持按固定值设置。
- 支持表格导入。
### 15.4 库存盘点
**功能范围**
- 全盘点
- 品类盘点
- 动销盘点
- 自定义盘点
- 临时盘点
### 15.5 DOT 管理
**业务规则**
- 同一 SKU 的不同 DOT 必须独立管理。
- DOT 必须在采购、入库、库存、出库和销售链路中保留。
### 15.6 缺货与滞销提醒
**业务规则**
- 缺货提醒跳转采购。
- 滞销提醒跳转库存处理或退货。
## 16. 经营分析
### 16.1 模块目标
经营分析提供跨采购、销售、核销、返利、库存和延保的经营数据。
### 16.2 采购及返利对账单
**逻辑数据来源**
ROOS + F6。
**页面内容**
- 采购明细
- 返利规则
- 对账状态
- 差异处理标记
### 16.3 门店核销收入
**逻辑数据来源**
ROOS。
### 16.4 返利中心
**页面内容**
- 返利余额
- 返利明细
- 提现申请
- 提现进度
### 16.5 经营报表
**功能内容**
- 门店经营报表
- 马牌相关报表
- O2O 订单报表
- 延保报表
- 采购报表
- 库存报表
## 17. CRM 客户管理
### 17.1 功能范围
- 创建营销任务
- 选择用户
- 设置发送内容
- 查看发送记录
### 17.2 推荐默认方案
- 由 App Backend 统一接入营销服务。
- 营销用户选择和发送结果通过主后台统一回显。
## 18. 员工绩效
### 18.1 功能范围
- 业绩规则设置
- 规则列表
- 业绩明细列表
- 员工提成查询
### 18.2 规则类型
- 计件业绩
- 阶梯业绩
- 叠加业绩
## 19. 财务
### 19.1 功能范围
- 财务看板
- 营业收入
- 营业支出
- 其他收支
- 应收应付
- 开票管理
- 企业钱包
### 19.2 权限规则
- 默认仅店长和授权角色可见。
- 所有金额字段以后台返回为准。
## 20. 个人中心
### 20.1 收货地址
**访问链路**
App -> App Backend。
**逻辑数据来源**
App Backend / Order Backend。
**功能内容**
- 地址列表
- 新增地址
- 编辑地址
- 删除地址
- 默认地址
### 20.2 服务热线
**功能内容**
- 热线号码
- 服务时间
- 服务范围
- 一键拨打
### 20.3 经销商客服
**功能内容**
- 客服信息
- 留言反馈
- 进度查询
### 20.4 O2O / 延保客服(企微)
**功能内容**
- 企业微信二维码
- 添加客服
- 咨询与反馈
### 20.5 退出登录
参见登录与合规模块。
## 21. 非功能需求
### 21.1 性能
- 首页支持部分失败降级。
- H5 打开必须有超时与重试策略。
- 列表页面支持分页或分段加载。
### 21.2 稳定性
- App Backend 与 F6 之间调用必须有超时和重试策略。
- F6 异常不得导致主 APP 全部不可用。
- Mini 某一服务失败应仅影响对应模块。
### 21.3 安全
- 全链路 HTTPS/TLS。
- Token 安全存储。
- 敏感字段脱敏。
- H5 域名白名单。
- F6 B2B 接口仅允许 allowlisted 访问。
### 21.4 可观测性
- 主链路必须具备 Trace ID。
- H5 打开、关闭、失败需记录事件。
- 关键业务提交需记录审计日志。
## 22. 埋点与运营需求
### 22.1 埋点
- 登录成功/失败
- 首页曝光
- 门店切换
- 扫码成功/失败
- H5 页面打开/关闭/异常
- 待办点击
- 采购下单
- 入库成功
- 客服点击
### 22.2 运营配置
- 菜单配置
- 公告配置
- 促销位配置
- 热线配置
- H5 页面入口配置
- 功能开关配置
## 23. 验收标准
### 23.1 架构验收
- Mobile App 的主访问链路为 App Backend。
- F6 不作为主后台描述。
- App Backend 通过 F6 Integration Adapter 调用 F6。
- App -> F6 仅出现在 Embedded H5 场景。
- Mini Program Backend 保持独立后台域表达。
### 23.2 功能验收
- 登录、门店切换、首页工作台可正常使用。
- 店铺管理、人员管理可查看和维护。
- 扫码、客户查询、报价开单、施工查车、结算闭环可执行。
- 采购、购物车、结算、订单、收货、入库可执行。
- 库存、返利、核销、客服、地址、经营报表可访问。
### 23.3 集成验收
- H5 访问票据获取成功。
- F6 页面可获得正确用户和门店上下文。
- Mini 服务聚合结果正确。
- 延保、返利、采购、库存数据与原系统一致。
### 23.4 异常验收
- Token 失效
- 门店上下文缺失
- F6 H5 加载失败
- Mini 服务超时
- 短信失败
- 图片上传失败
- 支付失败
## 24. 风险、默认方案与待确认项
### 24.1 默认方案
- 新版 PRD 以 App Backend 作为统一主后台。
- 新能力优先走 App Backend 聚合。
- F6 页面通过 Embedded H5 承载。
- F6 API 通过 F6 Integration Adapter 访问。
- 历史 Mini 直连仅作为兼容链路保留。
### 24.2 待确认项
| 编号 | 待确认项 | 当前默认方案 | 影响 |
| --- | --- | --- | --- |
| R1 | 历史工单主数据源最终是否全部归 F6 | 默认 F6 为主,O2O 为兼容补充 | 客户查询设计 |
| R2 | 新建工单是否需要双写 O2O | 默认主写 F6,后续按联调确认是否补同步 | 开单编排 |
| R3 | 施工队列的主来源 | 默认 App Backend 聚合 O2O/F6 结果 | 首页展示 |
| R4 | 采购商品与促销哪些页面走 H5、哪些走原生/接口 | 默认页面优先复用 F6 能力 | 采购体验 |
| R5 | 线下采购 OCR 和 Excel 导入由谁承接 | 默认 F6/ERP 优先 | 线下采购 |
| R6 | 财务模块完整数据口径和权限边界 | 默认只开放授权角色 | 财务交付 |
| R7 | 企业微信客服的具体集成模式 | 默认由 App Backend 下发二维码与入口 | 客服体验 |
## 25. 附录:服务拆分与职责清单
| 服务 | 主要职责 |
| --- | --- |
| App Backend | 登录、用户、门店、菜单、权限、配置、首页聚合、客服、地址、H5票据、统一编排 |
| O2O Backend | O2O 订单、待办、预警、核销、部分门店业务能力 |
| Warranty Backend | 延保历史、延保服务、延保注册、延保出库 |
| Order Backend | 门店基础信息、服务信息、执照、渠道、人员、地址 |
| ROOS Backend | 返利、核销收入、经营分析、部分采购辅助数据 |
| F6 Web Portal / H5 | 扫码、到店记录、报价开单、施工查车、结算收银、扫码入库、部分采购页面 |
| F6 Capability APIs | 采购、促销、ERP、商机、提醒、补充查询能力 |
| F6 Integration Adapter | F6 鉴权、换票、接口适配、错误转换、链路治理 |