在Netsuite API中搜索装运物品

时间:2016-07-28 07:00:16

标签: php search netsuite shipping

我有这个现有的代码片段,用于搜索其RecordType指定的记录列表(例如,InventoryItem,SalesOrder)。

input::-ms-reveal{
display: none;                      
}

但是,似乎RecordType中的列表中没有Shipping Item,尽管我可以传递内部ID。我的目标是在我的计算中使用发货项目详细信息来创建销售订单(需要在提交之前显示)。

获取装运项目记录会有不同的方法吗?怎么样?

2 个答案:

答案 0 :(得分:2)

Suitetalk尚不支持送货项目记录。作为替代解决方案,您可以创建RESTlet来获取Shipping Item。

答案 1 :(得分:0)

我现在可以通过RESTlet成功检索送货项目。我首先将其作为文件柜中的新文件上传,然后将其添加为新脚本。在创建新脚本时,NetSuite不允许直接上载脚本文件。

// get_record.js
function get_record(datain)
{
    var record = nlapiLoadRecord(datain.recordType, datain.id);
    return record;
}

然后使用guzzle http库来调用RESTlet。

    $url = "https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl";
    $client = new GuzzleHttp\Client();

    $authorization = [
        'NLAuth nlauth_account='.getenv('NETSUITE_ACCOUNT'),
        'nlauth_email='.getenv('NETSUITE_EMAIL'),
        'nlauth_signature='.getenv('NETSUITE_PASSWORD'),
        'nlauth_role='.getenv('NETSUITE_ROLE')
    ];

    $response = $client->request('GET', $url, [
        'headers' => [
            'Authorization' => implode(',', $authorization),
            'Content-Type' => 'application/json'
        ],
        'query' => [
            'script' => '343', //script id
            'deploy' => '1',
            'recordType' => 'ShipItem', 
            'id' => '5905' // example of internal id of desired shipping item
        ]
    ]);

    return json_decode($response->getBody());