# 店铺主页 — 功能需求说明（C 端）

> 本文档在《店铺主页功能需求-草稿》基础上整理，并关联 **《关联需求分析.md》** v1.6、平台侧 **《店铺管理功能需求》** v1.3.6、《店铺设置功能需求》** v1.1.1、**《商品管理功能需求》** v1.3.3、《商品审核功能需求》** v1.0 及商家侧 **《店铺商品分类功能需求》** v1.1；C 端兄弟模块 **《商城首页功能需求》** v1.0.2、《商品分类功能需求》** v1.0.1、《搜索页功能需求》** v1.0、《商品详情内页功能需求》** v1.0 做边界与流程对齐。  
> 范围：**C 端（消费者 APP / 用户商城）· 店铺主页** 的店铺介绍、关注、店内分类浏览、店内搜索与进详情；**不涉及** 数据库结构、接口定义及技术实现细节。  
> **说明：** 本模块 **只读消费** 店铺档案、店铺商品分类、出售中商品；**不维护** 店铺/商品/分类数据。  
> **v1.0：** 首版定稿；对齐草稿 §1～§5；补全入口、浏览层/可购层、与全站搜索边界、关联供给链规则。

---

## 1. 模块定位

### 1.1 业务目标

为 **C 端买家/访客** 提供 **单店铺维度** 的浏览与关注能力，使其能够：

- 查看店铺 **头像、名称、评分、粉丝数** 等介绍信息（及 **店铺描述**，若有）；
- **关注 / 取消关注** 店铺（须登录会员）；
- 按 **店铺商品分类** 浏览本店 **出售中** 商品，**同类按销量降序**；
- 在本店内 **搜索商品名称**，进入匹配商品的 **详情内页**；
- 从商品卡片进入 **商品详情内页**，继续加购/下单（须满足可购条件，见 §10）。

**不包含（本期或与它模块分工）：**

| 能力 | 说明 |
|------|------|
| **全站搜索** | 见 **《搜索页功能需求》**；含店铺 Tab、跨店商品检索 |
| **平台商品分类浏览** | 见 **《商品分类功能需求》**；按 **平台二级分类** 跨店聚合 |
| **店铺/分类/商品维护** | 见平台 **店铺管理**、商家 **店铺商品分类**、**商品列表** |
| **购物车、确认订单、支付** | 见 **购物车**、**订单管理**；本模块 **不直接** 交易 |
| **评价发表、商家回复** | 见 **评价管理**（待建设）；评分 **只读展示** |
| **店铺客服 IM、优惠券、直播** | 草稿 **未要求** |
| **会员注册/登录表单** | 见 **会员管理** / **会员注册登录**；本模块 **引导跳转** |

### 1.2 在业务链中的位置

```text
【供给链】平台开店 → 商家维护店铺资料、店铺商品分类、发品上架 → 出售中
                              ↓
【C 端 · 上游入口】搜索页（店铺 Tab）/ 商品详情「进店」/ 其它带 shopId 链入
                              ↓
【C 端 · 本模块】店铺主页 · 店内分类 · 店内搜索
                              ↓
                      商品详情 → 加购/下单（四条件，见 §10）

【用户链】访客可浏览；**关注** 须 **已登录且启用** 的会员
```

| 关联模块 | 关系 | 边界说明 |
|----------|------|----------|
| **搜索页** v1.0 | **上游入口** | 店铺 Tab 点击 → 本模块（SRH12） |
| **商品详情** v1.0 | **双向** | 详情「进店」→ 本模块（GD13）；本模块商品 → 详情 |
| **商城首页 / 商品分类** | **间接** | 经 **详情** 或 **搜索** 间接到达；**无** 首页直达店列表（本期） |
| **店铺管理** v1.3.6 | **店铺档案** | 名称、头像、描述、电话、开业/停业；**已删店不可访问** |
| **店铺商品分类** v1.1 | **店内导航** | **仅** 本店 **两级** 分类；**是否显示** 控制 C 端可见 |
| **商品审核 / 商品管理** | **商品来源** | 列表/搜索 **仅出售中** |
| **会员管理** v1.0.1 | **用户链** | 访客可浏览；关注/禁用会员规则见 §5、§10 |
| **关联需求分析** v1.6 §11 | **可购规则** | 本模块 **展示 ≠ 可下单** |

### 1.3 与《关联需求分析》的对应

| 关联分析要点 | 本模块 |
|--------------|--------|
| C 端浏览与下单分离 | 主页、分类列表、店内搜索属 **浏览层** |
| 店铺停业 S-P3 | **可浏览** 停业店及出售中商品；**下单** 在详情/结算拦截 |
| 店铺商品分类 vs 平台分类 | 本模块 **仅用店铺商品分类** 导航；**不用** 平台分类 Tab |
| 分类「不显示」C-P5 | 商家设 **不显示** 的店铺分类 **不出现在** 本模块导航；商品 **不自动下架** |
| 商品状态 | 非 **出售中** 商品 **不出现在** 本模块列表与店内搜索结果 |
| 已逻辑删除店铺 | **不可进入** 本模块（见 §8.3） |

### 1.4 使用端与角色

| 端 | 角色 | 能力 |
|----|------|------|
| **C 端** | **访客** | 浏览店铺介绍、分类商品、店内搜索、进详情 |
| **C 端** | **已登录会员** | 同访客 + **关注/取消关注** |
| 平台/商家端 | 管理员/商家 | **不操作** 本页面；在各自模块维护数据 |

---

## 2. 关联需求分析

### 2.1 与平台《店铺管理功能需求》

| 项 | 定稿 |
|----|------|
| 展示字段 | **店铺名称、店铺头像**（必填维护项）；**店铺描述、商家电话**（选填，有则可在介绍区展示或提供联系入口，以前台 UX 为准） |
| 店铺状态 | **开业 / 停业** 均 **可进入** 主页浏览（未删） |
| 停业 | C 端 **禁止对该店下单**；主页 **不隐藏** 商品列表 |
| 逻辑删除 | **已删** 店铺 **不可访问**；提示店不存在或已关闭 |
| 资料变更 | 平台/商家端修改店名、头像、描述等后，用户 **重新进入/刷新** 主页即见最新 |

### 2.2 与商家《店铺商品分类功能需求》

| 项 | 定稿 |
|----|------|
| 数据来源 | **当前店铺** 下 **店铺商品分类**（一级 + 二级）；**非** 平台商品分类 |
| C 端可见 | 仅 **是否显示 = 是** 的一级、二级参与导航 |
| 商品挂载 | 商品 **仅挂二级**；列表按所选 **二级**（或「全部」）筛选 |
| 是否热门 | **可** 用于一级/二级 **排序加权或置顶**（若前台支持）；**非** 必选能力 |
| 分类变更 | 改显示/排序 **不自动** 改商品上下架；C 端 **刷新/重进** 后导航更新 |
| 商家停业维护 | 商家端 **仍可** 维护分类；C 端 **禁单** 与分类维护 **无关** |

### 2.3 与平台《商品管理》/《商品审核》

| 项 | 定稿 |
|----|------|
| 列表/搜索范围 | **当前店铺** 且状态 = **出售中** 且商品 **未删** |
| 待审核/已下架/未上架 | **不出现** |
| 卡片字段 | **主图、商品名称、售价**；与 **商品分类列表**、**搜索商品列表** 对齐 |
| 销量排序 | 按 **累计销量降序**（与草稿「同类按销量排序」一致） |
| 卡片不展示 | 库存数字、服务标签（与分类/搜索列表一致，可选展示销量数字若产品统一则另版本） |

### 2.4 与 C 端《搜索页》— 全站 vs 店内

| 维度 | **全站搜索（搜索页）** | **店内搜索（本模块）** |
|------|------------------------|------------------------|
| 范围 | 全平台出售中商品 + 未删店铺 | **当前店铺** 内出售中商品 |
| 店铺 Tab | **有** | **无** |
| 匹配字段 | 商品名称（首期） | **商品名称** 模糊匹配 |
| 搜索历史 | 全站历史 | **可不记录** 或 **本店独立**（以前台为准） |
| 入口 | 首页/分类顶栏 | **店铺主页内** 搜索入口 |

### 2.5 与 C 端《商品详情内页》

| 项 | 定稿 |
|----|------|
| 进店 | 详情区展示店头像、名称、评分、粉丝；点击 → **本模块** |
| 口径一致 | **评分、粉丝数** 展示规则与本模块 **一致** |
| 返回路径 | 详情 ← 本模块商品列表；**系统返回** 行为以前台为准 |

### 2.6 评分与粉丝（功能语义）

| 字段 | 说明 |
|------|------|
| **评分** | 店铺 **综合评分**（通常来源于已完成订单的评价聚合；**评价模块未建设** 时可 **隐藏、占位或展示 0**，与详情 §9 一致） |
| **粉丝数** | **已关注** 该店铺的会员数量；取消关注后 **减 1**（以业务计数为准） |

> **边界：** 评分/粉丝 **非** 平台《店铺管理》表单字段；由 C 端 **统计/聚合** 能力支撑；未建设前 **不阻断** 店铺浏览。

---

## 3. 页面与入口

### 3.1 页面清单

| 页面 | 说明 |
|------|------|
| **A. 店铺主页** | 店铺介绍 + 关注 + 分类导航 + 商品列表 |
| **B. 店内搜索输入页** | 本店商品名检索入口 |
| **C. 店内搜索结果** | 可与 B **同页下半区** 或 **独立结果页**（以前台 UX 为准） |

### 3.2 上游入口（定稿）

| 入口 | 行为 |
|------|------|
| **搜索页 · 店铺 Tab** | 点击店铺卡片 → 本模块，带 **shopId** |
| **商品详情 · 进店** | 点击店铺区 → 本模块，带 **shopId** |
| **其它链入** | 任何携带 **有效 shopId** 的 C 端路由（分享、消息等，若后续建设） |

**默认落地：** 进入 **A. 店铺主页**；分类区默认 **「全部商品」**；列表按 **销量降序**。

### 3.3 路由参数

| 参数 | 必填 | 说明 |
|------|:----:|------|
| shopId | 是 | 目标店铺；缺失或非法 → §8.3 |

---

## 4. 店铺介绍

> 对齐草稿 §1。

### 4.1 展示内容

| 字段 | 说明 |
|------|------|
| 店铺头像 | 读 **店铺档案** |
| 店铺名称 | 读 **店铺档案** |
| 评分 | §2.6；未建设可隐藏/占位 |
| 粉丝数 | §2.6 |
| 店铺描述 | **选填**；有内容则展示（可折叠/限高，以前台为准） |
| 营业状态 | **可选展示**「休息中」等标签当店铺 **停业**（**不** 因此隐藏商品） |

### 4.2 交互

```text
进入主页 → 加载店铺介绍区
    → 加载失败 → §8.2
    → 成功 → 并行加载分类导航与商品列表
```

---

## 5. 关注 / 取消关注

> 对齐草稿 §2。

### 5.1 规则

| 编号 | 规则 |
|------|------|
| **SH-F1** | **访客** 点击关注 → **引导登录/注册** |
| **SH-F2** | **已登录且启用** 的会员可 **关注**；按钮变为 **已关注** |
| **SH-F3** | **已关注** 状态下可 **取消关注**；粉丝数 **相应减少** |
| **SH-F4** | 同一会员对同一店铺 **至多一条** 关注关系 |
| **SH-F5** | 店铺 **已删** 或 **不可访问** 时 **不可** 关注 |
| **SH-F6** | 关注列表 **展示与管理** 见 **「我的服务」/ 会员中心** 另册（若建设）；本模块 **仅** 提供关注动作 |

### 5.2 流程

```text
用户点击「关注」
    → 未登录 → 跳转登录 → 成功后回到主页并 **可** 自动完成关注（以前台为准）
    → 已登录 → 写入关注 → 更新按钮态与粉丝数

用户点击「取消关注」
    → 确认（可选）→ 移除关注 → 更新按钮态与粉丝数
```

---

## 6. 店内分类浏览与商品列表

> 对齐草稿 §3、§5。

### 6.1 分类导航

| 项 | 定稿 |
|----|------|
| 数据源 | 本店 **店铺商品分类**；**仅是否显示 = 是** |
| 结构 | **一级** 为主导航（含 **「全部」**）；选中一级后展示其下 **可见二级** Tab（若该一级无可见二级，则按一级聚合展示其下商品，以前台为准） |
| 排序 | 一级、二级按商家配置的 **排序值**；同序以前台规则为准；**是否热门** 可影响靠前展示 |
| 不可见分类 | **不出现在** 导航；其下商品 **不自动下架** |

### 6.2 商品列表

| 项 | 定稿 |
|----|------|
| 范围 | **当前店铺** + **出售中** + **未删** |
| 筛选 | **全部**：本店全部出售中商品；**某二级**：`shop_category_id` 对应该二级 |
| 排序 | **销量降序**（草稿「同类按销量排序」） |
| 分页 | 支持 **上拉/load more** 或分页（以前台 UX 为准） |
| 卡片字段 | **主图、名称、售价**（对齐分类/搜索列表） |
| 空态 | 该分类下无出售中商品 → **「暂无商品」** 或同等文案 |

### 6.3 进商品详情

```text
用户点击商品卡片
    → 进入「商品详情内页」（带 goodsId）
    → 加购/购买须满足 §10 四条件
```

---

## 7. 店内搜索

> 对齐草稿 §4。

### 7.1 店内搜索输入页（B）

| 区域 | 说明 |
|------|------|
| 顶部 | **返回**、**搜索输入框**、**清空**、**搜索** 按钮 |
| 范围提示 | 可选文案「搜本店商品」（以前台为准） |

| 编号 | 规则 |
|------|------|
| **SH-S1** | 支持文字输入；**键盘回车** 等同点击搜索 |
| **SH-S2** | 输入 **为空**（仅空格视为空）→ **不跳转**、不发起搜索 |
| **SH-S3** | 搜索范围：**当前店铺** 内 **出售中** 商品 |
| **SH-S4** | 匹配：**商品名称** **模糊** 匹配 |
| **SH-S5** | **无** 店铺 Tab、**无** 跨店结果 |

### 7.2 店内搜索结果（C）

| 情形 | 行为 |
|------|------|
| 有匹配 | 展示 **商品列表**（字段同 §6.2）；点击 → **商品详情** |
| 无匹配 | 展示 **「暂无相关」**（草稿 §4） |
| 排序 | 默认 **销量降序**；**可不提供** 价格/店铺类 Tab（店内仅商品） |

### 7.3 流程

```text
主页点击搜索入口 → B 输入页
    → 输入关键词 + 搜索
        → 有结果 → C 列表
        → 无结果 → 「暂无相关」
    → 点击商品 → 商品详情
```

---

## 8. 异常与不可访问

> 草稿 §6「code、msg、data」**不在本文定义**；仅描述 **用户可见** 行为。

### 8.1 加载失败

| 情形 | 行为 |
|------|------|
| 店铺介绍/列表加载失败 | **错误提示** + **重试**；**不** 整页白屏 |
| 关注操作失败 | Toast/弹窗提示原因；**不改变** 按钮态 |

### 8.2 店铺不可访问

| 情形 | 行为 |
|------|------|
| shopId 缺失/无效 | 提示无法打开店铺；**返回** 上一页或首页 |
| 店铺 **已逻辑删除** | 提示店铺不存在或已关闭；**不可** 浏览商品 |
| 商户 **冻结/注销** | **不自动** 隐藏店铺页；若产品要求拦截访问，提示 **店铺暂不可用**（与平台运营策略一致，以前台定稿为准） |

### 8.3 空数据

| 情形 | 文案方向 |
|------|----------|
| 全店无出售中商品 | 「暂无商品」 |
| 分类下无商品 | 「暂无商品」 |
| 店内搜索无匹配 | 「暂无相关」 |

---

## 9. 页面流程总览

```text
【入口】搜索页店铺卡片 / 详情「进店」/ 带 shopId 链入
    → A. 店铺主页
        ├── 查看介绍（头像、名称、评分、粉丝、描述）
        ├── 关注 / 取消关注（会员）
        ├── 切换一级/二级分类 → 商品列表（销量降序）
        ├── 点击商品 → 商品详情
        └── 点击搜索 → B 店内搜索输入页
                → 关键词搜索 → C 结果列表 / 「暂无相关」
                    → 点击商品 → 商品详情
```

---

## 10. 与下单、会员的协作（浏览 vs 可购）

本模块 **仅浏览与关注**，**不在此** 加购或支付。用户从本模块进入 **商品详情** 后，须 **同时满足** **《关联需求分析》§11** 四条件方可加购/下单：

| # | 条件 | 不满足时提示方向 |
|---|------|------------------|
| 1 | 商品 = **出售中** | 商品已下架 / 不可购买 |
| 2 | 店铺 = **开业** | 店铺已停业 |
| 3 | 商品所属 **平台分类**（一级、二级）**均显示** | 商品不可购买 |
| 4 | **当前所选规格** 库存 **> 0** | 库存不足 / 缺货 |

| 场景 | 行为 |
|------|------|
| 访客浏览主页/列表/店内搜 | **允许** |
| 访客关注 | **引导登录** |
| 会员禁用 | **不可** 关注；**不可** 加购/购买（在详情页拦截） |
| 停业店商品展示 | **允许** 出现在列表；**禁止** 下单 |
| 店铺商品分类隐藏 | **不出导航**；若商品仍出售中且从 **全部** 可见，**可展示**；下单仍校验 **平台分类可见**（§11 第 3 条） |

---

## 11. 业务规则汇总

| 编号 | 规则 |
|------|------|
| **SH1** | 仅 **未删** 店铺可访问主页 |
| **SH2** | 列表与店内搜索 **仅出售中** 商品 |
| **SH3** | 店内导航 **仅用店铺商品分类**；**仅显示=是** |
| **SH4** | 分类下商品 **销量降序** |
| **SH5** | 关注须 **登录会员**；可取消 |
| **SH6** | 店内搜索 **仅本店商品名**；空关键词 **不搜** |
| **SH7** | 全站搜索 **不在** 本模块重复 |
| **SH8** | 停业 **可浏览、不可下单** |
| **SH9** | 评分/粉丝与 **商品详情进店区** 口径一致 |
| **SH10** | 点击商品 → **商品详情内页** |

---

## 12. 草稿对照与修订说明

| 草稿条目 | 本文档处理 |
|----------|------------|
| §1 店铺介绍：头像、名称、评分、粉丝 | §4；补充 **店铺描述**、停业展示 |
| §2 关注/取消关注 | §5 |
| §3 店内全部商品分类；同类按销量 | §6 |
| §4 店内搜索输入与结果 | §7 |
| §5 点击商品进详情 | §6.3 |
| §6 异常返回 code/msg/data | §8 **不纳入** |
| §7 技术栈 RuoYi/MySQL | **不纳入** |
| 未写：入口、平台店态、分类可见、全站搜索边界 | §2、§3、§10 补充 |

---

## 13. 非本期范围

| 项 | 说明 |
|------|------|
| 全站搜索、搜索历史 | **搜索页** 专册 |
| 平台商品分类馆 | **商品分类** 专册 |
| 店铺内 **按价格** 排序 Tab | 草稿 **未要求** |
| 商品卡片展示销量/库存/服务 | 与分类列表一致，**本期不展示** |
| 关注列表 **「我的关注」** 完整页 | 可归 **我的服务**；本模块仅关注按钮 |
| 店铺 **客服聊天、电话一键拨打** | 可选增强；**电话** 字段平台为选填 |
| 分享店铺、店铺二维码 | 草稿 **未要求** |
| 子管理员、商家端逻辑 | **商家/平台** 专册 |

---

## 14. 修订记录

| 版本 | 说明 |
|------|------|
| **v1.0** | 首版定稿：店铺介绍、关注、店内分类浏览、店内搜索、进详情；关联平台店铺/分类/商品与 C 端搜索/详情 |

---

*文档版本：v1.0（定稿）· 关联《关联需求分析.md》v1.6、《店铺管理功能需求.md》v1.3.6、《店铺商品分类功能需求.md》v1.1、《搜索页功能需求.md》v1.0、《商品详情内页功能需求.md》v1.0 · 草稿《店铺主页功能需求-草稿.md》保持不变。*
