You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

NetSuite销售订单行级inventorySubsidiary与inventoryLocation字段设置问题

NetSuite SOAP API: Setting Inventory Location & Subsidiary on Sales Order Lines

我之前也踩过这个坑——NetSuite的SalesOrderItem对象本身并没有inventoryLocationinventorySubsidiary这两个字段,你直接在item节点下添加它们肯定会报错。要给销售订单行设置这两个属性,必须通过Inventory Detail结构来包装行级的库存分配信息,也就是用inventoryDetail节点嵌套inventoryAssignment来实现。

正确的SOAP请求结构示例

下面是修改后的请求片段,重点看item节点里新增的inventoryDetail部分:

<soap:Body>
 <add xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
 <record xsi:type="q1:SalesOrder" xmlns:q1="urn:sales_2016_1.transactions.webservices.netsuite.com">
 <q1:entity type="customer" internalId="$#AccountTSANSIntIDReal#$"/>
 <q1:memo>$#Remark#$</q1:memo>
 <q1:tranDate>$#ActionDateTime#$</q1:tranDate>
 <q1:customForm internalId="100"/>
 <q1:subsidiary internalId="30"/>
 <q1:location internalId="202"/>
 <q1:itemList>
 <q1:item>
 <q1:item type="inventoryItem" internalId="1234"/>
 <q1:quantity>"3"</q1:quantity>
 <!-- 新增Inventory Detail部分 -->
 <q1:inventoryDetail>
  <q1:inventoryAssignmentList>
   <q1:inventoryAssignment>
    <q1:quantity>"3"</q1:quantity>
    <q1:location internalId="202"/>
    <q1:subsidiary internalId="30"/>
   </q1:inventoryAssignment>
  </q1:inventoryAssignmentList>
 </q1:inventoryDetail>
 </q1:item>
 <q1:item>
 <q1:item type="inventoryItem" internalId="5678"/>
 <q1:quantity>"10"</q1:quantity>
 <!-- 新增Inventory Detail部分 -->
 <q1:inventoryDetail>
  <q1:inventoryAssignmentList>
   <q1:inventoryAssignment>
    <q1:quantity>"10"</q1:quantity>
    <q1:location internalId="202"/>
    <q1:subsidiary internalId="30"/>
   </q1:inventoryAssignment>
  </q1:inventoryAssignmentList>
 </q1:inventoryDetail>
 </q1:item>
 </q1:itemList>
 </record>
 </add>
 </soap:Body>

关键注意事项

  • 数量匹配inventoryAssignment里的quantity必须和对应行的quantity完全一致;如果需要拆分库存到多个位置,可以添加多个inventoryAssignment节点,总和等于行数量即可。
  • 功能启用:确保你的NetSuite账户已经启用了Multi-Location InventoryMulti-Subsidiary功能,否则这些字段可能无法正常使用。
  • 字段对应关系:行级的库存位置和子公司直接对应inventoryAssignment里的locationsubsidiary字段,不需要用inventoryLocationinventorySubsidiary这样的命名。

内容的提问来源于stack exchange,提问作者hoppiness

火山引擎 最新活动