如何通过SuiteTalk API配置批次编号商品的NetSuite库存调整?
解决NetSuite REST API库存调整请求中inventoryDetail字段的400错误
核心配置逻辑
NetSuite的inventoryAdjustment记录对inventoryDetail有强校验要求:它必须和外层库存调整行的关键信息严格匹配,包括数量、仓库、批次/序列号(若启用),任何不匹配都会触发400错误。
有效请求JSON示例
以下是经过验证的请求结构,重点看inventoryDetail的嵌套规则:
{ "subsidiary": {"id": "1"}, "account": {"id": "123"}, "inventory": [ { "item": {"id": "456"}, "location": {"id": "789"}, "adjustQtyBy": 5, "inventoryDetail": { "inventoryAssignment": [ { "quantity": 5, "location": {"id": "789"}, // 若物料为批次管控,必须添加以下字段 "inventoryNumber": {"id": "101112"}, "expirationDate": "2025-12-31" } ] } } ] }
常见错误排查清单
- 数量不匹配:
adjustQtyBy的数值必须和inventoryAssignment中所有quantity的总和完全一致,不能有偏差。 - 必填字段缺失:批次/序列号管控的物料必须传
inventoryNumber;所有库存行的location要和inventoryDetail内的location保持一致,且不可省略。 - 格式错误:日期字段必须用
YYYY-MM-DD格式,所有内部ID需以字符串形式传入。 - 功能未适配:如果物料启用了批次/序列号管理,但请求中未对应传入相关字段,必然触发校验失败。
调试实用技巧
- 先在NetSuite UI手动创建一条相同的库存调整记录,再通过GET请求
/services/rest/record/v1/inventoryAdjustment/{记录ID}获取其JSON结构,对比自己的请求找差异。 - 确认请求头已设置
Content-Type: application/json,避免格式解析错误。 - 查看400错误的响应体,NetSuite会在
o:errorDetails里给出具体的字段错误提示,比如哪个字段缺失或格式非法。
内容的提问来源于stack exchange,提问作者Paul Orozco
相关产品推荐
相关产品推荐

