PQ-260226 报价分析

Sengliy Engineering — AutoCount Portal 单向同步 Plugin

原稿 RM 8,500 → 修订建议 RM 12,500 状态:草稿,未发客户 拟稿:Dhai 分析:2026-08-25 含 Jay 指示 R1(08-25 18:54)

技术范围写得好,商务条款不能这样发。

三个 blocker 必须改 —— ① 报价编号跳号PQ-260226 跳过了 PQ-260225)· ② 模板三缺陷未修(缺 -R0、有效期非硬日期、签署人占位)· ③ 签署人是 Dhai 不是董事。 另有两个价格问题需要 Jay 拍板。好消息是报价还没发给客户 —— 客户群最后一条是 08-25 15:46「pls use sengliy Engineering」,现在改零成本。

时间压力:08-24 已向客户书面承诺「quotation within this week」,今天周二,剩 3 个工作日。

R1Jay 指示(2026-08-25 18:54)

范围变更以下 8 条是 Jay 本轮下达的修订指示,优先于本页原有建议。 Dhai 修订时以本段为准。

#Jay 的指示对报价的具体动作影响
1 本页没有交代报价编号最终用哪个 本轮修订出的版本定为 PQ-260226-R1;编号方案见下方决议框 编号
2 客户还要一个界面,能设定一天可以触发几次同步 —— 现在是每天一次,将来可能要更频繁 Core Module 明写「可配置同步频率 / 每日触发次数」,不只是「Settings from UI」 范围 ↑
3 Document Lock 提到 RM 2,000 可选模块单价 RM 1,000 → RM 2,000 +RM 1,000
4 新增 Audit Module —— 比对 Portal 与 AutoCount 两边已同步单据的一致性,方便客户日后除错 新增可选模块 RM 3,000 +RM 3,000
5 Portal 上已同步单据被修改后要重新同步,让 AutoCount 反映最新数据。问 Dhai 知不知道这块 —— 会加复杂度,且依赖客户程序员的 API,他们的 bug 会影响我们。要做 audit trail 降低我们的责任 Core Module 明写 re-sync on edit + 同步 audit trail;条款加一句「Portal API 缺陷导致的同步失败不属我方责任」 范围 ↑
6 客户不要年费。On-site 培训可另外收费,线上培训不另外收 AMC 改为 optional 一行(不主推);培训条款拆成 on-site 收费 / online 免费 条款
7 AutoCount 升级如果需要我们改代码,另开报价 🔴 删掉现稿「6 个月免费维护含 AutoCount 版本升级导致的错误」,改为明确排除 风险 ↓↓
8 维护合约放 optional;若错误是客户端自身问题造成,收 RM 350/次 AMC 段照此改写 条款
9 交期「within 4 weeks from kickoff」要写清楚 kickoff 定义为「收到订金」与「客户交付 Portal API 文档」两者中较晚者 条款

仍待 JayCore Module 的最终价格还没定。 本页建议 RM 12,500(守 RM 10,000)。第 2、5 两条指示又把 Core 的范围往上加了 (可配置触发频率 + 编辑后重新同步 + audit trail),RM 8,500 更站不住

编号决议建议:Sengliy 保留 PQ-260226,把 PQ-260225 锁给逾期未出的 PSVS R2。

理由:不留永久空号,也不必重做已经切图上线的文件。登记册 Open item #3 本来就欠一个 PSVS R2 号 (R1 带着已知缺陷在外面),260225 正好填进去。

本轮修订产出的版本号:PQ-260226-R1 (原稿 PQ-260226 无 revision 后缀,视为 R0,从未发出)。

⚠️ 连带修正:登记册 Open item #3 现写「PSVS R2 用 PQ-260224」—— 该条已过期,PQ-260224 已在 08-19 被 Yoongmei 消耗。

修订后金额按 Jay 指示重算(Core 取建议价 RM 12,500):

原稿修订后
Core Module(含新增两项范围)RM 8,500RM 12,500 待 Jay 确认
Master Data Sync(可选)RM 2,600RM 2,600
Document Lock(可选)RM 1,000RM 2,000
Audit Module(可选,新增)RM 3,000
其他 add-on(单据类型 / 第 2 个 DB / 双向同步 / on-site 培训)见第 4 段
可选模块池RM 3,600RM 7,600 +

前提更正Sengliy 不是新客户 —— 关系已经九个月。

证据在 WA 群 SengLiy x VSTECS KU120363402423833016@g.us,5 人: WeiKeng、Justin Koh (VSTECS)、Jay、Jas、Tenzo AWS Cloud)。2025-12 起就在一起做 AWS Bedrock POC,Prisma 在中间协调 VSTECS 与 AWS 处理 Bedrock quota 问题。 payment-to-sengliy-rm7000 对应的是那条线上的 reimbursement ——2026-05-06 WeiKeng 追问 「any update on the reimbursement? It is already May now 😅」, 即钱是往 Sengliy 方向走的

三点直接影响这份报价:

⚠️ 一个关系上的疙瘩:那笔 reimbursement 曾拖到客户主动 追问。这不是降价的理由,但确实是别再让他觉得吃亏的理由 —— 该给的条款要清楚, 该收的钱要收。

逐段分析

Jay 指示 R1(08-25 18:54)— 先读这段

  1. 抬头与报价号
  2. 主项目行与单价
  3. Core Module 范围
  4. 可选模块
  5. 交期与维护
  6. 客户须提供
  7. 条款
  8. 付款条件
  9. 总额与签署

01抬头与报价号

报价单抬头
PQ-260226.pdf 第 1 页 — 抬头、报价号、客户资料

BLOCKER 1报价编号跳号。

登记册记载下一个可用号是 PQ-260225(最高已发 PQ-260224 = Yoongmei), Dhai 直接用了 PQ-260226,跳过 260225 留下永久空号。登记册规则明确写着 「Never reuse a number」,但也没有留空号的机制 —— 空号会在日后审计时变成「有一份报价不知去向」。

两条路:① 保留 260226 给 Sengliy,把 260225 锁给逾期未出的 PSVS R2(推荐,正好填坑); ② 把 Sengliy 降到 260225。因为还没发客户,两条都免费。

BLOCKER 2编号缺 -R0 后缀。

登记册 Open item #7 是点名给 Dhai 的模板整改,要求编号栏写成 PQ-YYNNNN-Rn。这份仍然只有 PQ-260226。同一整改项里的另外两条(硬日期、 签署人)也全部没改 —— 详见第 8、9 段。

核对抬头写的是 SENG LIY ENGINEERING (M) SDN BHD + 8, Jalan Tiram 14, Taman Perindustrian Tiram, 81800 Ulu Tiram, Johor + TEL +65 8161 9788

客户 08-25 15:46 只说了六个字「pls use sengliy Engineering」。完整注册名和整个 Johor 地址不在那句话里。既然是老客户,正确做法是从上一单的单据里调出来核对,而不是重新拼。 发出前确认一次 —— 抬头错的报价在客户内部采购走不通。

马来西亚地址配新加坡电话本身不矛盾(本地实体 + SG 联系人 WeiKeng),不必当成错误。

02主项目行与单价

主项目行
单行项目:ONE-WAY DATA SYNC PLUGIN — RM 8,500.00

整份报价只有一个 line item。结构上没问题(可选模块另列),但 RM 8,500 这个数字有问题

项目内容价格状态
Melody WMS
PQ-260203
AutoCount ↔ QianYi WMS 同步 plugin,含 6 个月支持 RM 13,900 ✅ 已签、已上线
IOFiz
PQ-260223
AutoCount API 集成 3 模块 RM 7,000–9,000
+ RM700/年
已发,无回应
Sengliy
PQ-260226
Portal → AutoCount 同步 plugin,含 6 个月维护 RM 8,500
无 recurring
草稿

价格 1报的是 Melody 的 61%,而功能面并不更简单。

Sengliy 比 Melody 多出来的部分:JWT token 自动刷新与重试、UI 设置面板、桌面弹窗 + 邮件双通道告警、 按 DocNo 的日志与失败重跑。这些都是真工作量。

更关键:客户从来没有嫌贵。

08-24 16:29  Jay:We will compile the quotation within this week
08-24 16:50  客户:Great! looking forward 👍
08-25 15:52  Dhai(内部):sengliy 10k too expensive,RM 8,400 is my 心里价钱

这个降价完全来自内部,不是客户压出来的。原本的 RM10k 没有任何一方反对过。 加上 Sengliy 是老客户 —— 老客户是议价筹码,不是降价理由

建议 Core Module 报 RM 12,500,理由随手可给(Melody 同类 13,900、本单多出告警/UI/日志重跑)。 若想快签,最低守 RM 10,000,别低于 Melody 的 70%。

决定性证据这个客户每年在 AWS 上花 RM 31,000。

Notion 页 SengLiy Agentic AI Platform Development(2025-10)里有他们自己的基础设施预算:

金额
AWS 月度成本USD 581.12 ≈ RM 2,580
AWS 年度成本USD 6,973.44 ≈ RM 31,000

RM 8,500 → RM 12,500 的差价是 RM 4,000 —— 还不到他们两个月的云账单。 一个自建 agentic AI 平台、年付 RM31k 基础设施的客户,不会因为这 RM4,000 走掉。

而且他们敏感的不是总价,是计价方式。同一份 Notion 记录写着:Google 方案 「expensive per-user」、Amazon Q 「too costly per-user basis」,他们明确要 usage-based pricing。→ 谈价要按价值和用量讲,不是压总价。

锚定风险这是第一笔付费单,会给后面所有单定价格锚。

同一份 Notion 页记录了一个还敞开着的更大机会:Prisma 的 AI-LiveChat 平台与 Sengliy 需求高度契合(AWS 托管、usage-based 计价、 多渠道、RAG 架构),列了三种合作模式 —— white-label / joint development / referral partnership。

2025-09-04 会议的 action item「Jay/Prisma: Discuss AI-LiveChat collaboration potential至今从未关闭

AutoCount 这单把价格锚在 RM8,500,AI-LiveChat 的报价空间会被自己压低。 这是比 RM4,000 差价大得多的代价。

要价的点Notion 记录 Sengliy 「no dedicated cloud engineer available」, 所以架构选型一路偏向托管服务。这条对本项目同样成立 —— 报价里的 Settings from UI · Fail alert · Log by DocNo + retry 正是 替客户省掉运维人力的功能,对一个没有专职工程师的团队价值极高。 这些是该要价的点,不是该砍的点。

03Core Module 范围

Core Module 范围
Core Module — DO + GRN,六条功能定义

写得好这是整份报价最强的部分,六条每一条都指向一个真实的失败模式:

这几条读起来是懂 AutoCount 集成的人写的,技术可信度高,原样保留

Jay 指示 2补一条:同步频率 / 每日触发次数要能在界面上设定。

客户现在的需求是「每天自动同步一次」,但将来可能要更频繁。现稿的 「Settings from UI」写得太笼统,客户读不出这一层。改成明确的一条:

Configurable sync schedule from the UI — the user can set how many times per day the sync runs (default: once daily), without any code change or vendor involvement.

这一条对客户价值很高(他们没有专职工程师,改频率要能自己动手), 而且写清楚等于把「以后想改频率」这件事从未来的免费支持请求变成今天就交付的功能是加价理由,不是白送。

Jay 指示 5 · 要问 DhaiPortal 上已同步的单据被改了,要能重新同步。

客户 08-24 的书面需求第 5 条其实已经包含这个意思 (「If exists, perform update/cancel. Otherwise, insert as new record」)—— 所以这不是新增范围,是已经承诺了的范围。问题在于复杂度被低估了:

两个动作:

问 Dhai:这一块你知道吗?评估过工时吗?如果他报 RM 8,500 时没把 「edit → re-sync」的比对逻辑算进去,那这个价更加不能发。

加同步 audit trail 降低我方责任 —— 每一笔写进 AutoCount 的动作都留痕: 时间、DocNo、动作(insert/update/cancel)、来源 payload、结果。出事时能立刻指出 「我们收到的就是这个」。配套条款:

The Plugin syncs the data as returned by the Client's Portal API. Defects, omissions or incorrect data originating from the Portal API are not the Vendor's responsibility; the sync audit trail is the reference record in any dispute.

💡 这条 audit trail 是内建在 Core 的责任护栏, 与第 4 段那个可选的 Audit Module(RM 3,000)不是同一件事 —— 后者是给客户自己比对两边一致性用的工具。两者都要,别混为一谈。

议价材料反过来看 —— 这六条就是 RM8,500 太便宜的证据。 把它们摊开谈,RM12,500 完全站得住:单是 UI 设置面板 + 双通道告警 + DocNo 级日志重跑, 就已经超出「一个同步脚本」的范畴了。加上 Jay 新指示的可配置触发频率、编辑后重新同步、 同步 audit trail 三项,Core 的工作量比原稿定价时又多了一截。 谈价时把这段念给客户听。

04可选模块

Adhoc 可选模块
Adhoc Module — 两项可选,合计 RM 3,600

价格 3Jay 要的是「a lot of optional add-on」,这里只有两个。

08-25 15:52 Jay 的原话是 「Put a lot of optional add-on for them」。现有两项合计 RM 3,600,锚定作用太弱 —— 客户看完只会觉得「主菜 8,500,加菜 3,600」,总盘子还是小。

修订后的完整可选模块池(含 Jay 指示 3、4):

Add-on价格来源
Master Data Sync(Stock Item / Debtor / Creditor) RM 2,600原稿
Document Lock(AC Scripting,Portal 保持 single source of truth) RM 1,000RM 2,000 Jay 指示 3
Audit Module — 比对 Portal 与 AutoCount 已同步单据的一致性, 出差异出报表,供客户日后自行除错 RM 3,000 Jay 指示 4(新增)
追加单据类型(Invoice / PO / Sales Order),每类RM 1,800建议
第 2 个 company databaseRM 2,200建议
双向同步(AutoCount → Portal 回写状态)RM 6,500建议
On-site 部署 + 用户培训(半天,JB 区)
线上培训不另收费 — Jay 指示 6
RM 1,200建议
Annual Maintenance Contract(optional,第 7 个月起)
客户不要年费 → 放着锚定,不主推 — Jay 指示 6、8
RM 2,400/年建议

Add-on 池做到 RM15k+,RM12,500 的 core 看起来才合理。这是定价心理,不是灌水。

Jay 指示 4Audit Module 是这轮加得最好的一个 add-on —— RM 3,000。

它做的事:定期(或按需)把 Portal 与 AutoCount 两边已同步单据逐笔比对, 列出只存在于一边、金额/数量对不上、状态不一致的记录,出一份差异报表。

为什么它好卖:

⚠️ 写进报价时要和 Core 里的 sync audit trail 明确区分:Core 的 trail 记录我们做了什么;Audit Module 检查两边现在一不一致。 否则客户会问「我不是已经有 audit 了吗,为什么还要付 RM3,000」。

用词「Adhoc Module」这个命名会造成混淆。 同一份文件里,第 3 段已经用 adhoc trigger 表示「用户手动触发同步」。 一个词两个意思,客户读到「Adhoc Module」会以为是跟手动触发相关的东西。 改成「Optional Add-on Modules」。

写得好Document Lock 那条的论证方式值得保留 —— 它不是罗列功能,而是给了一个理由:「so the Portal stays the single source of truth」。 这是卖点写法。而且顺手把 AC Scripting licence 的成本推给客户,干净。

05交期与维护

交期与维护
Delivery:4 周 · Maintenance:6 个月免费

Jay 指示 7 · 最重要的一处改动 🔴 删掉「6 个月免费维护含 AutoCount 版本升级导致的错误」。

现稿这句话等于:AutoCount 每年升级一次,我们免费承担一整个升级周期的适配工作, 而且没有上限。Jay 的指示是明确的 —— AutoCount 升级如果需要我们改代码,另开一份报价。

改成:

The 6-month warranty covers defects in the Plugin as delivered.
It does not cover changes required by an AutoCount version upgrade. Where an AutoCount upgrade requires code changes to the Plugin, these will be quoted separately.

这一条单独就值这份 review。原稿把一个开放式、逐年重复、金额不可预估的风险 白送了出去;客户从来没要求过这个。

Jay 指示 6 + 8年费改成 optional,客户端自身问题按次收费。

Jay 的判断是客户不会要年费,所以 AMC 不主推 —— 但仍然写上去, 作用是锚定价格:第 7 个月起支持是有价的,不是默认免费。

Annual Maintenance Contract (optional, from month 7) — RM 2,400/year.
Covers Plugin bug fixes only.
Without an AMC, or where the issue is caused by the Client's own environment, data or Portal API — support is charged at RM 350 per incident.

「客户端自身问题按次收费」这半句是关键。没有它,客户端 PC 关机、 网络断掉、他们程序员改坏了 API —— 每一次我们都要免费去查。 Melody WMS 此刻就在替我们演示这个后果。

Jay 指示 6培训拆成两档:线上免费,on-site 收费。

Online training and handover session — included.
On-site deployment and training (half day, JB area) — RM 1,200 per session.

这样写对双方都干净:客户拿到「有培训」的安心(而且线上培训我们成本极低), 真要人跑一趟 JB 时我们收得到钱。比笼统写「培训另议」好谈得多。

Jay 指示 9「within 4 weeks from kickoff」—— kickoff 写死定义。

是收到订金那天?还是客户交出 Portal API 文档那天?Jay 确认要写清楚, 定义成两者中较晚者

Delivery: within 4 weeks from kickoff.
"Kickoff" means the later of (a) receipt of the 50% deposit, and (b) the Client's delivery of complete Portal API documentation and test credentials.

没有这个定义,客户拖三周才给 API 文档,逾期的却是我们

06客户须提供

Client to Provide
Client to Provide — API 文档、AutoCount SQL 权限、常开 Windows PC、UAT

写得好「always-on Windows PC」这一条是有前车之鉴的。 Melody WMS 此刻就卡在这上面 —— 客户端 PC Offline,我们干等了 5 天。把它写进客户责任是对的。

缺口写了要求,没写不给的后果。 这一条现在只是一句愿望。补上:

Delay caused by Client-side items not being ready extends the delivery date day-for-day and does not defer the payment milestones.

没有这句,客户端拖延时我们既交不了货、又收不到钱 —— 正是 Melody 现在的处境。

07条款

Terms
Terms — 范围边界、排除项、变更管理

写得好这段是整份报价第二强的部分:

缺口没有 SST / 服务税声明。 RM 8,500 是含税还是不含税?Prisma 若已注册 SST,这一栏空着会在开票时变成争议。 加一行 All prices exclude SST where applicable.(或按实际情况写明含税)。

08付款条件

Payment
Payment — 50% 签约 / 50% UAT,有效期 30 天

条款漏洞UAT 无时限 → 尾款可以无限期悬空。

现在写的是「50% signing, 50% UAT」,但没有规定 UAT 必须在什么时候完成。 客户只要不做验收,我们的 RM4,250 就永远收不到,而且没有违约可言。

这不是假设 —— Melody WMS 此刻就在这个坑里。补上:

UAT to be completed within 14 days of delivery notice.
Not completed within 14 days = deemed accepted and the balance falls due.

BLOCKER 2(续)「Valid 30 days」不是硬日期。

登记册 Open item #7 明确要求 Valid until 必须写死日期。相对天数的问题在 Lima Bintang 那份已经栽过一次 —— 从哪天起算、客户和我们各算各的,到期时无法主张。

改成 Valid until: 24/09/2026

09总额与签署

Total and signature
Total RM 8,500.00 · CIMB 8605693705 · 签署人 DHAI

BLOCKER 3对外报价的 Authorised Signature 是 Dhai。

Dhai 是 lead dev,不是董事。这已经是第二次 —— PQ-260224(Yoongmei,RM15,000) 也是他签的。是模式,不是意外。

金额争议或走法律程序时,非董事签署的报价,其签署权限会被对方质疑。 Sengliy 是老客户且有跨境成分(SG 联系人),更不该在这里留口子。

改成 Jay 或 Kae Shyong 签署。Dhai 可以留在 Prepared by 一栏。

留意「20% cancellation fee」这条是从货品模板继承来的。 原文写的是 「Goods sold are neither returnable nor refundable」 —— 这是卖货的措辞, 软件开发项目套用会显得模板化,而且真要主张 20% 违约金时,「goods」的定义会成为争点。 建议改写成按已完成阶段计费的措辞。

修订清单 → PQ-260226-R1

给 Dhai 的一句话下面 13 项做完 = R1 定稿。第 1 项要 Jay 先给数字, 第 5 项要你先回答「知不知道 / 算没算工时」。其余可以直接动。

#动作时限
1定 Core Module 价格 —— 建议 RM 12,500(守 RM 10,000)。 Jay 指示 2、5 又加了范围,RM 8,500 更站不住Jay今天
2编号:Sengliy 保留 PQ-260226PQ-260225 锁给 PSVS R2; 本轮版本号 PQ-260226-R1Jay 确认今天
3🔴 回答:「Portal 单据编辑后重新同步」这块你评估过吗?工时算进 RM 8,500 了吗? (Jay 指示 5)Dhai今天
4Core 加写「可配置同步频率 / 每日触发次数」(Jay 指示 2)Dhai明天
5Core 加写「Portal 单据编辑后 re-sync」+ 同步 audit trail + Portal API 缺陷免责条款(Jay 指示 5)Dhai明天
6Document Lock RM 1,000 → RM 2,000(Jay 指示 3)Dhai明天
7新增 Audit Module RM 3,000(Jay 指示 4)Dhai明天
8🔴 删掉「6 个月免费维护含 AutoCount 升级导致的错误」, 改为「升级需改码 → 另开报价」(Jay 指示 7)Dhai明天
9AMC 改 optional RM 2,400/年;无 AMC 或客户端自身问题 → RM 350/次 (Jay 指示 6、8)Dhai明天
10培训拆档:线上免费 / on-site RM 1,200(Jay 指示 6)Dhai明天
11kickoff 定义 = 订金到账 与 客户交 API 文档 两者中较晚者(Jay 指示 9)Dhai明天
12PQ-260226-R1 编号格式、Valid until 24/09/2026签署人换董事(Jay 或 Kae Shyong)Dhai明天
13补 UAT 14 天条款 + 客户端延误 day-for-day 条款 + SST 声明; 「Adhoc Module」改名「Optional Add-on Modules」Dhai明天
14从上一单单据(2026-05 Sengliy 开给 Prisma 的 RM 7,000 invoice)核对完整注册名与地址Dhai明天
15改好后登记进 quotation-register + CRM,再发客户发出前

时间线08-24 已承诺「quotation within this week」。今天是周二, 剩 3 个工作日,而且 Dhai 周六日休息 —— 周末不是缓冲。 第 1、2、3 项今天定,Dhai 明天一天能改完,周四发出仍在承诺内。

仍然欠着Chang 的三方案成本对比(SDK dll / Web API / plugin) 从 08-24 到现在没交,而这份报价已经按 plugin 定稿定价。 若对比结论指向另外两个方案,整份报价重做。 客户 08-07 一开口要的就是这个对比 —— 我们等于跳过了他的问题直接给答案。

附:报价原件

PQ-260226 第 1 页
PQ-260226 — 第 1 页
PQ-260226 第 2 页
PQ-260226 — 第 2 页