佬司机|大宗交易平台
产品需求文档

买家工作台产品需求

采购需求、商品匹配、询价、交易进度和物流数据的工作台规则。

进入买家端原型

买家工作台产品需求

1. 目标与范围

工作台围绕买家采购需求提供四类能力:

  1. 管理采购需求及采购指标。
  2. 根据需求匹配可供商品,并按价格推荐。
  3. 查看商品信息并发起询价。
  4. 查看采购数据、订单进度和物流状态。

2. 数据归属与来源

所有数据按当前登录企业隔离,服务端返回业务 ID、名称、数值、单位、状态和更新时间。前端不得使用名称作为唯一标识,也不得根据页面文案推断业务状态。

数据来源用途
采购需求需求服务需求卡片、核心指标、匹配条件
商品及商品指标商品服务推荐商品、商品详情、匹配判断
询价询价服务询价结果、待回复报价
订单及节点订单服务成交进度、待办数量
物流记录物流服务物流状态与轨迹
采购统计统计服务采购数据总览

首次进入工作台时并行加载需求、待办、统计、订单和物流;默认选中最新需求,选中需求后加载该需求的推荐商品。新增、编辑、删除需求后重新计算推荐商品;询价、订单或物流状态变化后只刷新相关数据。

3. 采购需求

3.1 需求数据

采购需求包括:需求 ID、需求名称、采购品类、采购数量、数量单位、预算单价、价格单位、商品指标集合、状态和更新时间。

买家对每个指标填写一个具体采购值。未填写的指标不参与匹配,也不作为推荐依据。

3.2 需求列表与切换

  • 展示当前企业全部有效需求。
  • 每条需求展示品类、名称、采购数量和预算单价。
  • 点击需求后,将该需求设为当前需求,并同步刷新核心指标、推荐商品和询价上下文。
  • 默认选择最近更新的有效需求。

3.3 发布需求

发布字段:需求名称、采购品类、采购数量、预算单价和该品类的指标值。

  • 采购品类默认提供一个可选值。
  • 其他字段初始为空,由买家填写。
  • 切换品类后加载新品类的指标。
  • 必填项为空、格式错误或数值不合法时不允许提交,并返回字段级错误。
  • 发布成功后创建需求、刷新需求列表,并选中新需求。

3.4 编辑需求

  • 打开时回填需求全部字段。
  • 可修改名称、品类、数量、预算和指标值。
  • 保存成功后刷新需求和推荐商品。

3.5 删除需求

  • 删除前必须二次确认,并显示需求名称。
  • 删除成功后从需求列表移除,并切换到剩余需求。

4. 采购核心指标

  • 展示当前需求中买家已填写的全部指标,不限制展示数量。
  • 每项展示指标名称、买家采购值和单位。
  • 采购数量、预算单价作为需求基础字段单独展示,不计入商品指标总数。
  • 未填写的指标不展示。
  • 指标值为单一具体值,不使用上限、下限或区间表达。
  • 指标顺序按品类指标配置顺序,新增指标后自动纳入展示和匹配。

5. 商品匹配逻辑

5.1 商品数据

商品包括:商品 ID、名称、卖家 ID、卖家名称、单价、计价单位、库存、最小起售量、交易方式、交付方式、商品指标集合、附件、商品说明和商品状态。

商品指标包括:指标 ID、名称、具体值、单位、是否突出展示、是否可协商,以及卖家设置的可协商范围。

5.2 匹配前置条件

商品必须满足以下条件才进入候选集:

  1. 商品状态允许交易。
  2. 商品所属品类与需求品类一致。
  3. 商品库存满足需求数量或商品服务定义的可供量规则。
  4. 商品单价满足需求预算规则。
  5. 需求中每一个已填写指标都满足商品指标规则。

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. 验收要点

  • 需求列表、需求切换、新增、编辑、删除均可闭环。
  • 采购核心指标展示当前需求全部已填写指标,并与需求数据一致。
  • 未填写指标不参与匹配;已填写指标全部满足才进入推荐结果。
  • 固定指标按相等判断,可协商指标按卖家范围(含边界)判断。
  • 推荐商品按单价升序,默认详情为最低价商品。
  • 商品详情展示卖家商品指标、附件和说明;可协商和突出属性与卖家数据一致。
  • 询价成功创建一条记录且重复提交不重复创建。
  • 订单选择、阶段进度和物流状态均根据服务端数据联动。
  • 统计数据、待办数量在相关业务操作后刷新。
  • 空数据、无权限、失效、加载和错误状态均有明确处理。