如何通过调用 NETSUITE REST API 从所有位置获取库存商品数量

How can I get inventory item quantity from all locations by calling NETSUITE REST API

获取.../record/v1/inventoryitem/155/locations/1

通过使用上面的 api 来获取项目数量,我得到了以下错误

"title":       "Unknown (sub-)resource (i.e., sublist, sublist line, subrecord, 
                reference, ultiselect) locations in request URL.",
"status":       404,
"o:errorCode": "NONEXISTENT_ID"

请有人告诉我我应该使用哪个 API 来获取可用的商品数量。

您可以在脚本中使用搜索 api 从所有位置检索库存项目数量。下面是一个搜索代码片段(使用 SuiteScript 1.0 和 2.0 创建),用于检索项目所有位置的库存数量。

使用 SuiteScript 1.0 创建的搜索:

var inventoryitemSearch = nlapiSearchRecord("inventoryitem",null,
  [
   ["type","anyof","InvtPart"], 
   "AND", 
   ["internalidnumber","equalto","57"]    // Enter the internal id of item
  ], 
  [
   new nlobjSearchColumn("itemid"), 
   new nlobjSearchColumn("inventorylocation"), 
   new nlobjSearchColumn("locationquantityavailable")
  ]
);

使用 SuiteScript 2.0 创建的搜索:

var inventoryitemSearch = search.create({
  type: "inventoryitem",
  filters:
  [
   ["type","anyof","InvtPart"], 
   "AND", 
   ["internalidnumber","equalto","57"]  // Enter the internal id of item
  ],
  columns:
  [
   search.createColumn({name: "itemid", label: "Name"}),
   search.createColumn({name: "inventorylocation", label: "Inventory Location"}),
   search.createColumn({name: "locationquantityavailable", label: "Location Available"})
  ]
});

附加说明:您可以在搜索中添加额外的列以检索有关该项目的更多信息。您还可以调整搜索过滤器以检索有关许多项目记录的信息。

您可以执行 SuiteQL 查询。

POST https://[account].suitetalk.api.netsuite.com/services/rest/query/v1/suiteql
Header: Prefer: transient
Body:
{
    "q": "SELECT item, location, quantityavailable FROM inventoryitemlocations WHERE item=155"
}

我的测试帐户的示例输出:

{
    "links": [
        {
            "rel": "self",
            "href": "https://[accountid].suitetalk.api.netsuite.com/services/rest/query/v1/suiteql?limit=1000&offset=0"
        }
    ],
    "count": 3,
    "hasMore": false,
    "items": [
        {
            "links": [],
            "item": "857",
            "location": "1",
            "quantityavailable": "50"
        },
        {
            "links": [],
            "item": "857",
            "location": "16",
            "quantityavailable": "50"
        },
        {
            "links": [],
            "item": "857",
            "location": "12",
            "quantityavailable": "50"
        }
    ],
    "offset": 0,
    "totalResults": 3
}

记录和字段 IDS 在 Analytics 浏览器中:https://[account].app.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/analytics/record/inventoryItemLocations.html