Skip to content

02 - 完整 PRD 模板 + 范例

前言

上一篇讲了 PRD 的结构和写作规范,你已经知道"该写什么"。 这一篇给你两样东西:

  1. 一份通用 PRD 模板 — 可以直接复制到你的文档工具里使用
  2. 一份完整的 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. [步骤1]
    2. [步骤2]
    3. [步骤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.12026-04-01张小明初始草稿
v0.22026-04-08张小明根据评审反馈补充异常流程
v0.32026-04-12张小明增加数据埋点需求
v1.02026-04-20张小明终稿,通过技术评审

2. 背景与目的

当前问题

XX 商城目前不支持购物车功能,用户只能在商品详情页直接下单购买单件商品。 这导致以下问题:

  1. 客单价低:平均订单金额仅 89 元,用户无法一次购买多件商品
  2. 操作繁琐:购买多件商品需要多次重复下单、填写地址、支付
  3. 转化率低:用户浏览了平均 4.2 件商品,但单次只购买 1 件,购买转化率仅 12%
  4. 用户流失:竞品均已支持购物车,用户反馈"没有购物车很不方便"(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. 用户选择商品规格(如颜色、尺寸)
    2. 点击「加入购物车」按钮
    3. 系统检查该商品库存是否充足
    4. 库存充足时,将商品加入购物车,默认数量为 1
    5. 底部 Tab 购物车图标展示加购动画(商品缩略图飞入)
    6. 购物车角标数字 +1
    7. 页面底部弹出 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
  • 触发条件:用户在购物车页面点击「+」「-」按钮或直接输入数字
  • 前置条件:购物车中存在该商品
  • 基本流程
    1. 用户点击「+」增加数量 或 点击「-」减少数量 或 直接输入数字
    2. 系统实时校验库存
    3. 更新商品数量和小计金额
    4. 更新购物车底部合计金额
  • 异常流程
    • 数量减至 0:弹窗确认"确定要删除该商品吗?"
    • 超出库存:提示"库存不足,最多可购买 X 件",数量自动回退
    • 输入非法字符:忽略输入,保持原数量
    • 输入为 0 或负数:视同删除,弹窗确认
  • 业务规则
    • 数量最小值为 1,最大值为 99(或限购数)
    • 修改数量后,500ms 内无新操作则自动同步服务端(防抖)
    • 网络异常时,本地先更新 UI,网络恢复后同步
FR-003: 删除购物车商品
  • 优先级:P0
  • 触发条件:用户左滑商品出现删除按钮 或 点击编辑模式中的删除
  • 前置条件:购物车中存在该商品
  • 基本流程
    1. 用户通过左滑或编辑模式选择要删除的商品
    2. 系统弹窗确认"确定要删除该商品吗?"
    3. 用户点击「确定」
    4. 商品从购物车移除,列表更新
    5. 购物车角标和合计金额更新
  • 异常流程
    • 用户点击「取消」:关闭弹窗,无操作
    • 批量删除时,部分失败:提示"X 件删除成功,Y 件删除失败,请重试"
  • 业务规则
    • 支持单个删除和批量删除
    • 删除后支持"撤销"操作(底部 Toast "已删除,撤销",持续 5 秒)
    • 批量删除需先进入编辑模式
FR-004: 勾选结算
  • 优先级:P0
  • 触发条件:用户勾选商品后点击「去结算」按钮
  • 前置条件:购物车中存在可结算的商品
  • 基本流程
    1. 用户勾选需要购买的商品(支持全选/取消全选)
    2. 底部实时显示已选商品数量和合计金额
    3. 用户点击「去结算」
    4. 系统对已选商品统一进行库存校验
    5. 全部校验通过后,跳转到订单确认页
  • 异常流程
    • 部分商品库存变化:弹窗提示"以下商品库存有变化",列出变化商品
    • 部分商品已下架:弹窗提示"以下商品已下架",列出下架商品,自动取消勾选
    • 未勾选任何商品:「去结算」按钮置灰,不可点击
  • 业务规则
    • 默认全选所有可售商品
    • 失效商品(下架/无库存)不可勾选,展示在"失效商品"分组中
    • 合计金额仅计算已勾选的商品

结算流程图

  用户勾选商品
       |
       v
  点击「去结算」
       |
       v
  +----+----+
  | 库存校验 |
  +----+----+
   |       |
  全部     部分
  通过     异常
   |       |
   v       v
  跳转    弹窗提示异常商品
  订单       |
  确认    +--+--+
  页      |     |
          v     v
       用户    用户
       调整    取消
       后重试
FR-005: 库存检查
  • 优先级:P1
  • 触发条件:用户进入购物车页面时 / 商品库存变化时
  • 基本流程
    1. 用户进入购物车页面
    2. 系统对购物车中所有商品进行库存实时查询
    3. 对库存不足的商品,显示"仅剩 X 件"标签(红色)
    4. 对已无库存的商品,显示"已售罄",移入"失效商品"分组
    5. 对已下架的商品,显示"已下架",移入"失效商品"分组
  • 业务规则
    • 进入购物车时查一次,之后每 60 秒轮询一次
    • 库存不足阈值:当库存 <= 用户加购数量时,展示警告
FR-006: 价格变动提醒
  • 优先级:P1
  • 触发条件:购物车中商品的价格发生变化
  • 基本流程
    1. 用户进入购物车页面
    2. 系统比对当前价格与加购时价格
    3. 价格降低:商品行显示"比加入时降了 XX 元"(绿色标签)
    4. 价格上涨:商品行显示"比加入时涨了 XX 元"(红色标签)
  • 业务规则
    • 仅在用户进入购物车页面时展示,不做推送通知(V1.0)
    • 价格变动以 SKU 级别为准
    • 合计金额始终按最新价格计算

6. 非功能需求

类别要求说明
性能购物车页面首屏加载 < 2 秒4G 网络环境下,购物车含 20 件商品
性能加购操作响应 < 500ms从点击到 Toast 出现
性能修改数量响应 < 300msUI 即时更新,异步同步服务端
并发加购接口支持 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_viewPV进入购物车页面user_id, cart_item_count, total_amount
cart_page_leavePV离开购物车页面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/152 天功能可用性、Bug 数量无 P0/P1 Bug
灰度第一批5%05/192 天加购成功率、页面崩溃率成功率 > 99%,崩溃率 < 0.1%
灰度第二批20%05/213 天转化率、客单价、性能指标核心指标无显著下降
全量发布100%05/26-全部业务指标灰度阶段各指标达标

回滚方案

  • 触发条件:加购成功率 < 95%,或页面崩溃率 > 1%,或出现资金相关 Bug
  • 回滚方式:通过配置中心关闭购物车入口,恢复原"立即购买"流程
  • 回滚时间:15 分钟内完成
  • 数据处理:已加购的数据保留,待问题修复后恢复

10. 附录

术语表

术语说明
SKUStock Keeping Unit,库存量单位,一个商品的特定规格
SPUStandard Product Unit,标准化产品单元,一组 SKU 的集合
QPSQueries Per Second,每秒查询率
灰度发布按比例逐步放量发布,降低上线风险
角标App 底部 Tab 图标上的数字标记
Toast轻量级提示,短暂显示后自动消失
防抖在指定时间内多次触发操作,只执行最后一次
NPSNet 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 - 其他产品文档