FIELD VERIFICATION · 字段核对 P1 / 5 · 先说实话

我之前那 5 套样例,字段有一半是我按经验补的。

在 [dirty-erp.html] 里我写的是「结构参照真实 ERP 导出」——现在抓了官方文档,这句话需要拆开说清:哪几列是真的,哪几列是我编的,哪几列官方接口根本没有。

系统字段来源核实结果
聚水潭 官方开放平台文档,直接抓到完整返回字段表 ✓已逐字核对(21 个返回字段全部拿到)
金蝶 云星空 官方开发者社区问答 + WebAPI 实例(FormId: STK_Inventory) ✓核心字段已核对,未拿到完整数据字典
用友 U8 官方优普开放平台 API 中心 · 现存量查询 ✓返回字段已核对,未拿到完整数据字典
旺店通 — ✗没抓到,文档需登录。样例字段是推断
Shopify — ~列名是公开常识,但这次没逐字核对官方文档
最重要的一条:聚水潭的库存接口,根本没有「销量」和「成本价」两个字段。
我样例里写的「近30天销量 / 近6月销量 / 成本价 / 最后出库日」——这四列是我编的。真实的聚水潭库存接口不返回销量,也不返回成本。
这不是小事:它意味着客户的「一张导出表」实际不存在。销量在订单接口、成本在商品接口、最后出库日要查出库流水——必须跨三个接口拼。这条恰好是你最强的卖点,见 P5。
P2 · 聚水潭 官方返回字段 · 21 个

聚水潭的「库存」不是一列,是十三个口径。

接口:/open/inventory/query · 商品库存查询。下面每一个都是官方文档原文,不是我的推断。

来源:openweb.jushuitan.com/dev-doc?docType=3&docId=15 ↗

返回字段全表

字段名官方中文名说明
sku_id商品编码SKU 级编码
i_id款式编码款式级编码——同一个款的多个颜色/SKU 共用它
name商品名称—
qty主仓实际库存仓库里的实物数量,可用于发货
order_lock订单占有数客户下单后锁定的数量
pick_lock仓库待发数订单审核通过、正在发货中的数量
lock_qty库存锁定数锁给特定店铺/链接用的(需传参才返回)
virtual_qty虚拟库存可正可负,用来虚增/虚减同步到线上的库存
purchase_qty采购在途数采购单已生效但还没入库
allocate_qty调拨在途数仓间调拨路上
in_qty进货仓库存待检/待上架
return_qty销退仓库存客户退回、还没归位
sale_refund_qty销退在途数退货在路上(需开通才返回)
defective_qty次品库存坏货,不能卖
customize_qty_1/2/3自定义仓 1/2/3客户自定义的仓
min_qty安全库存下限系统内置字段,客户可以自己设
max_qty安全库存上限同上
modified修改时间增量同步用
ts时间戳防漏单

官方对「库存」的定义原文

qty
主仓实际库存 = 实物可发数量。分仓时 = 分仓库存 + 主仓库存
order_lock
订单占有数 = 已被订单锁定的量
pick_lock
仓库待发数 = 审核通过在发货中的量
可用数
= 主仓实际库存 − 订单占有数 + 虚拟库存 + 采购在途 + 进货仓 + 销退仓(后三项取决于业务设置)
订单可配货数
= 主仓实际库存 − 仓库待发数
公有可用数
= 主仓实际库存 − 订单占有数 − 库存锁定数 + 虚拟库存 − 虚拟仓可用数
这就是最值钱的一句话:客户说「我库存三千万」——你没法直接回答「钱压在哪」,因为三千万是哪个口径?
实物在仓(qty)、已卖出没发货(order_lock)、在发货路上(pick_lock)、退货没归位(return_qty)、次品(defective_qty)、采购在路上(purchase_qty)——这六个数的加总逻辑不同,答案差几十个点。
这一问,客户立刻知道你不是外行。而 AI 答不了,因为它不知道客户用的是哪个口径。
第二个发现:聚水潭天生就有两级编码。sku_id(商品编码,精确到颜色尺码)+ i_id(款式编码,一个款共用)。
这就是「一码多名」的官方解法——不用自己造合并逻辑,按 i_id 汇总就是「按款」,按 sku_id 就是「按色」。我在样例里编的 10001/10001B 那种问题,在规范使用聚水潭的客户那里不会出现;会出现,恰恰是因为客户没按 i_id 维护。
第三个发现:安全库存是系统内置的。接口里有 min_qty 和 max_qty 两个字段。
所以别对客户说「你没设安全库存」——更可能是他设了,但全店设了同一个数(比如统一填 45 天对应量)。这比你原来的说法更准,也更难反驳。
P3 · 金蝶 / 用友 官方开发者文档核对

金蝶和用友也是同一个套路:库存有多个口径,且都没有销量。

金蝶 云星空 · 即时库存(STK_Inventory)

来源:金蝶云社区 · WebAPI 如何查即时库存 ↗
字段名官方中文名对应我样例里的哪列
FMaterialId.FNumber物料编码✓存货编码(真的)
FMaterialId.FName物料名称✓存货名称(真的)
FModel规格型号✓规格型号(真的)
FBaseUnitId.FName基本单位✓计量单位(真的)
FBaseQty基本单位数量~我写成「结存数量」——官方叫基本单位数量,强调「基本单位」是因为一个物料可以有多单位
FStockId.FName仓库✓我样例里没有仓库列(漏了)
FStockOrgId.FNAME库存组织✗我完全没考虑「多组织」这个概念
库存金额(金额类字段)✗即时库存接口不返回金额,我编的「结存金额」要去存货核算模块才拿得到
金蝶的两个口径陷阱(官方问答里明说):不同接口字段名不一样——
inventory_stock 接口:inv_im_qty(即时库存数量)、inv_qty(可用库存)
inventory 接口:qty(即时库存数量)、valid_qty(可用量)
抓错字段名,返回就是空白——这是官方 FAQ 里的原问题。真实客户的数据拿不出来,常常不是没数据,是指标取错。

用友 U8 · 现存量查询

来源:用友优普开放平台 · 现存量 currentstock/batch_get ↗
字段名官方中文名说明
qty现存数量只代表实物存量,不是「可用」
stopqty其中冻结数量被质量/订单冻结的量,不能卖
inqty到货/在检数量在路上、还没验收
transinqty调拨在途数量仓间调拨路上
inqtysum预计入库数量含在检 + 在途
和聚水潭一模一样:现存 ≠ 可用。可用 = qty − stopqty。而且没有销量、没有成本、没有最后出库日期——和我样例里的「参考成本 / 最后出库日期」完全对不上,那两列是我编的。
P4 · 逐列校准 我编的 vs 真的

把 dirty-erp.html 的每一列,逐个打上真假标签。

✓官方文档验证 ~名字接近但不精确 ✗该接口没有,我编的

聚水潭样例(旧版 9 列 · 已修正)

我写的列名真实情况
商品编码✓官方 = sku_id
商品名称✓官方 = name
规格✗库存接口无此字段(在商品接口里)
仓库~官方用 wms_co_id(分仓编号)当参数,不是返回的「仓库名」列
可用库存~官方没有「可用库存」这一个字段,它是公式算出来的(qty − order_lock + virtual_qty + …)
成本价✗库存接口没有成本字段
近30天销量✗没有。销量在订单接口,要自己按天聚合
近6月销量✗没有。同上
最后出库日✗没有。只有 modified(字段修改时间),不等于出库时间
9 列里只有 2 列是真的——这页留作证据,实际页面已重做。现在 dirty-erp.html P2 已换成官方 21 个字段,xlsx 也重新生成了。保留这张表,是因为它能说明一件事:编字段最容易编错的,恰恰是「卖得好不好」那一类——见 P5。

金蝶 / 用友样例

我写的列名真实情况
存货编码✓金蝶 FNumber / 用友 cInvCode
存货名称✓金蝶 FName
规格型号✓金蝶 FModel
计量单位✓金蝶 FBaseUnitId.FName · 我编的「个/箱/打」单位混乱是真的会发生的
结存数量~金蝶官方叫「基本单位数量 FBaseQty」;用友叫「现存数量 qty」
结存金额✗即时库存/现存量接口都不返回金额,要去存货核算模块
存货分类~真实有,但不在这两个接口的返回里
现存量✓用友 qty
参考成本✗现存量接口没有
最后出库日期✗没有——死货判断必须另查出库流水
清洁的结论:我编对的都是「这是什么货」类字段(编码、名称、规格、单位),编错的都是「它卖得怎么样、值多少钱」类字段(销量、成本、金额、最后出库日)。
这说明一件真事:ERP 里存的是「现在有什么」,不存「卖得好不好」。卖得好不好要自己从订单流水算。
P5 · 结论 为什么这是最好的卖点

「你的 ERP 导不出我需要的表」——这句话本身就值钱。

抓完官方文档,才发现客户最痛的地方不是算不出来,是根本拼不出来。

客户的以为错

「我有 ERP,点一下导出就有数据了。」

真实情况对

库存接口只有「现在有什么」。没有销量、没有成本、没有最后出库日。

要凑一张诊断底表,最少要拼三处数据

我要的列从哪来聚水潭金蝶用友
编码 / 名称 / 规格库存接口✓一家搞定✓✓
库存数量库存接口✓21 个口径要选✓2 个口径✓5 个口径
销量订单/出库流水,按天聚合✗另一个接口✗另一模块✗另一表
成本 / 单价商品资料 / 存货核算✗另一个接口✗另一个模块✗另一表
最后动销日出库流水取最大值✗要自己算✗要自己算✗要自己算
库存金额数量 × 成本,自己乘✗两个接口拼✗另一模块✗另一模块
六类数据,没有一家 ERP 能一张表给你。客户点「导出」,导出来的永远是其中一块。
而做诊断需要全部六块,还要对齐口径、对齐时间窗口、对齐单位。这就是数据整备的真实工作量,也是 AI 拿不到的东西——AI 连你有哪几个接口都不知道。

你可以直接说的三句话(都有官方文档撑腰)

1.「你说库存三千万,是哪个口径?」
聚水潭一个库存查询返回 13 个数量字段:实物、订单占有、待发、锁定、虚拟、采购在途、调拨在途、进货仓、销退仓、次品、自定义仓 ×3。金蝶 2 个、用友 5 个。选错口径,结论差几十个点。
2.「你的库存表里没有销量,对吧?」
官方库存接口明确不返回销量。要算「压了多久」,必须去订单/出库流水自己聚合。这一问,客户立刻知道你摸过系统。
3.「你的安全库存,是不是全店一个数?」
聚水潭有 min_qty / max_qty 两个官方安全库存字段。不是「没设」,是「设了个统一值」——这比说他偷懒更准,也更难反驳。
下一步该改什么:
① ✅ 已改 [dirty-erp.html] 的聚水潭样例已按官方字段重做成 20 行 × 21 列(接口返回的 21 个字段一个不删,另加 5 种「可用」口径对照页),xlsx 同步重生成。
② ✅ 已改 「一码多名」的讲法已换成 sku_id 与 i_id 的两级编码关系。
③ ⏳ 旺店通和 Shopify 还没核对——旺店通开放平台需企业认证,等你注册后补抓;Shopify 页面上标「未验证」。标未验证比装作验证过安全得多。