Get the images URL from item record by using nlapiLookupField and nlapiLoadRecord (SuiteScript 1.0)and (SuiteScript 2.0) also we can pass internal id as parameter to function,recordType- to understand whether the item record is of type 'inventory','lot-inventory','assembly'...
SuiteScript 1.0
getItemImageUrl: function(item) {
var type = nlapiLookupField('item', item, 'recordType')
var itemrecord = nlapiLoadRecord(type, item)
var images = [];
var imageIds = [];
var url;
var totalLines = itemrecord.getLineItemCount('itemimages');
for (var i = 0; i <= totalLines; i++) {
var imageName = itemrecord.getLineItemValue('itemimages', 'name', i)
images.push(imageName);
imageIds[imageName] = itemrecord.getLineItemValue('itemimages', 'nkey', i)
}
images = _.filter(images, function(num) { return num != null; });
if (images.length > 0) {
var fileObj = nlapiLoadFile(imageIds[images[0]])
url = fileObj.getURL();
url = 'https://system.netsuite.com' + url;
}
return url;
}
SuiteScript 2.0
function getItemImageUrl(item, type) {
var itemRecord = record.load({
type: type,
id: item
});
var images = [];
var imageIds = [];
var url;
var totalLines = itemRecord.getLineCount({
sublistId: 'itemimages'
});
for (var i = 0; i < totalLines; i++) {
var imageName = itemRecord.getSublistValue({
sublistId: 'itemimages',
fieldId: 'name',
line: i
});
images.push(imageName);
imageIds[imageName] = itemRecord.getSublistValue({
sublistId: 'itemimages',
fieldId: 'nkey',
line: i
});
}
if (images.length > 0) {
images.sort();
var fileObj = file.load({
id: imageIds[images[0]]
});
url = fileObj && fileObj.url;
if (!url) {
log.error({
title: 'Item URL',
details: url + ' - Item URL does not exists.'
});
return url;
}
url = 'https://system.netsuite.com' + url;
}
return url;
}