Get the images from the Item record

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;
        }

Leave a comment

Your email address will not be published. Required fields are marked *