主题
02 - 完整 PRD 模板 + 范例
前言
上一篇讲了 PRD 的结构和写作规范,你已经知道"该写什么"。 这一篇给你两样东西:
- 一份通用 PRD 模板 — 可以直接复制到你的文档工具里使用
- 一份完整的 PRD 范例 — 以「电商购物车」功能为例,手把手演示怎么写
第一部分:通用 PRD 模板
以下模板可以直接复制使用。方括号
[xxx]表示需要替换的内容。
[产品名称] - [功能名称] PRD
1. 文档信息
| 字段 | 内容 |
|---|---|
| 文档标题 | [功能名称] 产品需求文档 |
| 版本号 | v[X.Y] |
| 作者 | [姓名] |
| 创建日期 | [YYYY-MM-DD] |
| 最后更新 | [YYYY-MM-DD] |
| 审核人 | [姓名(职位)] |
| 文档状态 | [草稿 / 评审中 / 已通过 / 开发中 / 已上线 / 已归档] |
修改记录:
| 版本 | 日期 | 修改人 | 修改内容 |
|---|---|---|---|
| v1.0 | [YYYY-MM-DD] | [姓名] | 初始版本 |
2. 背景与目的
当前问题: [描述现状中存在的问题,最好用数据说明问题的严重性]
解决方案: [概述本次需求要做什么来解决上述问题]
预期收益: [做完之后,预计带来什么业务价值]
3. 目标与成功指标
| 指标名称 | 当前基线 | 目标值 | 衡量周期 | 数据来源 |
|---|---|---|---|---|
| [指标1] | [当前值] | [目标值] | [上线后X天] | [数据平台] |
| [指标2] | [当前值] | [目标值] | [上线后X天] | [数据平台] |
4. 用户故事
| 编号 | 用户角色 | 用户故事 | 优先级 |
|---|---|---|---|
| US-01 | [角色] | 作为[角色],我想[做什么],以便[获得什么价值] | P[0-3] |
| US-02 | [角色] | 作为[角色],我想[做什么],以便[获得什么价值] | P[0-3] |
5. 功能需求
FR-001: [功能名称]
- 优先级:P[0-3]
- 触发条件:[用户做了什么]
- 前置条件:[需要满足什么条件]
- 基本流程:
- [步骤1]
- [步骤2]
- [步骤3]
- 异常流程:
- [异常场景1]:[处理方式]
- [异常场景2]:[处理方式]
- 业务规则:
- [规则1]
- [规则2]
- 验收标准:
- [ ] [验收条件1]
- [ ] [验收条件2]
6. 非功能需求
| 类别 | 要求 | 说明 |
|---|---|---|
| 性能 | [具体要求] | [补充说明] |
| 安全 | [具体要求] | [补充说明] |
| 兼容性 | [具体要求] | [补充说明] |
| 可用性 | [具体要求] | [补充说明] |
7. 交互说明与原型链接
- 原型链接:[Figma/Axure/墨刀 链接]
- 页面流转图:[附图或链接]
- 关键交互说明:
- [页面/组件]:[交互描述]
8. 数据埋点需求
| 事件名称 | 事件类型 | 触发时机 | 携带参数 | 备注 |
|---|---|---|---|---|
| [event_name] | [PV/点击/曝光/业务] | [何时触发] | [参数列表] | [备注] |
9. 上线计划与灰度策略
| 阶段 | 比例 | 时间 | 关注指标 | 晋级条件 |
|---|---|---|---|---|
| 内测 | 团队内 | [日期] | [指标] | 无 P0 Bug |
| 灰度 | [X]% | [日期] | [指标] | 核心指标无下降 |
| 全量 | 100% | [日期] | [指标] | 灰度阶段无异常 |
回滚方案:[出现什么问题时回滚,如何回滚]
10. 附录
术语表:
| 术语 | 说明 |
|---|---|
| [术语1] | [解释] |
参考文档:
- 文档名称(链接)
模板到此结束。下面开始实战范例。
第二部分:电商购物车 PRD 范例
以下是一份以「电商购物车」为场景的完整 PRD,展示上面模板的实际填写效果。
XX 商城 - 购物车功能 PRD
1. 文档信息
| 字段 | 内容 |
|---|---|
| 文档标题 | 购物车功能产品需求文档 |
| 版本号 | v1.0 |
| 作者 | 张小明 |
| 创建日期 | 2026-04-01 |
| 最后更新 | 2026-04-20 |
| 审核人 | 李工(技术负责人)、王姐(设计负责人) |
| 文档状态 | 已通过 |
修改记录:
| 版本 | 日期 | 修改人 | 修改内容 |
|---|---|---|---|
| v0.1 | 2026-04-01 | 张小明 | 初始草稿 |
| v0.2 | 2026-04-08 | 张小明 | 根据评审反馈补充异常流程 |
| v0.3 | 2026-04-12 | 张小明 | 增加数据埋点需求 |
| v1.0 | 2026-04-20 | 张小明 | 终稿,通过技术评审 |
2. 背景与目的
当前问题:
XX 商城目前不支持购物车功能,用户只能在商品详情页直接下单购买单件商品。 这导致以下问题:
- 客单价低:平均订单金额仅 89 元,用户无法一次购买多件商品
- 操作繁琐:购买多件商品需要多次重复下单、填写地址、支付
- 转化率低:用户浏览了平均 4.2 件商品,但单次只购买 1 件,购买转化率仅 12%
- 用户流失:竞品均已支持购物车,用户反馈"没有购物车很不方便"(NPS 调研中排名第2的吐槽点)
解决方案:
上线购物车功能,允许用户将多件商品加入购物车,统一管理和结算。
预期收益:
- 客单价从 89 元提升至 125 元(+40%)
- 购买转化率从 12% 提升至 18%(+50%)
- 用户单次购买多件商品的比例从 5% 提升至 30%
3. 目标与成功指标
| 指标名称 | 当前基线 | 目标值 | 衡量周期 | 数据来源 |
|---|---|---|---|---|
| 客单价 | 89 元 | 125 元 | 上线后 30 天 | 订单数据平台 |
| 购买转化率 | 12% | 18% | 上线后 30 天 | 埋点数据 |
| 多件购买比例 | 5% | 30% | 上线后 30 天 | 订单数据平台 |
| 购物车使用率 | 0(新功能) | 60% | 上线后 30 天 | 埋点数据 |
指标定义:
- 购买转化率 = 完成支付的用户数 / 加购用户数
- 购物车使用率 = 通过购物车下单的用户数 / 所有下单用户数
- 多件购买比例 = 包含 2 件及以上商品的订单数 / 总订单数
4. 用户故事
| 编号 | 用户角色 | 用户故事 | 优先级 |
|---|---|---|---|
| US-01 | 购物用户 | 作为购物用户,我想把喜欢的商品加入购物车,以便稍后统一结算 | P0 |
| US-02 | 购物用户 | 作为购物用户,我想修改购物车中商品的购买数量,以便按需购买 | P0 |
| US-03 | 购物用户 | 作为购物用户,我想删除购物车中不需要的商品,以便购物车保持整洁 | P0 |
| US-04 | 购物用户 | 作为购物用户,我想勾选部分商品进行结算,以便只买当前需要的 | P0 |
| US-05 | 购物用户 | 作为购物用户,我想在商品库存不足时收到提示,以便及时调整购买计划 | P1 |
| US-06 | 购物用户 | 作为购物用户,我想在商品价格变动时收到提醒,以便做出购买决策 | P1 |
5. 功能需求
FR-001: 加入购物车
- 优先级:P0
- 触发条件:用户在商品详情页点击「加入购物车」按钮
- 前置条件:
- 用户已登录
- 商品处于在售状态(未下架、未售罄)
- 基本流程:
- 用户选择商品规格(如颜色、尺寸)
- 点击「加入购物车」按钮
- 系统检查该商品库存是否充足
- 库存充足时,将商品加入购物车,默认数量为 1
- 底部 Tab 购物车图标展示加购动画(商品缩略图飞入)
- 购物车角标数字 +1
- 页面底部弹出 Toast:"已加入购物车",持续 2 秒后消失
- 异常流程:
- 用户未登录:弹出登录弹窗,登录成功后自动完成加购
- 商品已下架:Toast 提示"抱歉,该商品已下架",按钮置灰
- 库存不足:Toast 提示"库存不足,当前仅剩 X 件"
- 已达限购数:Toast 提示"该商品限购 X 件,购物车已有 Y 件"
- 购物车已满(200种):Toast 提示"购物车已满,请先清理后再加购"
- 网络异常:Toast 提示"网络不给力,请稍后重试"
- 业务规则:
- 同一 SKU 重复加购时,数量累加(不新增一行)
- 单个 SKU 购买上限为 99 件,或商家设定的限购数(取较小值)
- 购物车最多容纳 200 种不同 SKU
- 未登录用户的加购数据存储在本地,登录后自动合并到服务端
加购流程图:
用户点击「加入购物车」
|
v
+------+------+
| 用户已登录? |
+------+------+
| |
是 否
| |
v v
+----------+ 弹出登录弹窗
| 检查商品 | |
| 状态 | 登录成功
+----+-----+ |
| |
v v
+-----+-----+<---+
| 商品在售? |
+-----+-----+
| |
是 否
| |
v v
+-----+-----+ 提示"已下架"
| 检查库存 |
+-----+-----+
| |
充足 不足
| |
v v
+-----+-----+ 提示"库存不足
| 检查限购 | 仅剩X件"
+-----+-----+
| |
未超限 已超限
| |
v v
加购成功 提示"限购X件"
|
v
购物车角标+1
Toast"已加入购物车"FR-002: 修改购物车商品数量
- 优先级:P0
- 触发条件:用户在购物车页面点击「+」「-」按钮或直接输入数字
- 前置条件:购物车中存在该商品
- 基本流程:
- 用户点击「+」增加数量 或 点击「-」减少数量 或 直接输入数字
- 系统实时校验库存
- 更新商品数量和小计金额
- 更新购物车底部合计金额
- 异常流程:
- 数量减至 0:弹窗确认"确定要删除该商品吗?"
- 超出库存:提示"库存不足,最多可购买 X 件",数量自动回退
- 输入非法字符:忽略输入,保持原数量
- 输入为 0 或负数:视同删除,弹窗确认
- 业务规则:
- 数量最小值为 1,最大值为 99(或限购数)
- 修改数量后,500ms 内无新操作则自动同步服务端(防抖)
- 网络异常时,本地先更新 UI,网络恢复后同步
FR-003: 删除购物车商品
- 优先级:P0
- 触发条件:用户左滑商品出现删除按钮 或 点击编辑模式中的删除
- 前置条件:购物车中存在该商品
- 基本流程:
- 用户通过左滑或编辑模式选择要删除的商品
- 系统弹窗确认"确定要删除该商品吗?"
- 用户点击「确定」
- 商品从购物车移除,列表更新
- 购物车角标和合计金额更新
- 异常流程:
- 用户点击「取消」:关闭弹窗,无操作
- 批量删除时,部分失败:提示"X 件删除成功,Y 件删除失败,请重试"
- 业务规则:
- 支持单个删除和批量删除
- 删除后支持"撤销"操作(底部 Toast "已删除,撤销",持续 5 秒)
- 批量删除需先进入编辑模式
FR-004: 勾选结算
- 优先级:P0
- 触发条件:用户勾选商品后点击「去结算」按钮
- 前置条件:购物车中存在可结算的商品
- 基本流程:
- 用户勾选需要购买的商品(支持全选/取消全选)
- 底部实时显示已选商品数量和合计金额
- 用户点击「去结算」
- 系统对已选商品统一进行库存校验
- 全部校验通过后,跳转到订单确认页
- 异常流程:
- 部分商品库存变化:弹窗提示"以下商品库存有变化",列出变化商品
- 部分商品已下架:弹窗提示"以下商品已下架",列出下架商品,自动取消勾选
- 未勾选任何商品:「去结算」按钮置灰,不可点击
- 业务规则:
- 默认全选所有可售商品
- 失效商品(下架/无库存)不可勾选,展示在"失效商品"分组中
- 合计金额仅计算已勾选的商品
结算流程图:
用户勾选商品
|
v
点击「去结算」
|
v
+----+----+
| 库存校验 |
+----+----+
| |
全部 部分
通过 异常
| |
v v
跳转 弹窗提示异常商品
订单 |
确认 +--+--+
页 | |
v v
用户 用户
调整 取消
后重试FR-005: 库存检查
- 优先级:P1
- 触发条件:用户进入购物车页面时 / 商品库存变化时
- 基本流程:
- 用户进入购物车页面
- 系统对购物车中所有商品进行库存实时查询
- 对库存不足的商品,显示"仅剩 X 件"标签(红色)
- 对已无库存的商品,显示"已售罄",移入"失效商品"分组
- 对已下架的商品,显示"已下架",移入"失效商品"分组
- 业务规则:
- 进入购物车时查一次,之后每 60 秒轮询一次
- 库存不足阈值:当库存 <= 用户加购数量时,展示警告
FR-006: 价格变动提醒
- 优先级:P1
- 触发条件:购物车中商品的价格发生变化
- 基本流程:
- 用户进入购物车页面
- 系统比对当前价格与加购时价格
- 价格降低:商品行显示"比加入时降了 XX 元"(绿色标签)
- 价格上涨:商品行显示"比加入时涨了 XX 元"(红色标签)
- 业务规则:
- 仅在用户进入购物车页面时展示,不做推送通知(V1.0)
- 价格变动以 SKU 级别为准
- 合计金额始终按最新价格计算
6. 非功能需求
| 类别 | 要求 | 说明 |
|---|---|---|
| 性能 | 购物车页面首屏加载 < 2 秒 | 4G 网络环境下,购物车含 20 件商品 |
| 性能 | 加购操作响应 < 500ms | 从点击到 Toast 出现 |
| 性能 | 修改数量响应 < 300ms | UI 即时更新,异步同步服务端 |
| 并发 | 加购接口支持 1000 QPS | 大促峰值预估 |
| 安全 | 购物车数据用户隔离 | 用户只能看到/操作自己的购物车 |
| 安全 | 价格以服务端返回为准 | 前端不可篡改价格 |
| 安全 | 接口做频率限制 | 同一用户 1 秒内最多 5 次加购请求 |
| 兼容性 | iOS 13+, Android 8.0+ | 覆盖 96% 用户 |
| 兼容性 | Web: Chrome/Safari/Firefox 最新 2 版本 | 桌面端 |
| 可用性 | 购物车服务可用性 >= 99.9% | SLA 标准 |
| 数据一致性 | 多端购物车数据实时同步 | App 加购后,Web 可见 |
7. 交互说明
购物车页面布局:
+--------------------------------------------------+
| <- 购物车 (3) [编辑] |
+--------------------------------------------------+
| |
| +----------------------------------------------+|
| | [x] 全选 ||
| +----------------------------------------------+|
| | ||
| | +------------------------------------------+ ||
| | | [x] +------+ 商品名称AAAAAA | ||
| | | | 图片 | 规格:红色 / XL | ||
| | | +------+ ¥199.00 | ||
| | | [-] 2 [+] | ||
| | | 比加入时降了5元 (绿色标签) | ||
| | +------------------------------------------+ ||
| | ||
| | +------------------------------------------+ ||
| | | [x] +------+ 商品名称BBBBBB | ||
| | | | 图片 | 规格:黑色 / M | ||
| | | +------+ ¥89.00 | ||
| | | [-] 1 [+] | ||
| | | 仅剩3件 (红色标签) | ||
| | +------------------------------------------+ ||
| | ||
| | --- 失效商品 (1) --- ||
| | ||
| | +------------------------------------------+ ||
| | | [ ] +------+ 商品名称CCCCCC (已下架) | ||
| | | | 图片 | 规格:白色 / S | ||
| | | +------+ ¥59.00 [删除] | ||
| | +------------------------------------------+ ||
| | ||
| +----------------------------------------------+|
| |
+--------------------------------------------------+
| [x] 全选 合计:¥487.00 [去结算(3)] |
+--------------------------------------------------+购物车商品状态图:
+------------------+
| |
加购成功 --> | 正常状态 |
| 可勾选、可修改 |
+--------+---------+
|
+---------------+---------------+
| | |
v v v
+------+------+ +-----+------+ +------+------+
| 库存不足 | | 价格变动 | | 已下架 |
| 仅剩X件 | | 涨价/降价 | | 已售罄 |
| (仍可购买) | | (仍可购买) | | (不可购买) |
+------+------+ +-----+------+ +------+------+
| | |
v v v
仍在正常商品区 仍在正常商品区 移至失效商品区
显示库存警告 显示价格变动标签 置灰,不可勾选 商品状态完整流转图:
[正常] --库存<=加购数--> [库存不足] --库存=0--> [售罄/失效]
| | |
|--商品下架--------------|--商品下架------------> [下架/失效]
| |
|--价格变化--> [价格变动] --价格恢复--> [正常]
| |
|--用户删除--> [已删除] |--用户删除--> [已删除]8. 数据埋点需求
页面级埋点
| 事件名称 | 事件类型 | 触发时机 | 携带参数 |
|---|---|---|---|
| cart_page_view | PV | 进入购物车页面 | user_id, cart_item_count, total_amount |
| cart_page_leave | PV | 离开购物车页面 | user_id, stay_duration, is_checkout |
操作级埋点
| 事件名称 | 事件类型 | 触发时机 | 携带参数 |
|---|---|---|---|
| cart_add_click | 点击 | 点击加入购物车按钮 | user_id, product_id, sku_id, price, source_page |
| cart_add_success | 业务 | 加购成功 | user_id, product_id, sku_id, price, quantity, cart_total_count |
| cart_add_fail | 业务 | 加购失败 | user_id, product_id, fail_reason |
| cart_quantity_change | 点击 | 修改商品数量 | user_id, product_id, old_qty, new_qty |
| cart_delete_click | 点击 | 点击删除 | user_id, product_id, delete_type(单删/批量) |
| cart_delete_undo | 点击 | 点击撤销删除 | user_id, product_id |
| cart_select_change | 点击 | 勾选/取消勾选 | user_id, product_id, is_selected, select_type(单选/全选) |
| cart_checkout_click | 点击 | 点击去结算 | user_id, selected_count, total_amount |
| cart_checkout_fail | 业务 | 结算校验失败 | user_id, fail_reason, affected_products |
曝光级埋点
| 事件名称 | 事件类型 | 触发时机 | 携带参数 |
|---|---|---|---|
| cart_item_expose | 曝光 | 购物车商品进入可视区域 | user_id, product_id, position |
| cart_stock_warning_expose | 曝光 | 库存不足标签曝光 | user_id, product_id, stock_count |
| cart_price_change_expose | 曝光 | 价格变动标签曝光 | user_id, product_id, old_price, new_price |
| cart_invalid_item_expose | 曝光 | 失效商品曝光 | user_id, product_id, invalid_reason |
9. 上线计划与灰度策略
预计时间线:
04/21 05/05 05/12 05/15 05/19 05/26
| | | | | |
v v v v v v
需求评审 开发完成 测试完成 内部验收 灰度发布 全量上线
5%->20% 100%灰度计划:
| 阶段 | 比例 | 日期 | 持续时间 | 关注指标 | 晋级/回滚条件 |
|---|---|---|---|---|---|
| 内部测试 | 公司内部 | 05/15 | 2 天 | 功能可用性、Bug 数量 | 无 P0/P1 Bug |
| 灰度第一批 | 5% | 05/19 | 2 天 | 加购成功率、页面崩溃率 | 成功率 > 99%,崩溃率 < 0.1% |
| 灰度第二批 | 20% | 05/21 | 3 天 | 转化率、客单价、性能指标 | 核心指标无显著下降 |
| 全量发布 | 100% | 05/26 | - | 全部业务指标 | 灰度阶段各指标达标 |
回滚方案:
- 触发条件:加购成功率 < 95%,或页面崩溃率 > 1%,或出现资金相关 Bug
- 回滚方式:通过配置中心关闭购物车入口,恢复原"立即购买"流程
- 回滚时间:15 分钟内完成
- 数据处理:已加购的数据保留,待问题修复后恢复
10. 附录
术语表:
| 术语 | 说明 |
|---|---|
| SKU | Stock Keeping Unit,库存量单位,一个商品的特定规格 |
| SPU | Standard Product Unit,标准化产品单元,一组 SKU 的集合 |
| QPS | Queries Per Second,每秒查询率 |
| 灰度发布 | 按比例逐步放量发布,降低上线风险 |
| 角标 | App 底部 Tab 图标上的数字标记 |
| Toast | 轻量级提示,短暂显示后自动消失 |
| 防抖 | 在指定时间内多次触发操作,只执行最后一次 |
| NPS | Net Promoter Score,净推荐值,衡量用户满意度 |
参考文档:
- XX 商城产品架构文档
- 商品中心接口文档
- 订单系统接口文档
- UI 设计稿:[Figma 链接]
第三部分:模板使用技巧
技巧 1:按项目规模裁剪
不是每个需求都需要写 10 个章节。参考以下裁剪建议:
| 项目规模 | 必写章节 | 可选章节 |
|---|---|---|
| 小需求(1-3 天工作量) | 背景、功能需求、验收标准 | 其余可简化 |
| 中需求(1-2 周工作量) | 1-7 章全写 | 8-10 视情况 |
| 大需求(1个月以上) | 全部 10 章 | 每章都要详细 |
技巧 2:善用文档工具
| 工具 | 适用场景 | 优势 |
|---|---|---|
| 飞书文档 | 日常协作 | 实时协作、评论方便 |
| Confluence | 大型团队 | 版本管理、权限控制 |
| Notion | 小型团队 | 模板丰富、灵活度高 |
| 语雀 | 技术团队 | 支持 Markdown、知识库 |
| Google Docs | 外企 | 协作体验好 |
技巧 3:建立你的 PRD 知识库
PRD 知识库结构建议:
/产品文档
/2026-Q2
/购物车功能
- PRD v1.0.md
- 评审会议记录.md
- 设计稿链接.md
- 上线复盘.md
/搜索优化
- PRD v1.0.md
- ...
/2026-Q1
/...
/模板
- PRD 通用模板.md
- 竞品分析模板.md
- 数据埋点模板.md本篇小结
+--------------------------------------------------------------+
| 本篇核心要点 |
+--------------------------------------------------------------+
| |
| 1. 通用 PRD 模板包含 10 大章节,可直接复制使用 |
| 2. 模板不是死的 -- 根据项目规模灵活裁剪 |
| 3. 购物车 PRD 范例展示了完整的写作过程 |
| 4. 重点关注:异常流程、状态流转、数据埋点 |
| 5. 建立自己的 PRD 知识库,积累写作经验 |
| |
+--------------------------------------------------------------+上一篇: 01 - PRD 的结构与写作规范
下一篇: 03 - 其他产品文档