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

管理端完整产品需求文档

企业准入、商品底座、交易资金、风险与平台治理的实施规格。

功能脑图

管理端完整产品需求文档功能脑图

从功能域向下展开到可开发功能点,便于产品、设计、开发和测试快速确认范围。

管理端完整产品需求文档

企业治理

企业管理企业认证员工权限风险画像操作审计

商品底座

基础字段品类模型版本发布商品审核库存异常

交易监管

询价追踪交易状态合同管理履约监控售后协调

资金监管

支付对账服务费担保结算退款补款提现审核发票管理

数据运营

市场指标第三方价格源推荐配置通知配置数据质量

平台治理

风控规则角色权限系统配置异常重试审计日志
跨角色流程

平台治理全流程

横向表示业务阶段,纵向表示参与角色;同一列为并行协作与状态交接,不代表所有动作机械串行。

角色
准入与配置
审核与监控
资金与履约
异常处置
审计改进
业务企业
提交企业和商品资料
处理询价、交易、合同
付款、发货、收货
提交或回应异常证据
查看处理结果
运营审核
审核企业;配置字段与商品模型
审核商品;监控异常交易
配置市场数据源与通知
受理投诉并组织协调
优化规则和页面配置
财务风控
建立企业风险画像
监控高风险报价与交易
对账、冻结、结算、提现审核
按协调结果执行退款或解冻
保留资金和风控审计轨迹
系统服务
权限校验和版本发布
状态机、幂等、通知
支付回调、物流同步
异常重试和人工接管
日志、指标和数据质量告警
关键分支与非正常路径
  • 审核、资金、风控和权限变更必须记录操作人、前后值、时间与原因。
  • 任何人工改状态都必须满足状态机约束并产生双方可见通知。

管理端执行文档

目标

支持平台认证、配置、审核、交易监管、资金对账、投诉协调和风险控制,不代替企业完成交易。

导航分组

  • 运营:工作台、企业、认证、商品审核。
  • 商品底座:字段/参数、商品模型、模型预览。
  • 交易:交易、合同、账户资金、服务费、发票、投诉客服。
  • 数据:市场配置、第三方价格源、消息通知。
  • 治理:风控、权限、系统设置、审计日志。

管理动作规则

  • 企业冻结、权限变更、模型发布、商品驳回和资金调整必须二次确认并记录原因。
  • 平台人员不得代企业接受报价、签合同、付款或确认收货。
  • 客服只协调投诉并记录双方确认结果,不单方面判责。
  • 商品模型发布后版本化,历史商品与交易不得被新配置覆盖。
  • 管理端不开放注册,管理员账号由超级管理员预置。

页面标准

  • 左侧导航、顶部工具栏、数据表格和右侧详情抽屉为主要结构。
  • 工作台卡片必须进入处理队列。
  • 敏感信息按权限隐藏或脱敏。
  • 所有配置页提供预览、影响说明和保存结果。

账户、企业认证与权限模块 PRD

模块目标

建立账号、企业、企业成员、认证和权限的统一身份底座,使一个手机号可安全加入多个企业,并按企业、业务端、角色和数据范围访问业务。

角色与页面

角色页面或入口主要动作
游客登录、注册、忘记密码手机号验证、设置密码
企业员工企业选择、业务端选择进入授权企业与端
企业管理员企业资料、成员与权限邀请、停用、分配角色
企业资料管理员企业认证与资料编辑提交资料、查看审核结果
平台审核员企业认证队列与详情通过、驳回、要求补充
风控人员企业风险详情限制、冻结、解除

核心对象

账号、登录凭证、验证码挑战、企业、企业资格、企业成员关系、角色、权限、数据范围、企业认证申请、认证材料、审核记录、安全事件。

业务规则

  • 手机号为中国大陆 11 位,验证码 6 位、5 分钟有效、60 秒后可重发。
  • 支持验证码登录和密码登录;密码由服务端校验,不在前端保存固定密码。
  • 登录与注册为两个独立页面:登录页的“注册企业账号”必须进入注册页,不得复用登录表单或仅切换登录状态。注册至少采集手机号、短信验证码、企业名称、统一社会信用代码和登录密码,并要求用户主动同意协议。
  • 买家完成企业账号注册后视为已登录但尚未完成企业认证,系统返回商品大厅并主动打开“完善采购偏好”弹窗。用户可跳过并继续浏览;联系卖家、发布采购需求、询价、出价和购买等交易动作仍按认证规则拦截。
  • 密码 8—20 位且包含字母和数字;连续错误 5 次锁定密码登录 15 分钟。
  • 一个账号可加入多个企业;一个企业可同时拥有买家与卖家资格。
  • 单企业单端直接进入;多企业先选择企业;双端资格再选择业务端。
  • 未认证企业可浏览公开内容,不能询价、出价、立即购买、成交确认、签合同、付款、发布商品或绑定对公账户。
  • 企业主体字段或营业执照变更后进入重新审核;历史交易继续只读或按风控策略履约。
  • 修改密码需原密码和当前手机号验证码;换绑手机号需原密码、当前手机号验证码和新手机号验证码。
  • 全局页头不展示退出;退出登录位于企业中心或个人中心的设置页。
  • 买家端企业中心不展示“当前角色”、企业联系人或联系信息;编辑企业信息仅维护企业名称、统一社会信用代码、注册地址和营业执照。企业成员与角色仍由独立权限模块管理,不混入买家企业资料页面。
  • 买家端企业中心按“页面标题与账户设置—认证提示—企业与账号概览—采购业务—财务与售后—我的收藏”组织。企业概览只展示已存在的企业资料和累计采购交易、进行中交易、收藏商品、收藏企业四项数据,不展示采购金额、成交额、同比、趋势、通知铃铛或加入平台时间。
  • 采购业务入口固定为采购需求、采购交易、采购偏好、地址管理;财务与售后入口固定为付款记录、发票管理、投诉与协调。入口使用图标、标题和一句说明的完整卡片,并直接进入对应既有页面。

企业认证与资料变更

  • 认证申请至少包含企业名称、统一社会信用代码、注册地址、营业执照文件和申请人身份;企业名称与信用代码以营业执照识别结果为准,用户修改后必须重新确认。
  • 认证提交后进入审核中,页面展示提交时间和当前状态;驳回必须提供可操作原因并允许沿用未失效材料补充提交。审核中不得重复创建第二份申请。
  • 已上传营业执照可在线查看文件名、上传时间和当前审核版本;重新上传生成新版本,旧版本保留审计记录但不再作为当前材料。
  • 已认证企业修改主体名称、信用代码、注册地址或营业执照后进入重新审核;仅修改非主体展示信息不改变认证状态。重新审核期间禁止新交易,已成立业务按原认证快照继续履约。

收货地址

  • 地址属于买家企业而非个人账号,字段包含地址名称、收货人、手机号、省市区、详细地址和是否默认;收货人和手机号仅对授权交易参与方可见。
  • 一个企业只能有一个默认地址。设置新默认地址时原默认自动取消;删除默认地址前必须先指定其他默认地址,企业仅剩一个地址时不可直接删除。
  • 已被询价或交易引用的地址不可物理删除,只能停用;历史业务始终展示提交时的地址快照。停用地址不得用于新询价或购买。
  • 购买和询价默认选中企业默认地址,但提交前必须由用户确认;无有效地址时先进入新增地址,保存后返回原动作。

权限模型

权限判定同时包含:账号有效、成员关系有效、企业有效、业务端资格有效、认证满足动作要求、角色具有动作权限、数据范围包含对象。前端只控制展示,服务端必须重新校验。

买家端动作门槛

  • 登录即可维护收藏和采购偏好;企业认证通过且具备对应权限后,才可联系卖家、发布采购需求、询价、出价、立即购买、确认成交、签署合同或付款。
  • 收货、售后、发票和历史合同等履约动作同时校验当前成员是否拥有对应交易的数据权限;企业被冻结或认证状态变化时,不得阻断依法必须继续处理的已成立交易。
  • 被拦截动作保存来源路由和业务上下文。完成登录或认证后回到原页面重新校验,必须由用户再次点击确认,不得自动提交交易动作。

状态

对象状态
账号正常、密码锁定、停用
成员关系待加入、正常、停用、已退出
企业认证未认证、审核中、已认证、已驳回、已过期、已冻结
企业资格买家有效、卖家有效、暂停、取消

异常与边界

  • 验证码发送失败、频繁、错误或过期时保留手机号并给出重试时间。
  • 同一手机号 60 秒内最多发送 1 次验证码,1 小时最多 5 次、24 小时最多 10 次;同一设备或 IP 触发风控阈值后要求额外校验。验证码连续错误 5 次后当前挑战失效,重新发送后旧验证码立即失效。
  • 登录态过期时保留当前路由和未提交安全草稿,重新登录后恢复。
  • 账号无企业时进入创建或申请加入企业,不展示空白业务首页。
  • 企业被冻结时禁止新增交易,但保留合同、付款、售后等必要履约入口。
  • 操作中权限被收回时提交失败,不允许以旧页面状态继续操作。
  • 换绑手机号前校验新手机号未被其他有效账号占用;换绑成功后使其他设备登录态失效,并向新旧手机号发送安全通知。
  • 平台审核员不能审核自己所属或存在利益冲突的企业。

通知

验证码、安全风险、密码修改、手机号换绑、成员邀请、权限变化、认证提交、通过、驳回、过期和冻结均产生对应通知和安全日志。

验收标准

  • 游客受保护操作登录后回到原页面和原动作。
  • 从登录页进入注册页、完成注册、返回商品大厅并打开采购偏好弹窗的链路可连续完成,浏览器后退不会再次提交注册。
  • 多企业、多端资格分流结果正确且可切换。
  • 无权限入口不可见,直接访问也被服务端拒绝。
  • 企业认证状态同时影响买家、卖家和管理端。
  • 敏感材料只对授权企业员工和平台审核角色可见。

商品数据模型与字段模块 PRD

模块目标

建立可配置、可版本化的商品数据底座,使商品发布、审核、筛选、详情、对比、采购需求和匹配使用同一结构化定义。

角色与页面

角色页面主要动作
商品运营字段管理新增字段、单位、枚举和校验
商品运营商品模型管理组合字段、设置展示筛选匹配属性
商品运营模型预览预览卖家表单、买家筛选和详情
平台管理员模型发布二次确认、发布版本、停用
卖家商品编辑按已发布模型填写商品
买家商品筛选、详情与需求使用模型配置的中文字段和选项

核心对象

品类、字段定义、字段选项、单位与换算规则、商品模型、商品模型版本、模型字段、显示分组、校验规则、筛选配置、对比配置、匹配配置。

字段能力

支持文本、整数、小数、金额、单选、多选、布尔、日期、地区、文件和复合规格。每个字段包含中文名称、内部编码、数据类型、单位、必填规则、范围、枚举、展示分组、是否筛选、是否对比、是否匹配、匹配方式和敏感级别。

版本规则

  • 草稿模型可编辑;已发布模型不可原地修改,变更必须创建新版本。
  • 发布前同时预览卖家填写、买家筛选、商品详情、对比和采购需求表单。
  • 新版本只影响新建或主动升级的商品;历史商品与交易保留原版本。
  • 字段停用不删除历史值;单位或枚举变更需定义迁移策略。
  • 影响匹配或价格口径的变更必须二次确认并记录影响范围。

首期品类

品类关键字段示例
煤炭煤种、低位热值、全硫、灰分、挥发分、水分、粒度、产地
钢铁品名、材质、规格、厚度、宽度、长度、钢厂、执行标准、仓库
铜产品形态、牌号、纯度、规格、冶炼厂、产地、包装、仓库
铝产品形态、牌号、纯度、状态、厚度、宽度、长度或卷重、厂家

匹配规则

  • 数值支持精确、区间、最小值、最大值和容差匹配。
  • 枚举支持必须包含、任一包含和排除。
  • 地区支持省、市、港口或仓库层级。
  • 单位先归一化再比较;转换失败不参与硬条件匹配。
  • 硬条件决定是否进入候选集,软条件只影响排序。

异常与边界

  • 删除被模型引用的字段时禁止物理删除,只允许停用。
  • 发布模型存在必填字段无名称、单位缺失、枚举为空或规则冲突时阻止发布。
  • 商品升级模型版本时先生成差异清单,缺少必填值不得提交审核。
  • 模型回滚只改变新建默认版本,不覆盖已发布商品和历史交易。
  • 前台遇到未知字段类型时显示只读值并上报配置异常,不隐藏整个商品。

审计与验收

  • 记录字段、模型、版本、发布人、发布时间、变更内容和影响范围。
  • 同一模型值在商品发布、筛选、详情、对比和匹配中的名称、单位和精度一致。
  • 历史交易快照不因模型更新改变。
  • 煤炭、钢铁、铜、铝可配置不同字段并独立筛选。

商品经营、审核与库存模块 PRD

模块目标

支持卖家按已发布商品模型创建商品,平台完成审核,卖家维护在售状态和库存,并为交易提供准确可追溯的商品与库存事实。

角色与页面

角色页面主要动作
卖家销售商品管理、商品编辑新增、修改、提交审核、上下架
卖家库存人员库存管理补库存、调整、查看流水和预警
商品运营商品审核队列与详情通过、驳回、要求补充
风控人员商品风险详情限制展示、人工复核
买家商品大厅与详情仅查看有效在售商品

核心对象

商品、商品版本、商品模型版本、商品资料、质量凭证、商品审核单、库存账户、库存流水、库存锁定、库存预警、商品快照。

商品状态

草稿、审核中、销售中、售罄、下架、驳回。已下架或历史商品从交易记录进入时只显示成交快照,不重新开放购买。

发布规则

  • 卖家选择已发布品类模型后填写结构化字段、当前售价、计价单位、最小起订量、可售库存、发货地、交付方式和资料。
  • 前台只展示一个当前售价;价格修改记录操作人、时间和前后值。
  • 草稿可反复保存;提交审核后当前版本只读,修改需撤回或创建新版本。
  • 关键字段、售价、质量凭证或交付条件变化按平台配置触发重新审核。
  • 审核通过后进入销售中;驳回必须提供具体字段和原因。

库存规则

时点可售锁定已发
卖家补库存增加不变不变
普通询价不变不变不变
成交确认成功减少增加不变
成交取消增加减少不变
创建发货批次不变减少增加
  • 库存不得为负;库存操作使用对象版本和幂等键。
  • 一个商品可同时面对多个买家;按成交确认顺序锁定库存。
  • 补库存、盘点调整、锁定、释放和扣减均产生不可删除流水。
  • 可售库存低于阈值产生卖家待办;为零时商品显示售罄并禁止新成交。

异常与边界

  • 审核期间商品不可搜索;已存在的历史链接显示审核不可见说明。
  • 多笔交易并发锁定失败时,后确认交易返回库存不足,可修改数量或等待补货。
  • 商品被风控下架后禁止新询价和购买,已生效合同按风控方案履约。
  • 质量凭证失效或无法查看时标记资料异常,并按配置限制销售。
  • 库存调整超过阈值需要二次确认或企业管理员复核。

通知与验收

  • 提交、通过、驳回、下架、售罄、库存预警和锁定失败通知相应角色。
  • 商品状态、列表、详情、交易快照和库存流水一致。
  • 审核和库存高风险动作均有原因与审计记录。
  • 历史成交商品值不随当前商品修改。

商品大厅、详情、企业与对比模块 PRD

模块目标

帮助买家基于真实结构化商品参数、卖家当前售价、有效库存、企业公开能力和匿名成交数据完成找货与采购判断。

页面范围

商品大厅、商品详情、商品对比、企业主页,以及企业中心中的收藏商品和收藏企业。

买家端动态商品模型契约

  • 买家端不得在页面代码中写死煤炭、钢铁、铜、铝字段。每个品类由接口返回当前可用商品模型版本、中文字段名、字段类型、单位、精度、枚举选项、展示顺序、是否可筛选、筛选方式、是否重点、是否可协商和是否参与对比/匹配。
  • 首期前台必须支持整数、小数、金额、单选、多选、布尔、日期、地区、文件和区间值;遇到未知类型时展示只读值并上报配置异常,不能让整个商品页崩溃。
  • 数值展示按模型精度格式化并始终携带单位;存储与比较使用标准单位,换算失败的字段不参与筛选、排序或匹配,也不得用 0 代替。枚举展示中文名称,提交内部稳定编码。
  • “重点”只影响前台数值强调、相似商品优先级和筛选偏差优先级,不代表综合质量评级;“可协商”只允许在询价中提交期望值,不改变卖家已发布的商品事实。
  • 已发布商品保留其模型版本。列表、详情、对比和询价读取同一商品版本;新模型发布后不得静默重命名或改写历史商品字段。商品主动升级后生成新版本,旧询价和交易继续使用原快照。
  • 前台筛选条件绑定品类和模型字段编码。切换品类时清除不兼容条件;同品类模型升级时可安全迁移的条件按字段编码和单位转换保留,不能迁移的条件移除并向用户说明。

访问与登录边界

  • 游客可浏览商品大厅、筛选、查看详情、对比和企业公开主页。
  • 收藏、联系卖家、询价、立即购买和发布采购需求要求登录。
  • 联系卖家、发布采购需求、询价、出价和立即购买必须由已认证且具有对应权限的企业成员发起;拦截后完成认证应返回原商品与原动作上下文,但不得自动提交。
  • 登录或认证完成后返回原商品、筛选条件和未完成动作。

商品大厅

  • 桌面端左侧常驻筛选区以“指标”为核心,首屏展示品类、卖家售价上限、最低库存、最大起订量、交付方式、付款方式和质量凭证。不使用“交货与价格”、“商品关键参数”等额外分组标题,不按交货地筛选。
  • 手机端筛选区使用底部抽屉,商品列表保持可见;应用筛选后关闭抽屉并保留条件。
  • 商品大厅不提供“全部品类”选项;默认使用已保存采购偏好的品类,未设置偏好时默认进入煤炭。切换品类后立即展示对应动态模型的 5 项质量或规格指标,并清除前一品类不兼容的已选值。
  • 搜索支持商品名、品类、规格、产地、交货地和企业名称。
  • 排序依次提供“推荐排序”“价格从低到高”“价格从高到低”“最新上架”“运距优先”“成交量优先”;前台不展示推荐分、单项得分或权重。
  • 桌面端使用高密度决策卡,不展示封面图和商品说明;卡片依次展示名称与品类、企业名称、至少 5 项品类指标、商品累计成交笔数、累计成交量、最小起订量、交付方式、付款方式和发货地。成交数据必须属于当前商品,不能用企业累计成交替代,也不展示成交额、企业履约率、按时交付率等企业指标。后台标记为“重点”的指标以轻量图标提示,图标不能挤压指标名称与数值。
  • 品类指标使用按内容宽度自适应的紧凑标签展示“字段名 + 数值”,字段名和数值必须在同一行并左对齐连续排列,间距为 4—6 像素;标签在容器内自动换行,同一行可容纳 2 个以上标签,不使用等分列、两端对齐或固定宽度制造空白。商品卡桌面宽屏三列、中等宽度两列、手机端单列,价格使用暖色强调,状态与库存保持清晰层级。
  • 发货地、交付方式和付款方式在卡片中使用语义图标加具体值展示,省略重复的文字字段名;每个图标必须有中文悬浮说明和无障碍名称。
  • 卡片底部固定为价格与操作区:左侧展示卖家当前售价和可售库存,右侧展示“我要询价”“加入对比/移除对比”和分享;联系卖家放在企业名称行,收藏放在标题行,使四类动作按语义分散而不是挤成一排。整张商品卡可点击进入详情,不再展示“查看商品”按钮;图标动作必须有中文无障碍名称和悬浮说明。点击卡内按钮不得触发整卡跳转。
  • 加入对比后按钮显示“移除对比”;对比栏可展开、逐个移除和清空。
  • 无结果时明确说明当前筛选没有符合条件的商品,并在同一页面直接展示最多 3 个当前品类的相近在售商品;当前品类实际有效候选不足 3 个时全部展示,不设置最低数量。说明区不放按钮或额外操作,推荐卡仍可完成询价、联系、分享、收藏和对比。

筛选取值与组合规则

  • 同一筛选请求中的不同字段使用 AND;同一枚举字段允许多选时,字段内部使用 OR。例:交付方式选择“仓库自提、卖家配送”且全硫选择“≤0.8%”,表示两种交付方式之一并且全硫满足上限。
  • 数值字段的上限条件使用 商品值 ≤ 买家上限,下限条件使用 商品值 ≥ 买家下限,区间条件要求商品区间与买家区间满足模型配置的包含或交集规则。边界值计为满足。
  • 商品缺少当前筛选字段时视为不满足,不得用 0、空字符串、默认值或交易顾问推断值参与筛选;列表仍可在清除该条件后出现。
  • 筛选值、商品值和排序值先按商品模型换算为同一标准单位再比较;页面保留买家选择的展示单位。无法安全换算的商品不参与当前条件筛选。
  • 价格筛选使用当前有效售价,库存筛选使用未锁定可售库存,最大起订量筛选要求商品最小起订量不高于买家选择值。筛选结果点击或提交动作时重新校验,不能仅依赖列表快照。
  • “应用筛选”后 URL 或页面状态必须可恢复品类、全部有效条件、排序和分页;重置只清除用户可编辑条件并保留当前品类,不能清除登录态或采购偏好本身。

分页、加载与返回恢复

  • 商品大厅桌面端和手机端统一以 12 个商品为一个数据批次;服务端请求固定使用 pageSize=12,前端不得根据屏幕宽度改成其他批次大小。响应至少返回 items、total、page、pageSize、totalPages。
  • 桌面端使用居中的轻量页码分页,只展示上一页、页码和下一页,不额外展示总商品数、当前页或总页数文案,也不使用整块背景卡片;切换页码后滚动到结果列表顶部。总页数较多时允许折叠中间页码,但必须保留首页、尾页和当前页附近页码。
  • 手机端不展示页码,首批展示 12 个,点击“加载更多”后按顺序追加下一批 12 个;加载期间按钮进入不可重复提交状态,全部加载后展示“已加载全部”。手机端累计加载到第 N 批时,URL 中的 page=N。
  • 搜索词、品类、任一筛选条件或排序发生变化并提交后,一律回到第 1 页;收藏、加入对比等不改变候选集的卡内操作不得重置页码或滚动位置。
  • URL 至少保存品类、搜索词、有效筛选条件、排序和 page。从商品详情返回时恢复相同查询条件:桌面端恢复原页,手机端恢复已经加载的批次数,并尽量恢复离开前的滚动位置。
  • 数据更新导致当前页超过最新总页数时,自动落到最后一个有效页;结果为 0 时隐藏分页控件并进入无结果推荐,不得显示“第 1/0 页”。无结果推荐区独立于正常列表分页,最多展示 3 个推荐商品。
  • 所有排序最后都必须以商品标识作为稳定兜底条件。刷新、网络重试或翻页时,同一查询快照内不得重复或遗漏商品;当前售价、库存或销售状态在操作前仍须重新校验。
  • 分页请求失败时保留当前已展示商品并提供“重新加载”,不得清空成无结果;手机端追加请求失败时不得丢失此前批次。重复点击、超时重试和返回重放同一页请求不得产生业务写入。

推荐排序规则

1. 候选集

商品大厅先执行买家的品类、质量或规格指标、价格、库存、起订量、交付方式和付款方式等筛选条件;不符合筛选条件的商品不得进入候选集。同一次推荐排序只比较同一品类、同一计价单位且已通过全部当前筛选条件的商品。商品还必须同时满足:审核通过、销售中、库存有效、所属企业可交易。推荐排序只对候选集计算以下五项 0—100 分,不重复计算条件匹配度。

2. 价格竞争力得分(权重 40%)

按当前有效售价从低到高计算价格排名,最低价排名为 1:

价格竞争力得分 = 100 ×(候选商品数 - 当前商品价格排名)÷(候选商品数 - 1)
  • 相同价格使用平均排名并获得相同分数。
  • 候选集只有 1 个商品时记 100 分。
  • 使用卖家当前有效售价,不使用历史成交价、市场参考价或尚未成立的议价价格。

3. 公路运距得分(权重 20%)

运距统一使用公路路线距离,不计算或混用铁路、水路、航空及直线距离。起点为商品有效发货地址,终点为买家本次选择的收货地址;没有本次收货地址时使用企业默认收货地址。对可计算公路运距的候选商品按距离从短到长排名:

公路运距得分 = 100 ×(可计算运距商品数 - 当前商品运距排名)÷(可计算运距商品数 - 1)
  • 相同公路运距使用平均排名并获得相同分数。
  • 只有 1 个商品可计算运距时,该商品记 100 分。
  • 发货地址、收货地址缺失,地址无法解析,或公路路线服务调用失败时,该商品不计算运距得分;只要候选集中存在可计算运距的商品,所有无法计算运距的商品必须整体排在可计算商品之后,再按其余四项加权得分排序。
  • 全部候选商品均无法计算运距时,本次推荐停用运距项,其余四项按原权重比例归一化到 100%;页面不展示“运距待确认”“距离未知”等标记。
  • 排序请求保存起终点地址版本、路线服务版本、计算时间和公路公里数,地址或路线数据变化后重新计算。

4. 商品累计成交量得分(权重 20%)

先使用自然对数降低头部商品极端成交量的影响,再在候选集内归一化:

处理后成交量 = ln(1 + 商品累计有效成交量)
成交量得分 = 100 ×(当前商品处理后成交量 - 候选集最小值)÷(候选集最大值 - 候选集最小值)
  • 只统计当前商品自身已完成交易的最终有效成交数量,不使用企业累计成交量。
  • 已取消、已关闭、全额退款的交易不计入;部分退款或数量调整按最终有效成交数量计入。
  • 候选商品成交量全部为 0 时全部记 0 分;全部相同且大于 0 时全部记 50 分。

5. 商品累计成交笔数得分(权重 10%)

处理后成交笔数 = ln(1 + 商品累计有效成交笔数)
成交笔数得分 = 100 ×(当前商品处理后成交笔数 - 候选集最小值)÷(候选集最大值 - 候选集最小值)
  • 一个交易无论分几次付款、发货或收货都只计算 1 笔。
  • 已取消、已关闭、全额退款的交易不计入;部分退款后仍有有效成交数量的交易计 1 笔。
  • 候选商品成交笔数全部为 0 时全部记 0 分;全部相同且大于 0 时全部记 50 分。

6. 商品信息更新时间得分(权重 10%)

采用 30 天半衰期计算信息新鲜度:

信息更新时间得分 = 100 × 0.5 ^(距最近有效更新时间的自然日数 ÷ 30)

有效更新时间仅由售价、可售库存、最小起订量、质量或规格指标、交付方式、付款方式等影响交易判断的字段变更,或资料重新审核生效触发。打开编辑页后直接保存、修改空格或错别字、调整展示顺序、后台无关处理及定时任务不得刷新有效更新时间。

7. 最终推荐分与同分处理

最终推荐分 = 价格竞争力得分 × 40%
             + 公路运距得分 × 20%
             + 商品累计成交量得分 × 20%
             + 商品累计成交笔数得分 × 10%
             + 商品信息更新时间得分 × 10%

先按运距是否可计算分组,可计算组整体在前、不可计算组整体在后;组内按最终推荐分从高到低排列。分数相同时依次比较当前售价更低、公路运距更短、累计成交量更高、累计成交笔数更多、有效更新时间更近、商品标识更小,确保分页和重复请求的排序稳定。平台不得使用企业成交额、企业履约率、按时交付率、平台服务费或预估平台收益干预推荐排序。后台保留计算明细、规则版本和参与排序的数据快照,供运营排查;买家前台只显示排序结果。

其他排序

  • 最新上架: 按最近一次正式上架生效时间倒序。普通编辑、补库存、暂停销售后恢复不刷新上架时间;核心指标或交易条件发生实质变化并重新审核通过时生成新的上架时间;违规下架后恢复沿用原时间。
  • 运距优先: 仅按商品发货地址至买家当前收货地址的公路路线距离从短到长排列;无法计算的商品统一排在可计算商品之后,前台不增加运距无法计算的状态标记。若全部商品均无法计算,则保持商品标识稳定排序。
  • 成交量优先: 按商品累计有效成交量倒序,同量时按累计有效成交笔数倒序。
  • 价格从低到高/从高到低: 按当前有效售价排序,同价时按推荐分倒序。

场景化商品推荐规则

以下场景复用同一商品事实、交易资格校验和推荐分服务,但候选集与第一排序依据不同,不得把商品大厅默认推荐结果直接截取后用于所有推荐位置。

1. 商品详情“更多同类商品”

  • 候选商品必须与当前商品属于同一品类和同一商品模型版本,且审核通过、销售中、库存有效、所属企业可交易;排除当前商品本身。
  • 先比较与当前商品的结构化指标相似度,再比较推荐分。指标相似度只使用当前模型中前台可见且参与匹配的字段:枚举字段相同记为命中;数值字段按模型配置的合理取值范围计算归一化差异;缺失字段不记为命中,不得推断或补造数值。
  • 排序依次为:重点指标命中数量更多、全部指标归一化差异更小、推荐分更高、商品标识更小。重点指标优先级高于普通指标。
  • 最多展示 3 个。实际展示数量为当前品类有效在售候选商品数与 3 的较小值,并排除当前商品本身;候选不足 3 个时全部展示,不跨品类补足、不要求达到固定最低数量。手机端首屏展示 2 个,有第 3 个时允许继续横向查看。
  • 同模型商品优先;同模型候选不足 3 个时,可继续从同品类其他有效模型且核心计价单位一致的商品中选择,但只用于扩大真实候选范围,不要求凑满 3 个。全部候选仍按重点指标接近程度和推荐分排序并去重。
  • 当前商品下架、售罄或不可交易不影响查看历史详情,但推荐区仍只展示当前可交易商品。不得使用下架、售罄、审核未通过、企业不可交易或虚构商品补足数量。

2. 商品列表无完全匹配结果时的推荐

  • 始终保留用户当前选择的商品品类,不跨品类推荐;候选商品必须审核通过、销售中、库存有效、所属企业可交易。
  • 原筛选条件不再作为排除条件,而是用于计算接近程度。先计算每个候选商品未满足的筛选条件数量,再计算总偏差:
上限型数值偏差 = max(0,(商品值 - 用户上限)÷ max(|用户上限|,1))
下限型数值偏差 = max(0,(用户下限 - 商品值)÷ max(|用户下限|,1))
枚举或布尔条件偏差 = 满足时 0,不满足时 1
总偏差 = 各未满足条件偏差之和
  • 排序依次为:未满足条件数量更少、重点指标未满足数量更少、总偏差更小、推荐分更高、商品标识更小。不得仅按热门程度或成交量推荐与用户条件差异较大的商品。
  • 最多展示 3 个。实际展示数量为当前品类有效在售候选商品数与 3 的较小值;候选不足 3 个时全部展示,不跨品类补足、不要求达到固定最低数量,商品不得重复出现。
  • 原筛选条件不再排除推荐候选,只用于计算接近程度;因此不得为了凑数量继续自动放宽、修改或清除用户筛选条件。买家明确标记为“必须满足”的重点指标未命中时,推荐说明必须指出差异,不得描述为符合条件。
  • 页面只明确说明“没有找到符合条件的商品”,下方标题使用“为您推荐以下商品”;不把推荐商品描述为符合条件,也不增加“运距待确认”等状态标记。
  • 推荐商品点击或发起操作时重新校验商品状态、售价和库存;不得使用下架、售罄、审核未通过、企业不可交易或虚构商品补足数量。

3. 展示数量统一规则

  • 商品详情推荐和商品列表无结果推荐均最多展示 3 个,不设置固定最低数量,也不要求每个品类必须维持指定数量的在售商品。
  • 实际展示数量公式为:min(当前场景真实有效候选商品数,3)。候选商品数为 1 或 2 时全部展示;为 0 时展示明确空状态,不伪造商品、不跨品类补足。
  • 当前场景候选集必须统一去重,并在输出前重新校验审核状态、销售状态、库存和企业交易资格。商品详情还必须排除当前商品;无结果推荐保留当前品类。

商品详情

  • 详情标题右侧将收藏、加入/移除对比和分享组合为一组轻量工具按钮;联系卖家不放在标题工具组,统一放在右侧交易卡的购买与询价操作下方。
  • 详情首屏主区同屏展示卖家实拍图和商品核心指标,指标至少包含 5 项品类质量/规格指标;重点指标只将数值显示为品牌蓝,不改变指标容器背景和边框,也不增加星标。商品列表卡片不展示“可协商”;商品详情和询价场景使用无描边浅蓝“可协商”文字标识。指标下以“交易信息”为小标题,纯文字展示交付方式、付款方式、最小起订量、商品累计成交笔数和成交量,不展示成交额、装饰图标,也不与购买卡重复库存。
  • 发起询价时,系统根据当前品类模型自动列出全部可协商指标并预填卖家当前值;买家可逐项修改期望值。提交后,期望指标与数量、出价、收货地址一并进入询价记录和企业会话,后续还价必须保留这一组结构化条件。
  • 卖家上传图片使用固定比例容器和 object-fit: cover 统一裁切,保留中心主体;加载失败时显示品类占位图和图片不可用提示,不拉伸原图。
  • 商品说明展示卖家提供的正式内容,不额外拆出“适用场景、执行标准、交付说明”等重复说明带。附件资料作为单独小节展示文件卡,包含文件名、大小和“查看”动作;相关资料可站内预览。
  • 主区其余按“商品说明与资料—历史成交价格—供应企业—更多推荐商品”的顺序展示;首屏已经完整展示过的商品指标不再以“商品规格与质量指标”重复一遍。
  • 商品大厅筛选无完全匹配结果时,结果区使用图标、标题“没有找到符合条件的商品”和一句简短说明形成清晰空状态;下方直接展示同品类在售推荐卡片。空状态不增加放宽筛选、发布需求等额外操作,推荐商品继续复用正常商品卡片,不改变其数据、布局和交互。
  • 商品售价只在右侧购买卡展示一次,直接突出具体价格,不增加“卖家当前售价”或“含税价”等重复说明;税务口径由合同与结算信息承载。
  • 购买卡包含卖家当前售价、库存、最小起订量、数量、企业地址簿、预计商品货款、立即购买、“我要询价”和联系卖家;“我要询价”是蓝色主操作,“立即购买”为次要操作,联系卖家位于两项交易操作下方。
  • 桌面购买卡保持在右侧可视区域;手机端隐藏完整购买卡,使用位于应用底部导航上方的固定交易区。固定区第一行展示卖家当前售价和可售库存,第二行依次展示联系卖家图标、立即购买和我要询价,页面不得重复出现第二组购买/询价按钮。
  • 附件资料支持在线查看文件信息和内容;不可用时说明原因。
  • 分享打开站内分享面板,直接展示当前商品稳定链接和已经生成的品牌海报预览,不提供“生成海报”按钮,也不展示公开权限说明。链接只保留一个“复制链接”主按钮。面板提供保存海报、微信好友、朋友圈、钉钉和复制海报链接;未接入原生分享能力时明确提示用户保存或复制,不跳离当前商品。桌面端海报位于左侧、操作位于右侧;手机端先展示完整海报再展示操作。海报包含平台名称与品牌主张、商品实拍图、商品名、企业名、当前售价、3 项核心指标、库存、最小起订量和商品详情二维码;平台头部与商品信息区使用相同的冷灰蓝色不透明底色,商品信息区使用不旋转文字的圆角梯形轮廓,并不得遮挡二维码及识别文案。分享失败不得跳转或破坏详情页状态。
  • “历史成交价格”支持近 7 天、近 30 天和全部;汇总仅展示最新价、最高价、最低价、成交量和成交笔数。图表增加同品类、同区域第三方现货价格形成的“市场参考价”,本商品成交价实线与市场参考价虚线的每个数据点均展示具体价格;市场参考价不得冒充平台成交价。

历史成交价格口径

  • 统计范围仅包含当前商品已完成且未全额退款的交易;部分退款或数量调整按最终有效成交数量和最终商品金额重算,不统计服务费、运费、税额调整或取消交易。
  • 每个日期的商品成交价使用成交量加权均价:Σ(最终有效商品金额)÷ Σ(最终有效成交量)。最新价取所选时间范围内最近一个有有效成交的日期均价,最高价和最低价取该范围内实际有效成交单价极值。
  • 成交量为范围内最终有效数量之和;成交笔数按正式交易去重,一笔交易分批付款、发货或收货仍计 1 笔。统计使用商品计价单位,单位不一致时不合并。
  • “近 7 天”“近 30 天”均包含当天并按中国标准时间自然日计算;“全部”从商品首次有效成交日至当前日。无成交日期显示断点,不补 0、不用挂牌价连线。
  • 市场参考价必须匹配同品类、同核心规格、同地区和同计价单位;无法满足口径时隐藏该序列并说明暂无可比市场数据。鼠标悬浮或触摸数据点展示日期、系列、价格和当日成交量。
  • 匿名阈值按日期聚合后判断;未达到阈值的数据点不展示,也不得通过相邻汇总、接口字段或提示文案反推出交易双方或单笔成交。

商品对比

  • 只允许 2—4 个同一模型或兼容模型商品对比。
  • 使用真实字段名和单位,不适用字段显示“该商品不适用”。
  • 对比小结位于表格上方,只引用表中事实并突出明确优势值。
  • 不生成综合评分、虚假匹配分或替代采购决策的结论。
  • 少于 2 个商品时禁止开始对比,但允许管理已选商品。
  • 对比使用加入对比时的商品标识,打开页面后统一读取最新有效商品事实;若价格、库存或指标已变化,应显示更新时间。下架或失效商品保留只读列并禁止交易操作。
  • “优秀值”只按商品模型配置的字段方向判断,例如热值越高越优、硫分越低越优;未配置方向、枚举字段或缺失值不得自动标优。并列最优可同时标记。
  • 对比小结必须由结构化字段按确定性模板生成,最多 3 条,只陈述价格、库存、重点指标和交易条件差异;数据不足时不生成该条,不使用综合得分替代企业判断。

企业主页

企业主页顶部先展示企业标识、企业名称、正式介绍,并将“收藏企业”“联系卖家”紧邻企业名称;累计成交单数、累计成交量、累计收藏和在售商品数作为第二行独立指标区,全部采用平台累计口径。前台不公开企业累计成交额。企业介绍不再重复形成单独板块;下方直接进入统一商品卡片构成的在售商品区,不再追加重复的“需要确认库存、质量资料或交付安排”联系板块。不展示合同履约率、按时交付率,也不设置独立的“平台累计交易表现”板块。采购需求仅在卖家视角按公开范围展示;营业执照、对公账户和后台风控信息不公开。

登录后采购偏好

  • 已登录且尚未设置采购偏好的买家进入商品大厅时,主动打开“完善采购偏好”弹窗;允许稍后完善,不阻断继续浏览。
  • 弹窗字段与商品大厅筛选共用同一结构和动态参数模型,包括常购品类、价格上限、最低库存、最大起订量、交付方式、付款方式、质量凭证及当前品类指标。
  • 保存后立即关闭弹窗,将偏好作为商品大厅默认品类和筛选条件;商品大厅顶部不常驻展示采购偏好摘要,用户从企业中心进入采购偏好页修改。

异常与边界

  • 商品下架、售罄或企业失效时禁止购买和询价,保留只读快照与同类推荐。
  • 历史成交样本不足时隐藏可识别点并说明口径。
  • 筛选参数因模型变化失效时移除失效条件并说明。
  • 商品当前售价或库存变化时,提交购买前重新确认最新值。
  • 收藏对象失效后仍保留记录,但标记失效并提供移除。

验收标准

  • 游客浏览与受保护操作登录恢复均可完成。
  • 四个品类的关键筛选字段随模型正确变化。
  • 列表、详情、收藏和对比使用同一商品事实。
  • 价格图汇总和成交点来自同一聚合数据。
  • 商品详情可直接进入立即购买、议价和真人企业会话。
  • 商品大厅不进入详情即可完成询价、联系卖家、分享、收藏和加入对比;每个动作都有明确结果或登录/认证恢复链路。
  • 商品详情的更多同类商品、企业中心收藏商品和企业主页在售商品复用商品大厅同一商品卡片与操作状态,不允许形成精简版分支。
  • 商品详情同类推荐遵循同模型、指标相似度、推荐分和卖家集中度规则,且不出现当前商品或重复商品。
  • 商品大厅无完全匹配结果时按未满足条件数量、重点指标偏差、总偏差和推荐分生成最多 3 个同品类候选;不足 3 个时展示全部真实有效候选,不得将其描述为符合筛选条件。

采购需求、匹配与商机模块 PRD

模块目标

让买家用结构化条件发布采购需求,让平台匹配有效商品,让卖家以本企业在售商品响应,并将有效响应转为统一询价流程。

角色与页面

角色页面主要动作
买家采购采购需求列表、发布与详情新建、编辑、发布、关闭、查看响应
卖家销售商机列表与详情查看匹配、选择商品响应、撤回响应
平台匹配任务与规则执行匹配、监控异常
交易顾问采购需求草稿整理自然语言,等待买家确认

核心对象

采购需求、需求模型版本、需求字段值、公开范围、匹配任务、匹配结果、卖家响应、响应商品、响应报价、未读状态、询价转换关系。

发布规则

  • 采购需求属于买家企业,由有权限员工创建。
  • 品类和关键指标来自商品模型,不允许用自由文本替代结构化字段。
  • 发布表单必须同时包含采购标题、品类、数量、收货地、期望交付日期、交付方式、付款方式和当前品类的动态指标;期望单价上限和其他要求可选。动态指标直接复用商品模型,不得把所有指标压缩为一个“补充要求”文本框。
  • 交易顾问只能生成草稿,买家必须检查和确认后发布。
  • 发布后影响匹配的字段修改需创建新版本并重新匹配。
  • 关闭、过期或已转成交的需求停止新响应,历史响应保留。
  • 有效期由买家选择 1—30 个自然日,默认 7 个自然日;到期时间精确到分钟并在发布前展示。过期后可基于原需求复制新草稿,不得直接延长原版本掩盖历史响应。
  • 发布时保存商品模型版本、字段单位和公开范围快照;模型后续变更不改写已发布版本,再次编辑时按新模型校验并提示失效字段。

匹配规则

  1. 候选商品必须审核通过、销售中、企业有效且库存满足最低要求。
  2. 商品匹配是二元合格性校验,每项指标只有“通过”或“不通过”,不计分、不扣分、不计算接近程度。商品必须通过采购需求中全部已填写且参与匹配的指标,任一指标不通过即不进入匹配结果;全部通过时进入符合需求的商品结果,前台不展示匹配百分比或重复解释校验规则。
  3. 买家采购需求中的每项指标只保存一个具体采购值,不在采购需求侧设置容差上下限。商品指标由平台商品模型和卖家发布数据标记为“可协商”或“不可协商”,可协商商品指标同时保存商品可接受的下限、上限和当前指标值。
  4. 商品指标标记为“可协商”时,使用包含边界的区间校验:商品下限 ≤ 买家采购值 ≤ 商品上限。下限不得高于上限;只要买家采购值位于区间内即通过,区间内的位置、与当前值或中心值的距离均不影响结果或排序。
  5. 商品指标标记为“不可协商”时,使用固定值校验:买家采购值 = 商品固定值。枚举按稳定编码比较,数值先换算到同一标准单位并按模型精度比较,文本不得用模糊包含或自然语言推断替代相等判断。
  6. 品类、关键规格、数量、地区和交期等其他硬条件不满足时同样排除;买家值、商品固定值或商品区间任一缺失,单位换算失败或模型版本不兼容均视为不符合,不得以 0 或默认值补齐。
  7. 系统遍历候选商品,对采购需求中参与匹配的指标逐项校验;任一项失败即排除该商品,全部通过才加入符合需求的结果集。结果集统一按商品价格从低到高排列,默认推荐并展示价格最低的商品;价格相同时保持稳定的商品顺序。合格商品不得再按指标值、区间位置或重点指标排序。商品详情区需明确标识为“系统推荐”,帮助买家理解内容来源。
  8. 运距只使用供应商品发货地址至采购需求收货地址的公路路线距离,不混用铁路、水路、航空或直线距离。无法计算公路运距的候选结果排在可计算结果之后,前台不展示“运距待确认”标记。
  9. 匹配结果保存买家采购值、商品固定值或上下限、标准化前后值、逐项校验结果、规则版本和推荐排序依据,不能只保存最终状态或排序分。
  10. 第三方或行为数据不得覆盖买家明确条件。

卖家响应

  • 卖家只能选择本企业有效在售商品响应。
  • 响应包含可供数量、当前售价或卖家出价、交期、补充说明和有效期。
  • 同一卖家企业对同一需求保留一个当前有效响应,更新后历史版本只读。
  • 买家可查看响应企业、对应商品、报价、可供数量和未读信息。
  • 买家选择“继续沟通”进入双方唯一企业会话;选择“发起询价”创建正式询价并关联响应。
  • 响应企业数按不同卖家企业去重;未读响应数按买家企业尚未读取的当前有效响应计数。打开响应详情后标记已读,响应再次更新后重新变为未读。
  • 同一响应只能成功转为一个有效询价;重复点击返回已创建询价,不得重复创建。响应转询价后,响应中的商品、数量、报价和交期只是询价初始值,仍须由买家确认提交。

状态

需求状态:草稿、已发布、匹配中、响应中、已关闭、已过期、已转询价、已转交易。响应状态:草稿、有效、已更新、已撤回、已过期、已转询价。

状态转换

  • 草稿提交成功后进入已发布并创建匹配任务;任务执行时为匹配中,产生至少一个有效响应后为响应中。
  • 已发布、匹配中和响应中可由买家主动关闭;到达有效期自动过期。关闭与过期均停止新匹配和响应,但不删除历史。
  • 任一响应成功创建询价后需求进入已转询价,但其他有效响应保留只读;关联询价最终形成正式交易后进入已转交易。
  • 已关闭、已过期和已转交易为终态;仅允许复制为新草稿,不允许回退或原地重新发布。

异常与边界

  • 无匹配结果时提供放宽非关键条件、继续等待或主动找货,不自动修改需求。
  • 商品下架、库存不足或卖家认证失效时响应失效并通知双方。
  • 响应价格变化不会自动改变已创建询价中的当前有效报价。
  • 发布时库存满足、响应时库存不足的商品不得继续转询价;系统保留失效响应并提示选择其他响应或重新匹配。
  • 买家不收藏采购需求;卖家也不能复制非公开买家资料。
  • 需求公开页对买家企业名称、联系人和敏感交付信息按公开范围脱敏。

通知与验收

  • 新响应、响应更新、响应失效、需求即将过期和转为询价产生企业级通知。
  • 需求卡展示响应企业数、未读响应数和明确查看入口。
  • 匹配依据可解释,结构化值与商品模型一致。
  • 从响应进入会话或询价后对象关系可追溯且不会创建重复企业会话。

企业会话、询价与议价模块 PRD

模块目标

在企业级唯一会话中完成找货后的真人沟通,并通过结构化询价、报价、还价和成交确认卡片形成可审计的正式交易条件。

会话边界

  • 唯一键为业务方向、买家企业和卖家企业。
  • 同一业务方向的多笔询价和交易共用一个企业会话。
  • 反向买卖关系使用另一业务方向的会话。
  • 支持按关联交易聚焦,但不创建新会话。

消息类型

企业会话允许文本、附件、商品卡、询价卡、报价或还价卡、成交确认卡和合同卡。付款、发货、物流、订单、发票、账户安全和售后进度进入系统消息或业务详情。

询价规则

  • 买家从商品详情或采购响应创建询价,填写数量、企业地址簿、交付要求、有效期和可选买家出价;询价默认 24 小时有效,可选择 30 分钟至 7 个自然日。
  • 询价提交前重新校验商品状态、企业权限、最小起订量、可售库存和地址有效性,并保存商品、指标、售价、库存、地址和商品模型版本快照。库存此时不锁定,页面必须提示以成交确认时库存为准。
  • 商品模型中标记为可协商的指标必须结构化列出并预填卖家当前值;买家只可修改这些字段的期望值,不得修改非协商字段或单位。未修改字段仍随询价快照提交。
  • 买家有出价且卖家接受时直接进入待成交确认,不强制卖家再次报价。
  • 买家未出价时卖家可首次报价;双方可多轮还价。
  • 同一询价只有一个当前有效报价;新还价替换旧报价,历史版本保留。
  • 接受操作必须针对当前有效报价;过期、撤回或被替代报价不可接受。
  • 双方确认最终数量、单价、交付、结算和税费后创建交易并锁库存。
  • 报价必须包含单价、数量、可协商指标最终值、交付方式、付款方式、预计交付日期、税务口径和有效期;任何一项变化都创建新报价版本并使上一版本失效。
  • 买家可在卖家首次响应前撤回询价;产生有效报价后只能拒绝当前报价或关闭询价。关闭询价不删除企业会话和历史卡片。

询价与报价状态

对象状态允许的买家动作
询价待卖家回复查看、补充普通消息、撤回
询价议价中出价/还价、接受当前报价、拒绝、关闭
询价待成交确认确认最终条件或取消确认
询价已成交进入交易详情
询价已撤回、已拒绝、已关闭、已过期只读、重新询价
报价当前有效在有效期内接受、拒绝或发起还价
报价已接受、已拒绝、已替代、已撤回、已过期只读

页面结构

  • 消息中心提供企业会话和系统消息切换。
  • 桌面端为会话列表、消息流和关联业务三栏;窄屏隐藏关联栏;手机为列表和会话两级页面。
  • 会话列表企业名称与时间同行,未读数独立垂直居中;当天显示时分,历史显示日期。
  • 输入框为单行,发送按钮在右侧;不提供独立发送商品按钮。
  • 业务卡一个主操作、最多两个次操作;失效卡保留原因并禁用动作。

系统消息

系统消息覆盖报价提醒、合同、付款、发货物流、采购响应、发票、账户安全和售后进度。支持逐条进入业务对象和全部标为已读;不创建企业会话。

并发与幂等

  • 报价和接受使用询价版本号;同时还价时后提交方收到“报价已更新”。
  • 重复发送业务动作只产生一个正式对象和一张有效卡片。
  • 卡片展示状态来自询价、报价、交易或合同对象,不能单独修改消息状态冒充业务成功。
  • 同一企业会话按服务端消息序号稳定排序;客户端临时消息只显示发送中,服务端确认后替换为正式消息。重连按最后已确认序号补拉,不得重复或乱序。
  • 企业级已读位置按成员分别保存,企业会话列表的企业未读数按当前登录成员计算;不能因同企业另一名员工已读而替当前成员清零。

异常与边界

  • 普通文字中的“同意”“可以”不改变业务状态。
  • 商品下架、库存不足、企业失效或报价过期时禁止接受并给出恢复动作。
  • 普通消息发送失败可重试;正式卡片失败不能先显示成功。
  • 撤回普通文本使用占位;业务卡和审计事件不可物理删除。
  • 多笔交易聚焦后返回全部沟通,历史顺序和未读状态保持不变。

通知与验收

  • 新询价、报价、还价、接受、拒绝、成交确认和合同待签按企业角色通知。
  • 同一企业组合不产生重复会话。
  • 多轮议价后当前有效报价、卡片按钮和交易条件一致。
  • 企业会话与系统消息内容边界清晰,履约进度不会淹没协商。
  • 从消息进入交易详情后可返回原企业会话和原聚焦对象。

交易、合同与订单模块 PRD

模块目标

把已确认交易条件转换为不可歧义的交易、合同和付款订单,并以统一状态机连接议价、库存、支付、履约和售后。

角色与页面

买卖双方在交易列表、交易详情和合同签署页处理当前动作;平台交易运营在管理端查看状态、异常和审计,但不能代企业确认。

核心对象

交易、交易参与方、成交条件、商品快照、库存锁定、合同、合同版本、签署任务、付款订单、交易事件、取消或解约记录。

创建交易

  • 当前有效报价被接受或买家按当前售价立即购买后,进入待成交确认。
  • 双方确认数量、单价、交付、地址、结算、税费和有效期。
  • 系统重新校验商品、企业、权限和库存,并以版本方式锁定库存。
  • 锁定成功后创建交易和合同草稿;失败不产生有效合同。
  • 立即购买跳过询价议价,但不跳过成交确认、合同、付款和履约。
  • 成交确认有效期默认 30 分钟;任一方超时未确认则本次确认失效,询价来源回到议价中,立即购买来源进入已取消并释放临时库存占用。双方对任一条件提出修改时不得直接改写确认单,必须生成新报价或重新提交立即购买条件。

合同路径

平台电子签

系统根据成交条件生成合同版本,双方授权签署人完成身份核验和签署;电子签服务商回传结果后合同生效。

线下已签合同

双方上传同一份已签 PDF,并分别确认文件摘要;文件不一致、缺页或未确认时禁止生效和付款。

状态模型

询价中和议价中属于询价对象,不属于正式交易状态。买家端“交易”列表可以聚合展示询价与正式交易,但必须保存对象类型,不能用同一状态字段混写。

正式交易状态及买家主操作如下:

当前状态进入条件买家主要动作正常下一状态
待成交确认接受有效报价或立即购买提交成功确认最终条件、取消确认待签合同或已取消
待签合同双方确认且库存锁定成功签署电子合同或确认线下合同待付款
待付款合同生效并生成付款单去付款、取消付款待发货、付款处理中或已取消
待发货付款成功且资金担保入账查看详情、申请售后待收货
待收货至少一个发货批次已发出查看物流、确认收货、申请售后已完成或售后处理中
已完成买家确认收货且差异已结清申请专票、在期限内申请售后售后处理中或保持已完成
售后处理中存在未关闭售后单查看进度、补充证据、确认方案回到对应履约状态或已完成
已取消付款前取消、超时或双方取消确认查看原因、重新采购终态

支付失败但付款单仍有效时交易保持待付款;发货和运输过程统一对买家展示为待收货,不增加“验收期”“已关闭”等列表状态。售后是附属业务状态,售后结束后按处理结果回到原履约状态、已完成或已取消。

待付款状态展示 30 分钟付款倒计时、去付款和取消付款。买家主动取消或倒计时结束后,系统关闭本次交易、取消付款单、释放库存锁定并保留取消原因;已取消记录只在“全部”中只读展示。

列表与详情

  • 交易列表展示编号、商品与企业、数量、状态、更新时间和具体动作。
  • 列表中的“商品货款”仅在双方已确认成交单价与数量后展示,计算为成交单价乘成交数量;询价中、议价中和待成交确认未完成时显示“—”,不得展示卖家挂牌价冒充成交价。
  • 尚未成交的询价或还价不展示成交单价与商品货款。
  • 操作使用“查看卖家报价”“签署合同”“去付款”“取消付款”“查看物流”“确认收货”“申请售后”等具体动词。
  • 交易详情展示交易条件、商品快照、合同、付款摘要、履约、时间线和当前唯一主要动作。
  • 历史交易只读;再次采购创建新询价或新交易。

取消与异常

  • 报价接受前可撤回询价;成交确认后取消需双方确认并释放库存。
  • 合同生效后取消进入解约流程,不能直接删除交易。
  • 待付款主动取消或超时取消按合同约定记录取消原因并释放库存;已经支付不得使用“取消付款”,必须创建售后单处理退款或解约。
  • 合同版本变更必须由双方重新确认或签署。
  • 操作重复提交使用幂等键,只产生一个状态事件。
  • 终态对象不可编辑,纠错通过补充事件、退款或新合同版本处理。
  • 库存锁定从双方成交确认成功开始,覆盖签约和付款有效期;取消确认、合同未生效终止、付款取消或超时后立即释放。锁定库存不得被其他买家购买,补库存不改变已锁定数量。

通知与验收

  • 待确认、库存锁定失败、待签、签署完成、合同异常、待付款和交易取消均通知对应企业角色。
  • 交易、合同、库存锁定、付款订单和消息卡片使用同一对象编号关联。
  • 两种合同路径均可完成且文件不一致无法付款。
  • 立即购买和议价成交进入相同的合同及后续状态机。

支付、结算、提现与发票模块 PRD

模块目标

通过合作银行或持牌支付机构完成订单付款、担保资金和退款,清晰管理买家服务费、卖家结算提现以及商品与服务费专票。

角色与页面

角色页面主要动作
买家财务订单付款、付款记录、发票管理支付、重试、申请专票
卖家财务资金结算、提现、开票管理对账、提现、开商品专票
平台财务资金对账、服务费、发票对账、差错处理、开服务费专票
合作机构支付与担保账户收款、回调、退款、结算

付款规则

  • 买家无需预充值;合同生效后生成付款单。
  • 首期付款有效期为 30 分钟,付款页和交易列表、详情同步展示倒计时;底层支持按业务配置有效期。
  • 付款前买家可取消付款;倒计时结束自动取消付款单和交易并释放库存,重复取消必须幂等。
  • 付款方式为线上支付和企业网银,均绑定交易、合同、付款企业和金额。
  • 付款总额 = 商品货款 + 平台服务费。
  • 商品货款进入担保资金账户;服务费单独记账,不从卖家商品货款扣除。
  • 付款结果以合作机构回调为准;前端跳转成功不等于付款成功。
  • 同一付款请求和回调必须幂等;支付处理中禁止重复发起。
  • 买家在付款有效期内完成机构侧提交后,付款单进入“付款处理中”并暂停前台倒计时,最长等待 2 小时;期间不可取消或重复付款。机构明确失败则回到剩余有效期内的待付款,机构成功则进入已支付,超过 2 小时无终态则进入待核对并由系统持续对账。
  • 付款到期与机构成功回调并发时,以合作机构受理时间为准:受理时间不晚于付款到期时间则接受成功回调;受理时间晚于到期时间则不恢复已取消交易,进入差错退款流程。所有判断保存机构流水、受理时间和规则版本。
  • 支付页面关闭、浏览器返回或前端断网不改变付款状态;重新进入交易详情时必须从服务端查询最新结果。

服务费生命周期

阶段时点状态与动作
试算进入成交确认展示预计费用,不收款
锁定双方确认条件保存收费对象、规则版本和上下限
应付合同生效生成货款、服务费和总额
已付待确认机构回调成功货款担保中,服务费不进入卖家应收
调整二次结算或退款按最终有效商品金额补收或原路退差额
确认售后期结束无争议成为平台确认收入,可申请服务费专票

首期规则为商品货款的 0.1%,最低 10 元、最高 5,000 元,按人民币分四舍五入;底层支持比例、定额和组合规则。

  • 服务费按一笔正式交易计算一次,不按付款次数、发货批次或收货批次重复收取。商品货款发生部分调整时,以最终有效商品货款重新计算并补收或原路退还差额。
  • 服务费确认时点为交易完成满 7 个自然日且不存在进行中售后;内在质量在合同约定的更长期限内产生争议时,只按最终解决方案调整受影响部分,不自动撤销全部已确认服务费。
  • 付款前页面必须分别列示商品货款、服务费率或计费方式、服务费金额和付款总额;任何规则变化均需重新确认,不能在支付回调后补加未展示费用。

卖家结算与提现

  • 付款成功后卖家看到完整商品货款的待结算金额。
  • 买家确认收货后交易完成,但货款在售后申请期内仍为待结算。
  • 售后申请期结束且无进行中售后时形成可提现余额。
  • 售后只冻结争议金额;无争议部分按规则结算。
  • 卖家只能向认证主体一致的企业对公账户提现。
  • 提现状态包含处理中、成功、失败和退回;失败保留原因和重新提交入口。

发票

  • 首期只支持增值税专用发票。
  • 商品专票由卖家向买家开具,确认收货后可申请,金额按最终商品结算金额。
  • 服务费专票由平台向买家开具,服务费确认后可申请。
  • 两类发票分别展示申请、开票方、金额、状态、文件和红冲关系。
  • 信息错误可驳回并说明;红冲保留原发票和新发票关联。
  • 发票抬头取买家企业已认证主体;纳税人识别号不可在申请时自由改成其他企业。开户地址、电话、开户行和账号由有权限人员维护并在申请时生成快照。
  • 发票状态统一为待申请、待开票、开票中、已开票、已驳回、红冲中、已红冲;操作列按状态展示“申请开票、补充资料、查看发票、查看原因”之一,不全部使用“查看”。
  • 同一可开票金额只允许存在一张有效发票申请;重复提交返回原申请。部分退款发生在开票后时,按最终结算金额发起红冲或重开,原文件不可覆盖。

异常与边界

  • 支付失败且付款单仍在有效期内归入待付款,可重试但不能重复扣款;买家取消或付款超时后交易变为已取消,不允许继续支付。
  • 付款成功后若买家希望退款或取消交易,必须创建售后单,不允许把交易退回待付款或直接改为已取消。
  • 机构成功、平台未入账进入待核对,不允许人工直接标记成功而无依据。
  • 二次结算增加金额生成补款单,减少金额原路退款。
  • 原路退款失败进入退款异常,资金保持冻结并持续对账;在合作机构确认失败前不得改用线下退款并直接标记成功。
  • 企业对公账户变更需重新核验,核验期间禁止新提现。
  • 商品专票逾期计入卖家履约信用,但不冻结全部商品货款。

验收标准

  • 货款、服务费、付款总额、卖家应收和可提现金额口径一致。
  • 重复请求与回调不产生重复付款、退款或服务费。
  • 付款失败可恢复,合作机构流水与平台编号可追溯。
  • 三个页面的付款倒计时一致;主动取消和超时取消均关闭付款入口、释放库存且保留原因。
  • 商品专票和服务费专票的开票方、金额和时点正确。

发货、物流、收货与售后模块 PRD

模块目标

支持卖家按批次发货、承运方更新运输事实、买家查看物流和确认收货,并从付款成功开始通过结构化售后与平台协调处理退款、履约和质量争议。

角色与页面

卖家履约人员使用发货与物流维护;承运方或物流接口提供节点;买家收货人员查看物流、登记实收和确认收货;平台客服处理售后;双方企业人员提交证据和确认方案。

核心对象

发货计划、发货批次、承运企业、车辆、司机、物流节点、交付资料、实收记录、数量差异、售后单、证据、回应、协调方案、争议金额和外部处理记录。

发货与物流

  • 支持单批和分批发货,累计发货量不得超过成交数量。
  • 创建批次需数量、发货时间、承运企业、车辆、司机脱敏联系方式和预计到达。
  • 物流节点保存时间、地点、状态、来源和异常说明,按时间排序展示。
  • 普通节点合并通知,异常、延迟和到达单独提醒。
  • 未知位置或接口延迟时只展示最后成功节点和更新时间。
  • 物流详情按发货批次分组,展示承运企业、脱敏车辆与司机信息、预计到达时间、最新节点和完整时间线;没有轨迹时展示发货凭证与承运信息,不伪造地图位置。
  • 物流节点来源分为卖家录入、承运接口和平台校正;冲突时不覆盖原记录,由平台校正生成新节点并保留来源。买家可查看来源说明但不可编辑物流事实。

收货与二次结算

  • 待收货页面同时提供查看物流和确认收货。
  • 买家确认前填写实收数量并确认交付资料。
  • 实收数量与成交数量一致时可确认收货,交易立即已完成。
  • 数量不一致时先创建差异记录,由双方确认后补款或退款;完成差额后回到可确认收货状态。
  • 确认收货使用幂等键,重复提交不重复完成交易或释放资金。
  • 分批发货时,买家可逐批登记实收,但只有全部成交数量均已交付或双方已确认最终数量差异后才显示整单“确认收货”;首期不提供单批次独立结算。
  • 首期不自动确认收货。全部批次显示已到达后第 1、3、5 个自然日提醒买家;第 7 个自然日仍未确认且无售后时创建平台协调待办,资金继续担保,不得仅凭物流“已签收”自动完成交易。
  • 确认收货提交前展示最终实收数量、差异处理结果和交付资料清单;提交后不可撤销,后续问题统一通过售后处理。

售后规则

  • 付款成功后所有未取消交易均提供售后入口,售后单按当前履约阶段展示可选问题和诉求。
  • 未发货阶段支持取消交易、全额或部分退款诉求;平台通知卖家确认并冻结对应款项。
  • 已发货至确认收货前支持运输异常、错发、破损、补发、退款等诉求;已经发生的运输或服务费用按双方确认方案处理。
  • 数量、包装、外观、错发和运输破损可在确认收货后 7 个自然日内申请。
  • 内在质量按合同和质保期判断,不受统一 7 日限制。
  • 售后申请包含问题类型、数量、说明、证据和诉求。
  • 平台受理后冻结争议金额,卖家提交回应,客服核验材料并组织协调。
  • 退款、部分退款、补发或赔偿方案必须由双方确认。
  • 协调未果进入外部处理中,平台保存仲裁、司法或双方协议材料,不单方面判责。
  • 售后入口按交易阶段和剩余期限动态展示;同一交易可存在多个问题,但同一问题类型、同一批次和同一争议数量只能有一个未关闭售后单,重复提交返回原单。
  • 买家在售后期最后一分钟提交并成功受理即视为期限内;页面提交失败不算受理,必须保留草稿和失败原因供重试。
  • 售后申请不是退款成功。只有双方确认方案或有效外部处理依据到达后,系统才创建退款、补款、补发或赔偿执行单,并由相应执行结果更新售后状态。

状态

发货批次:待发货、已发出、运输中、异常、已到达、已签收。售后单:待受理、待卖家回应、协调中、待双方确认、已解决、协商未果、外部处理中、已关闭。

交易存在售后单时,主交易状态仍保留原履约事实,并附加“售后处理中”标识;只有需要暂停售后外的业务动作时才禁用对应按钮。售后解决后按实际结果回到待发货、待收货、已完成或已取消,不得永远停留在售后处理中。

异常与边界

  • 发货量超出锁定数量、缺少承运信息或交易不允许发货时阻止创建批次。
  • 物流接口重复节点按外部编号和时间去重。
  • 售后逾期时说明规则;内在质量仍按合同判断是否可提交。
  • 卖家逾期未响应时自动转平台协调,不代表默认同意买家诉求;买家逾期未补材料时提醒后可关闭当前售后,但保留再次提交是否仍在期限内的校验。
  • 证据不可删除,只能补充或标记无效并记录原因。
  • 售后关闭后历史只读;新问题需按适用期限创建新售后单。

验收标准

  • 分批发货、物流轨迹、实收数量与交易数量一致可追溯。
  • 确认收货后交易立即已完成,售后状态独立展示。
  • 物流进度进入系统消息,不进入企业会话。
  • 平台只展示协调动作,所有资金或补发结果都有双方确认依据。

市场数据、推荐与交易顾问模块 PRD

模块目标

将平台商品、匿名成交和第三方现货价格转为有口径的市场数据;基于明确条件提供可解释推荐;通过交易顾问帮助用户整理需求和理解业务,但不代替企业决策。

市场数据

首期页面包含价格行情、平台成交数据、热门商品和有限市场分析,不展示独立价格走势或热门采购需求板块。

数据规则

  • 数据源包含平台在售商品、平台真实成交和后台配置的第三方现货价格。
  • 每个指标记录来源、地区、品类、规格、单位、时间、更新时间和质量状态。
  • 不同来源或口径不直接拼接为连续序列;必须先标准化并标明差异。
  • 第三方数据延迟时显示最后成功时间;无数据时不填随机值。
  • 平台成交按匿名规则聚合,样本不足时不展示可识别明细。
  • 市场分析基于明确规则和已展示数据,标明口径与限制。
  • 买家端不展示平台或企业成交额。平台成交数据只展示有效成交笔数、成交量、成交量加权均价、最高价、最低价和最新价;计价单位不一致的数据不得直接合计。
  • 成交量加权均价按 Σ(最终有效成交单价 × 最终有效成交量)÷ Σ最终有效成交量 计算,只纳入已完成且未全额退款的交易;部分退款按最终有效数量和金额重算。
  • 价格行情默认按品类、模型、地区、计价单位和自然日聚合;用户切换口径后,全部汇总和图表必须使用同一筛选条件。样本少于后台配置的匿名阈值时不显示平台成交价格点。
  • 热门商品按最近 7 个自然日有效浏览企业数、收藏企业数、询价企业数和成交量的配置权重计算;同一企业重复行为按日去重,前台不展示内部热度分。无足够行为数据时按商品有效更新时间稳定排序。

采购偏好与推荐

  • 买家完成企业账号注册后返回商品大厅并自动打开“完善采购偏好”弹窗;也可跳过,后续从企业中心修改。
  • 偏好字段与商品大厅筛选完全一致:常购品类、价格上限、最低库存、最大起订量、交付方式、付款方式、质量凭证和当前品类动态指标;不增加商品大厅无法应用的自由字段。
  • 采购偏好与商品筛选共用同一模型字段和选项。
  • 商品大厅的候选集、推荐评分、权重、同分处理和其他排序口径统一由《商品大厅、详情、企业与对比模块 PRD》定义,本模块不重复维护排序公式。
  • 交易顾问找货时先依据当前对话确认的采购条件生成真实候选集;需要对多个合格商品排序时复用商品大厅推荐排序服务,但输出应说明商品差异和推荐依据,不向买家展示推荐分、单项得分或权重。
  • 交易顾问不得用自然语言推断结果覆盖商品大厅排序服务,不得将不满足明确采购条件的商品插入推荐结果。
  • 偏好可在企业中心修改并重新保存。

交易顾问场景

支持找货、交易进度查询、采购需求草稿、市场数据解释、付款服务费、发票和售后规则咨询,并提供当前聊天框内直接接入平台人工客服的快捷入口。

对话规则

  • 找货前确认品类、数量、交货地、交期和关键质量参数。
  • 条件不完整时先追问,不直接给最终商品。
  • 推荐结果来自真实候选集,按实际有效候选数量提供商品并说明匹配与差异,不为满足展示数量生成或混入无效商品。
  • 采购需求只生成草稿,发布前由用户确认结构化字段。
  • 交易进度只读取当前用户有权限的正式交易对象。
  • 文字采用自然连续输出,买家消息右对齐,顾问消息左对齐。
  • 输入框初始为单行,文字超过一行时在限定高度内自动换行;发送图标位于输入框内部,Enter 发送。快捷入口使用有完整边框、背景和交互反馈的按钮,所在区域与对话区使用相同背景,不形成独立底栏。
  • 点击“人工客服”后不跳转页面,在当前交易顾问聊天框内切换为人工服务;系统消息展示接入时间,客服回复明确展示服务人员姓名、客服电话和服务时间。后续输入继续留在当前会话,选择其他智能快捷入口时退出人工服务状态。

交易顾问商品推荐规则

  • 交易顾问必须先把自然语言需求转换为结构化条件,并让买家确认至少以下内容:品类、采购数量、收货地址或地区、交期,以及当前品类重点指标。买家已明确“不限”的字段视为已确认,不重复追问。
  • 硬条件包括品类、采购数量所需库存、最大起订量、交期和买家明确要求必须满足的质量或规格指标;软条件包括期望价格、公路运距以及买家明确表示可协商的指标。交易顾问不得擅自把硬条件改为软条件。
  • 存在完全符合硬条件的商品时,使用商品大厅推荐分排序并最多输出 3 个商品。同一商品只出现一次;结果较多且排序条件接近时优先增加卖家多样性,但不得为此引入排名明显靠后的商品。
  • 每个结果必须使用统一商品卡片,并在卡片前或推荐小结中说明真实差异,至少覆盖价格、关键指标、库存、公路运距和成交量中有数据的项目;不得输出精确推荐分或模型内部权重。
  • 完全匹配商品少于 3 个时,展示全部已有完全匹配结果,不要求补足固定数量;同时说明结果数量和限制条件。买家主动同意放宽条件后生成新的条件版本并重新推荐,新的结果仍最多 3 个。未经买家确认,不得把不符合硬条件的商品包装成完全匹配结果;没有完全匹配商品且买家不愿放宽时,可引导生成采购需求草稿。
  • 买家修改任一条件后,上一批候选商品立即失效;新结果必须重新执行商品状态、库存、售价、企业状态和公路运距校验。
  • 公路运距无法计算的商品统一放在可计算商品之后,不向买家展示“运距待确认”标记;全部商品均无法计算时忽略运距项,并使用其他推荐因素排序。
  • 输出推荐结果时记录对话条件版本、商品候选快照、排序规则版本和推荐时间,用于继续追问、回溯和防止旧结果被误用。
  • 交易顾问不设置固定最低推荐数量,也不要求每个品类维持指定在售商品数。实际输出数量为当前对话条件下真实有效候选商品数与 3 的较小值;为 1 或 2 时全部输出,为 0 时说明没有匹配结果并提供修改条件或生成采购需求草稿的下一步。不得生成不存在的商品。

能力边界

  • 不生成不存在的商品、库存、企业、成交、信用或价格事实。
  • 不代表企业出价、接受报价、确认成交、签合同、付款或确认收货。
  • 不输出后台敏感风控信息或其他企业私有数据。
  • 无结果时说明原因,并提供放宽条件或发布采购需求。
  • 规则回答引用当前平台规则版本;无法确定时引导查看正式规则或联系平台。

异常与边界

  • 数据源异常时停止使用异常来源,不用旧数据冒充实时。
  • 推荐商品在用户点击时再次校验上架、库存和企业状态。
  • 用户问题涉及无权交易时只给通用说明,不泄露对象详情。
  • 多轮对话中用户修改条件后,旧候选结果标记失效并重新匹配。

验收标准

  • 市场指标来源、口径、更新时间和页面汇总一致。
  • 推荐可解释且不会突破硬条件。
  • 交易顾问先澄清再输出真实结果,所有正式动作进入业务页面确认。
  • 交易顾问最多输出 3 个去重商品;候选不足 3 个时输出全部真实有效候选,不为达到数量自动放宽硬条件。候选为 0 时清楚说明原因并提供修改条件或生成采购需求草稿的下一步。
  • 人工客服可在当前聊天框接入,服务人员、客服电话和接入状态展示完整,页面不发生跳转。
  • 无结果、数据延迟、权限不足和对象失效均有清楚说明和下一步。