Sometimes we need to add some more features to the Netsuite built-in pages, but it has no customizable option. In this case, we usually create the Suitelet page the same as the Netsuite built-in page, but it’s sometimes complicated to make it the same as the origin, or it takes a lot of time or… Continue reading Suitelet Page: Using UI components
Author: Bibin Babu
Tax calculation via script
require([‘N/currentRecord’],function(currentRecord){ currentRecord.executeMacro({id:’calculateTax’}); }); To calculate the tax inside Netsuite via scripts // get macros available on the record let macros = invoiceRecord.getMacros(); // execute the macro if (‘calculateTax’ in macros) { macros.calculateTax(); // For promise version use: macros.calculateTax.promise() }
Efficient Transaction Duplication in NetSuite Using SuiteScript 2.1’s record.copy.promise Method
As an administrator, you may frequently encounter scenarios where you need to duplicate existing transactions—such as creating repeat invoices for loyal customers, replicating purchase orders, or preparing test data in your sandbox. Doing this manually can be time-consuming and error prone. Fortunately, SuiteScript 2.1 offers a solution: the record.copy.promise method. This method allows you to… Continue reading Efficient Transaction Duplication in NetSuite Using SuiteScript 2.1’s record.copy.promise Method
Refactoring SuiteScript Customizations After Removal of Ext JS Library in NetSuite 2025.1
The NetSuite 2025.1 release introduced a significant platform update: the removal of the Ext JS library, which had remained in use—even though unsupported—in many legacy customizations.ERP Peers NetSuite While removing older dependencies is generally positive, this change presented a major challenge for organizations with embedded SuiteScript-based customizations that relied on Ext JS for UI components,… Continue reading Refactoring SuiteScript Customizations After Removal of Ext JS Library in NetSuite 2025.1
Using the “Select Item” Checkbox to Pre-select Items on Item Fulfillment (IF) and Item Receipt (IR) Transactions
Overview In NetSuite, the Item Fulfillment (IF) and Item Receipt (IR) transactions allow users to mark which line items should be processed (fulfilled or received) by selecting a checkbox on each line. NetSuite provides a built-in field called Select Item that controls this behavior. This article explains how the Select Item checkbox works, how it… Continue reading Using the “Select Item” Checkbox to Pre-select Items on Item Fulfillment (IF) and Item Receipt (IR) Transactions
Differentiating Customer Center Login Type in NetSuite Using a Custom “eml_nkey” Overview
In NetSuite, managing and differentiating various types of users—such as customers, contacts, and employees—can be critical when granting access through the Customer Center. To support this, we’ve implemented a beforeSubmit User Event Script that utilizes a custom field (_eml_nkey_, referred to as Email Key) to determine and record the source type of a login—be it… Continue reading Differentiating Customer Center Login Type in NetSuite Using a Custom “eml_nkey” Overview
N/runtime Module – Adaptive Script Behavior
Function Highlight: runtime.executionContext, runtime.getCurrentScript() Use Case: Dynamically adjusting script behavior based on context (e.g., user role, deployment parameters) Why Uncommon: Used mainly in advanced customization, often skipped in basic tutorials. Ideas to Cover: Conditional logic based on execution context (CSV import vs user event) Setting and getting script parameters Logging strategies using script metadata
record.transform() – Smart Record Conversion
Function Highlight: record.transform({ fromType, fromId, toType }) Use Case: Instantly convert one transaction type to another, like Sales Order → Invoice, Quote → Sales Order, etc. Why Uncommon: Developers often try to “manually copy fields” instead of using this native API. Ideas to Cover: Transforming and modifying on the fly before saving Chaining transformations (e.g.,… Continue reading record.transform() – Smart Record Conversion
N/cache Module – Fast In-Memory Storage
Function Highlight: cache.getCache() Use Case: Great for storing temporary results or configuration values that don’t need to hit the database every time. Why Uncommon: Often underused due to misunderstanding about TTL (Time-To-Live) and context limitations. Ideas to Cover: Using cache for static configuration (e.g., currency conversion rates) Performance comparison: cache vs search Tips to avoid… Continue reading N/cache Module – Fast In-Memory Storage
N/task Module – Automating Background Processing
Function Highlight: task.create() with MapReduce or ScheduledScript Use Case: When you need to process large datasets or perform intensive logic in the background. Why Uncommon: Many developers overlook MapReduce and Scheduled Scripts for performance-heavy tasks and rely too much on client scripts or User Events. Ideas to Cover: How to offload bulk operations (e.g., bulk… Continue reading N/task Module – Automating Background Processing