买家工作台产品需求
1. 目标与范围
工作台围绕买家采购需求提供四类能力:
- 管理采购需求及采购指标。
- 根据需求匹配可供商品,并按价格推荐。
- 查看商品信息并发起询价。
- 查看采购数据、订单进度和物流状态。
2. 数据归属与来源
所有数据按当前登录企业隔离,服务端返回业务 ID、名称、数值、单位、状态和更新时间。前端不得使用名称作为唯一标识,也不得根据页面文案推断业务状态。
| 数据 | 来源 | 用途 |
|---|---|---|
| 采购需求 | 需求服务 | 需求卡片、核心指标、匹配条件 |
| 商品及商品指标 | 商品服务 | 推荐商品、商品详情、匹配判断 |
| 询价 | 询价服务 | 询价结果、待回复报价 |
| 订单及节点 | 订单服务 | 成交进度、待办数量 |
| 物流记录 | 物流服务 | 物流状态与轨迹 |
| 采购统计 | 统计服务 | 采购数据总览 |
首次进入工作台时并行加载需求、待办、统计、订单和物流;默认选中最新需求,选中需求后加载该需求的推荐商品。新增、编辑、删除需求后重新计算推荐商品;询价、订单或物流状态变化后只刷新相关数据。
3. 采购需求
3.1 需求数据
采购需求包括:需求 ID、需求名称、采购品类、采购数量、数量单位、预算单价、价格单位、商品指标集合、状态和更新时间。
买家对每个指标填写一个具体采购值。未填写的指标不参与匹配,也不作为推荐依据。
3.2 需求列表与切换
- 展示当前企业全部有效需求。
- 每条需求展示品类、名称、采购数量和预算单价。
- 点击需求后,将该需求设为当前需求,并同步刷新核心指标、推荐商品和询价上下文。
- 默认选择最近更新的有效需求。
3.3 发布需求
发布字段:需求名称、采购品类、采购数量、预算单价和该品类的指标值。
- 采购品类默认提供一个可选值。
- 其他字段初始为空,由买家填写。
- 切换品类后加载新品类的指标。
- 必填项为空、格式错误或数值不合法时不允许提交,并返回字段级错误。
- 发布成功后创建需求、刷新需求列表,并选中新需求。
3.4 编辑需求
- 打开时回填需求全部字段。
- 可修改名称、品类、数量、预算和指标值。
- 保存成功后刷新需求和推荐商品。
3.5 删除需求
- 删除前必须二次确认,并显示需求名称。
- 删除成功后从需求列表移除,并切换到剩余需求。
4. 采购核心指标
- 展示当前需求中买家已填写的全部指标,不限制展示数量。
- 每项展示指标名称、买家采购值和单位。
- 采购数量、预算单价作为需求基础字段单独展示,不计入商品指标总数。
- 未填写的指标不展示。
- 指标值为单一具体值,不使用上限、下限或区间表达。
- 指标顺序按品类指标配置顺序,新增指标后自动纳入展示和匹配。
5. 商品匹配逻辑
5.1 商品数据
商品包括:商品 ID、名称、卖家 ID、卖家名称、单价、计价单位、库存、最小起售量、交易方式、交付方式、商品指标集合、附件、商品说明和商品状态。
商品指标包括:指标 ID、名称、具体值、单位、是否突出展示、是否可协商,以及卖家设置的可协商范围。
5.2 匹配前置条件
商品必须满足以下条件才进入候选集:
- 商品状态允许交易。
- 商品所属品类与需求品类一致。
- 商品库存满足需求数量或商品服务定义的可供量规则。
- 商品单价满足需求预算规则。
- 需求中每一个已填写指标都满足商品指标规则。
5.3 指标匹配规则
只校验买家已填写的指标,未填写指标忽略。
- 卖家指标为固定值:商品指标值必须等于买家采购值。
- 卖家指标为可协商:买家采购值位于卖家设置的可协商范围内(含边界)即满足。
- 商品缺少买家已填写的指标,视为不满足。
- 任意一个已填写指标不满足,商品不进入推荐结果。
匹配结果只有“符合”或“不符合”。
5.4 推荐排序
候选商品按单价数值从低到高排序。单价相同时按商品 ID 的稳定顺序排序,保证刷新和分页顺序一致。默认选择排序第一的商品。
可用以下规则实现:
candidate = 商品状态可交易
AND 品类相同
AND 库存/可供量满足需求数量
AND 单价满足预算
AND every(需求已填写指标, match(商品指标, 需求值))
recommended = sort(candidate, 商品单价 ASC, 商品ID ASC)
6. 推荐商品与商品详情
6.1 推荐列表
- 展示当前需求的候选商品总数。
- 商品卡片展示商品名称、供应商名称和单价。
- 列表支持按页查看;点击商品只切换当前商品,不改变当前需求。
- 当前商品默认为推荐排序第一项。
- 切换需求后重新查询结果,列表回到第一页并选择新结果第一项。
- “全部商品”只作为后续入口保留,不在本期定义独立页面。
- 没有候选商品时返回空结果,不保留上一需求的商品详情。
6.2 商品详情
商品详情展示当前商品的:商品名称、卖家、单价、库存、最小起售量、交易方式、交付方式、商品指标、附件和商品说明。
商品指标展示卖家实际供货值和单位:
- 卖家设置为突出指标的,在该指标值旁展示突出标记。
- 卖家设置为可协商指标的,在该指标旁展示“可协商”。
没有附件或说明时返回空值,前端展示对应空状态。
7. 询价(这版不开发)
询价对象包括需求 ID、商品 ID、卖家 ID、询价数量、期望到货日期、补充说明和商品价格快照。
- 询价数量必填,默认使用当前需求采购数量,且必须大于 0、满足商品最小起售量。
- 期望到货日期和补充说明选填。
- 提交前校验商品仍可交易、价格快照仍有效;失效时要求刷新商品。
- 提交成功后生成询价记录,刷新待回复报价和采购统计相关数据。
- 提交请求必须幂等,重复点击不得创建重复询价。
8. 快捷待办
待办由服务端聚合返回,包含待回复报价、待确认订单、待签署合同、待付款和待收货。
- 展示名称和未处理数量。
- 点击待办进入对应列表,并携带相应状态筛选条件。
- 数量为 0 时返回 0;无权限的待办不返回。
9. 采购数据总览
统计服务返回当前企业全部有效历史数据:进行中需求、获得报价、待确认订单、采购成交次数、采购总量和采购总额。
- 展示服务端返回的累计结果。
- 没有数据时展示 0。
- 询价、订单、需求变化后刷新受影响的统计项。
10. 成交进度
订单数据包括订单 ID、商品名称、卖家、订单日期、当前阶段、各阶段时间和当前可执行动作。
进度阶段固定为:询价、报价、订单确认、合同签署、付款、发货、收货。
- 当前订单以商品名称为主要识别信息。
- 订单选择器展开后,选项以商品名称为主要信息,同时展示订单编号、卖家和日期。
- 选择订单后同步刷新商品名称、卖家、阶段状态、当前说明和可执行动作。
- 已完成阶段、当前阶段和未开始阶段必须根据订单状态动态计算。
- 点击跟进进入当前订单待处理动作;无待处理动作时进入订单详情。
- 没有进行中订单时返回空状态,并提供历史订单入口。
11. 物流服务
物流服务返回物流 ID、订单 ID、商品、数量、状态、装货地、卸货地、承运信息、预计到达时间和轨迹节点。
- 状态分为待发货、运输中、待签收。
- 状态数量由服务端聚合返回。
- 切换状态后按状态真实筛选物流记录。
- 物流记录展示商品、数量、路线、承运信息和最新节点。
- 查看物流时展示完整轨迹节点及时间、地点、状态。
- 物流状态更新后刷新物流和相关待办数量。
12. 必须支持的状态与错误处理
- 首次加载:各接口独立加载,单个接口失败不阻塞其他板块。
- 无需求:返回空需求结果,允许直接发布需求。
- 无匹配商品:返回空候选集,允许回到需求编辑。
- 无权限:不返回对应数据和操作权限。
- 数据失效:商品、需求或订单状态变化时提示并刷新对应数据。
- 提交中:服务端处理期间禁止重复提交,保留用户输入。
- 网络或服务错误:返回可重试错误,不能清空已有数据。
13. 验收要点
- 需求列表、需求切换、新增、编辑、删除均可闭环。
- 采购核心指标展示当前需求全部已填写指标,并与需求数据一致。
- 未填写指标不参与匹配;已填写指标全部满足才进入推荐结果。
- 固定指标按相等判断,可协商指标按卖家范围(含边界)判断。
- 推荐商品按单价升序,默认详情为最低价商品。
- 商品详情展示卖家商品指标、附件和说明;可协商和突出属性与卖家数据一致。
- 询价成功创建一条记录且重复提交不重复创建。
- 订单选择、阶段进度和物流状态均根据服务端数据联动。
- 统计数据、待办数量在相关业务操作后刷新。
- 空数据、无权限、失效、加载和错误状态均有明确处理。