从PHP中的Netsuite File Cabinet获取图像URL

时间:2014-09-12 22:32:41

标签: php netsuite

是否可以使用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自动下载该图像?

2 个答案:

答案 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."'>";
}