报价齐 · 办公耗材报价比对与 Excel 报告
> ⚠️ 使用说明与免责:本 Skill 输出的是报价整理结果,不是采购建议、不构成任何采购或投资决策意见,也不承诺节省金额。
> 差额只描述报价差异;供应商信用、交期、售后与质量未参与比较。使用者须自行核对并承担决策后果。
0. 这个 Skill 做什么
面向小企业行政 / 采购执行人员:把同一采购需求的多家标准报价,按明确的包装单位与含税口径放到同一张表里比较,
识别缺项与不可比项,生成可核对的四表 Excel。适合每月反复整理报价的场景。
这一版只做办公耗材类、字段明确的标准报价,不做 PDF/图片识别、不做替代品推荐、不做跨币种、不做拆单混采。
1. 什么时候用
用户出现以下意图时使用:
- 「把这几家报价整理成一张能核对的比价表」
- 「整箱和单包怎么比 / 含税不含税怎么放在一起比」
- 「这份报价少了几个商品,能不能算总价」
- 「三家里哪家完整报价最低,差多少」
- 「采购清单和报价表给我一个能填的模板」
不适用:供应商资质评估、议价策略、代下采购单、替用户联系供应商、把 PDF/图片报价转成结构化数据。
2. 工作流
Step 1 — 收集输入
最少输入:
- 采购清单:采购项编号、品牌、型号、规格、基础单位、需求数量;
- 报价(2~3 家):供应商标识、含税总运费,以及每行的编号、品牌/型号/规格/基础单位、
每包装基础数量、每包装单价、单价是否含税、税率(未税必填)、起止订量约束(最少采购包装数、下单包装倍数)。
字段规范与模板见 references/INPUT_SPEC.md。客户自己的表格可用固定别名映射(如「采购编号」「规格型号」「装箱数」「是否含税」「起订量」),
映射结果会在预检中列出;歧义列名(如笼统的「数量」)会被明确拒绝,不猜测。
Step 2 — 先做免费预检(不上传任何文件到外部)
在本地完成:列名映射、必填校验、数值与口径检查,逐行给出「文件 / 行号 / 字段 / 问题 / 修正建议」。
常见问题:缺项、含税口径未知、运费未知、型号与需求不一致、同一供应商同一采购项重复行、清单之外的额外行、非法数值。
Step 3 — 判断能不能出「比价结果」
至少两家完整报价才可以比较。完整报价 = 覆盖全部采购项 + 含税口径明确 + 运费明确 + 无重复行 + 无额外行。
只有一家完整报价时:免费显示检查结果,不按「比价」出售。存在额外行时,需先移除或加入采购清单。
Step 4 — 生成完整报告(付费,按次)
付费后由服务端交付 四表 Excel:
- 比价总览:完整 / 不完整报价分区,含税运费、商品金额、到岸总额、问题说明;
- 逐项对比:每个采购项在各供应商下的采购包装数、实际数量、多购数量、含税金额;
- 问题列表:文件 / 行号 / 字段 / 问题 / 客户可采取的修正;
- 口径说明:计算公式、输入版本、时间、数据来源与保留期限。
Step 5 — 复核与复算
报告中的每个金额都可由「每包装单价 × 采购包装数(含税换算后)」复算;
单价是否含税、税率、运费口径均按客户填写值使用,未填写的不会代为猜测。
3. 调用方式(买方侧)
# 1) 环境自检(服务配置 + 支付宝官方支付 CLI)
node scripts/quoteqi-paid.mjs check
# 2) 提交请求,取得账单(不会产生任何付款)
node scripts/quoteqi-paid.mjs probe --input sample/sample_request.json --state-dir ./.quoteqi/session1
# 3) 取得用户对本次金额的明确授权后付款
node scripts/quoteqi-paid.mjs pay --state-dir ./.quoteqi/session1 --authorized-price 19.90
# 4) 查询并取回结果
node scripts/quoteqi-paid.mjs complete --state-dir ./.quoteqi/session1 --trade-no <交易号>
# 5) 把交付内容落盘(xlsx + 摘要 JSON)
node scripts/quoteqi-paid.mjs render --input <服务响应JSON> --out-dir ./out
- 计费:19.90 元 / 次(支付宝 AI 付,402 闭环;付款由支付宝官方 CLI 在您授权后完成)。
- 请求体字段:见
schemas/quoteqi_request.schema.json,可直接使用sample/sample_request.json(虚构示例,两家供应商)。 - 服务端在出具报告前会做校验:采购清单本身有效、至少两家完整报价、无清单之外的额外行、金额在支持范围内。
任一不满足会拒绝且不产生账单。
3.1 支付与查询规则
- 付款必须经您明确授权本次金额后才发起;未获授权不会扣款。
- 已发起付款的会话请用
complete/recover查询进度,不会重复扣款。 - 若暂时丢失查询凭证,用
recover只读恢复原交易即可,无需重新下单。
4. 计算口径(可核对)
initial_packs = ceil(需求数量 / 每包装基础数量)
purchase_packs = ceil(max(initial_packs, 最少采购包装数) / 下单包装倍数) * 下单包装倍数
actual_base_qty = purchase_packs * 每包装基础数量
gross_pack_price = 每包装单价 (单价含税时)
gross_pack_price = 每包装单价 * (1 + 税率) (单价未税时)
line_total = ROUND_HALF_UP(purchase_packs * gross_pack_price, 2)
landed_total = Σ line_total + 含税运费
- 全链路使用十进制运算,不提前舍入单价;每行按分 ROUND_HALF_UP 后求和。
- 采购包装数按包装向上取整,并同时受「最少采购包装数」与「下单包装倍数」约束——只看每包折算价会算错。
- 差额 = 最高完整报价 − 最低完整报价;占比以最高完整报价为分母。
- 不计算逐项最低价相加的「混采金额」(拆单会改变运费、起订与商业条件)。
5. 质量保障
服务端在出具完整报告前会逐项核对,任一项不达标都会退回重做:
- 没有用历史价格趋势替代当前报价;
- 包装数量、起订量、下单倍数全部按填写值执行;
- 缺项、口径未知、运费未知、型号不符、重复行、额外行不进入完整排名;
- 只有一家完整报价时不出具比价结果;
- 并列最低全部保留;
- 报告保留输入版本与数据来源,可复算;
- 输出中始终保留「非采购建议」的声明。
6. 数据与隐私
- 请求内容仅用于生成本次比价报告;服务端不把客户报价用于训练、宣传或其他客户的商品词典。
- 报告内容按次交付;调用方可自行决定本地保存期限。订单与支付记录由支付与服务平台按其规则保存。
- 不要在请求中放入与比价无关的个人信息或商业机密。
7. 支持范围与限制
| 支持 | 不支持 |
|---|---|
| 结构化 JSON 报价(由调用方按规范解析 CSV/XLSX) | PDF / 图片 / 聊天截图识别 |
| 人民币(CNY)、单次 200 个采购项、3 家供应商 | 跨币种换算 |
| 明确品牌 / 型号 / 规格 / 基础单位的同款比较 | 替代品推荐、模糊匹配 |
| 含税与未税口径统一(税率由客户填写) | 税负判断、进项税抵扣 |
| 包装单位换算与起订/倍数约束 | 拆单混采最优组合 |