如何通过调用 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。
获取.../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。