I have a basic NetSuite Restlet that I am using to create a nonInventoryItem and it works when calling it with Postman. I need to set the base price but am struggling to do so. This is my current working code.
define(['N/record', 'N/log'], function(record, log) {
function doPost(requestBody) {
try {
// Extract product details from the request body
var itemName = requestBody.itemName;
var itemDescription = requestBody.itemDescription;
var itemPrice = parseFloat(requestBody.itemPrice); // Ensure it's a number
var incomeAccount = requestBody.incomeAccount;
var expenseAccount = requestBody.expenseAccount;
var taxable = requestBody.taxable;
var taxItemCode = 2; // default is taxable
log.debug({
title: 'Item: ' + itemName,
details: 'Description: ' + itemDescription + ', expenseAccount: ' + expenseAccount + ', itemPrice: ' + itemPrice
});
if(taxable == "False"){
taxItemCode = 1;
}
// Create a new inventory item record
var itemRecord = record.create({
type: record.Type.NON_INVENTORY_ITEM,
isDynamic: true
});
// Set item fields
itemRecord.setValue({
fieldId: 'itemid',
value: itemName
});
itemRecord.setValue({
fieldId: 'displayname',
value: itemName
});
itemRecord.setValue({
fieldId: 'subtype',
value: 'Sale'
})
itemRecord.setValue({
fieldId: 'salesdescription',
value: itemDescription
});
itemRecord.setValue({
fieldId: 'taxschedule',
value: taxItemCode
});
itemRecord.setValue({
fieldId: 'incomeaccount',
value: incomeAccount
});
itemRecord.setValue({
fieldId: 'expenseaccount',
value: expenseAccount
});
itemRecord.setValue({
fieldId: 'costestimatetype',
value: 'ITEMDEFINED'
});
//Set the Include Children checkbox for subsidiaries
itemRecord.setValue({
fieldId: 'includechildren',
value: true
});
// Save the item record
var itemId = itemRecord.save();
log.debug({
title: 'Item Created',
details: 'Item ID: ' + itemId
});
return {
success: true,
message: 'Item created successfully.',
itemId: itemId
};
} catch (e) {
log.error({
title: 'Error Creating Item',
details: e.message
});
return {
success: false,
message: 'Error creating item.',
error: e.message
};
}
}
return {
post: doPost
};
});
Not finding the answer in the API docs, I asked ChatGPT and Claude several times and tried several different suggestions but no luck. I’m hoping someone here can point me in the right direction. I’m not a NetSuite expert at all and appreciate any help.
What I really want is to set the field like the $130 in this image: