是否可以使用PHP Toolkit获取Netsuite用于项目图像的URL?使用此功能:
function getProduct($id) {
$service = new NetSuiteService();
$service->setSearchPreferences(false, 1000);
$itemInfo = new SearchMultiSelectField();
$itemInfo->operator = "anyOf";
$itemInfo->searchValue = array('internalId' => $id);
$search = new ItemSearchBasic();
$search->internalId = $itemInfo;
$request = new SearchRequest();
$request->searchRecord = $search;
$searchResponse = $service->search($request);
$products = $searchResponse->searchResult->recordList->record;
return $products;
}
我可以获得商品信息。在这些信息中,netsuite给了我这个小片段(整件事因为清洁而被截断):
...
[storeDisplayImage] => RecordRef Object
(
[internalId] => 19876
[externalId] =>
[type] =>
[name] => 4010024.jpg
)
...
这只是告诉我Netsuite文件柜中文件的名称。如何使用PHP Toolkit自动下载该图像?
答案 0 :(得分:0)
我想你会想看看:
["storeDisplayImage"]=>
object(RecordRef)#20 (4) {
["internalId"]=>
string(6) "758653"
["externalId"]=>
NULL
["type"]=>
NULL
["name"]=>
string(26) "image_name.jpg"
}
我找不到任何方法来实际访问图像,但如果可能的话,internalId(758653)就是您应该用来搜索的内容。通过URL访问图像时使用它:
https://system.netsuite.com/core/media/media.nl?id=的 758653 强>和C = ACCOUNT#&安培; H = 31578b297cc0be65db1f&安培; expurl = T
问题是URL末尾的随机哈希。我无法弄清楚它是什么,但如果可以的话,你就可以构建那个URL。
编辑:nlapiResolveURL可能对您有所帮助。尝试将internalId传递给nlapiResolveURL,它可以动态提供该URL。
答案 1 :(得分:0)
试试这个:
$request2 = new GetRequest();
$request2->baseRef = new RecordRef();
$request2->baseRef->internalId = $product->storeDisplayImage->internalId;
$request2->baseRef->type = "file";
$getResponse2 = $this->service->get($request2);
if (!$getResponse2->readResponse->status->isSuccess) {
echo "GET ERROR";
} else {
$file = $getResponse2->readResponse->record;
echo "GET SUCCESS, File name is " . $file->name;
echo "<img src='".$file->url."'>";
}