NetSuite ERP Consultant cheat sheet
NetSuite ERP Consultant · Keep the key ideas within reach.
NetSuite ERP Fundamentals
One NetSuite account contains one production and one sandbox environment by default; additional sandboxes require a service entitlement and appear as separate accounts with their own login URLs.
Roles grant permissions; permissions are additive across all roles assigned to a user, and a permission set to Full on any role overrides restrictions on others.
Subsidiaries partition data for consolidation and one-world/multi-book accounting; a transaction's subsidiary defaults from the customer, vendor, or employee record, not from the user's role.
Accounting periods belong to an accounting period calendar; a period must be Open to post transactions, and closing a period is a separate action from locking the A/R or A/P period.
Custom segments (custom lists, departments, classes, locations) are enabled in Enable Features and become selectable on transactions only after being added to the applicable forms.
The SuiteCloud product tiers (Standard, SuiteCloud, SuiteCloud Plus) determine available features such as SuiteScript governance limits, multi-book, and advanced approvals.
NetSuite release upgrades occur twice yearly; sandbox accounts are upgraded roughly four weeks before production, and release preview documentation lists behavior changes.
Record types follow a naming convention: transactions post to the general ledger, entities (customers, vendors, employees) own balances, and lists are non-posting reference data.
Financial Management
The accounting equation NetSuite enforces: Debits = Credits on every journal entry, and Assets = Liabilities + Equity + (Revenue − Expenses) at the trial balance level.
A journal entry with a subsidiary-specific line must use a balancing subsidiary or the intercompany elimination account; use the Intercompany Journal Entry record for cross-subsidiary postings.
Multi-book accounting posts the same transaction to a primary and secondary ledger using book-specific exchange rates and book-specific accounting periods.
Currency translation: the income statement uses the average rate for the period, assets and liabilities use the closing rate, and equity uses the historical rate; the difference posts to the cumulative translation adjustment account.
Period close sequence: reconcile bank and credit card accounts, run the Trial Balance and Balance Sheet, post adjusting journal entries, then close the period; A/R and A/P lock dates block backdated postings independently.
Revenue recognition uses revenue arrangements and revenue plans; the allocation method (fair value, ESP, or residual) determines how the transaction price splits across performance obligations.
Amortization schedules drive deferred expense postings; the template determines the term, the start date source, and whether the schedule recalculates when the transaction amount changes.
Consolidated financial statements require an elimination subsidiary; intercompany transactions must be marked for elimination and matched before the elimination journal runs.
Order Management and Inventory
Sales order lifecycle: Quote → Sales Order → Fulfillment (item fulfillment) → Invoice → Payment; each step can be set to require approval via the transaction workflow or standard approval routing.
Item types: Inventory, Non-Inventory, Service, Kit/Package, Assembly/Bill of Materials, and Group; only Inventory and Assembly items carry quantity on hand and cost.
Fulfillment commits inventory and relieves quantity on hand; invoicing creates the A/R and revenue posting. A sales order can be fulfilled and billed in either order unless the form restricts it.
Inventory costing methods are Standard, Average, FIFO, and LIFO; the method is set at the item level and changing it affects only future transactions, not historical cost layers.
Available quantity = Quantity on Hand − Quantity Committed − Quantity on Order (when the preference includes on-order), depending on the Inventory Availability preferences enabled.
Drop ship and special order items bypass the warehouse; drop ship creates a purchase order tied to the sales order and posts cost of goods sold directly at fulfillment.
Return authorizations create a linked credit memo and optionally a return receipt that restores inventory; the return cost uses the original transaction's cost layer when the item is costed FIFO or LIFO.
Demand planning and supply planning use the item's lead time, safety stock, and preferred stock level to generate planned orders; the reorder point triggers a replenishment alert, not an automatic order.
Procurement and Supply Chain
Purchase order lifecycle: Requisition → Purchase Order → Item Receipt → Vendor Bill → Bill Payment; three-way match compares PO, receipt, and bill quantities and amounts.
A vendor bill can be created from the purchase order or the item receipt; billing from the receipt prevents billing quantities that were never received when the Receive Partial preference is set.
Landed cost allocates freight, duty, and other charges across receipt lines by weight, quantity, or amount, and updates the inventory cost of the received items.
Vendor prepayments are recorded as a prepayment transaction applied against the vendor bill; the prepayment reduces the amount due without creating a separate bill.
Approval routing on purchase orders uses the Employee record's supervisor hierarchy or a custom approval workflow; the approval limit is set per employee or per role.
Supply chain features include demand planning, supply planning, and distribution resource planning; these require the Supply Chain Management feature and generate planned transfer and purchase orders.
Blanket purchase orders set a committed quantity or amount over a period; releases draw down the commitment and the remaining balance is visible on the blanket order.
Customization and SuiteBuilder
Custom fields support types including Free-Form Text, List/Record, Checkbox, Date, Currency, Percent, and Multiple Select; the Store Value checkbox controls whether the value is saved to the database.
Sourcing and filtering on custom fields: Source List and Filter Using control the dropdown contents; a field with no source list shows all records of the selected type.
Custom record types can be defined as standalone or as child records; they support their own forms, fields, and permissions, and can be linked to standard records via a List/Record field.
Custom forms control which fields, subtabs, and buttons appear per role; the Preferred form per role is set on the role record, and the form's field order is drag-and-drop.
Workflow Manager states use transitions with conditions; a workflow can be initiated on create, on view, or on a schedule, and the Initiation condition determines when it fires.
SuiteBuilder bundles (SuiteBundler) package customizations for deployment to another account; the bundle manifest lists objects, and locked objects cannot be edited in the target account.
Custom segments and custom transaction line fields require the Custom Segments feature; segment values are stored separately and can be used in reports and searches.
Integration
SuiteTalk (web services) supports SOAP and REST; REST web services use OAuth 2.0 or token-based authentication, and SOAP uses token-based authentication (TBA) or OAuth.
Token-based authentication requires an integration record, a token ID and token secret, and a consumer key and consumer secret; the token is tied to a specific user and role.
RESTlets are SuiteScript-based custom endpoints deployed with a script record; they accept HTTP methods and return JSON, and are governed by the same SuiteScript governance limits.
The CSV import assistant maps columns to fields, supports add/update/upsert, and runs as a job; large imports should be split to stay within the import size and time limits.
Inbound and outbound single sign-on use SAML 2.0; the identity provider sends an assertion, and NetSuite maps the assertion to a user via the email or a custom field.
Integration records define the application, the authentication method, and the scope of access; deleting an integration record invalidates its tokens.
The SuiteCloud Developer Framework and SuiteApp deployment use the SDF project structure; a project contains objects in XML and is deployed via the command line or the NetSuite UI.
SuiteScript
SuiteScript 2.x uses AMD-style modules: define([], function(){ ... }) and requires the N/ modules such as N/record, N/search, N/https, and N/runtime.
Script types: Client Script (browser, user event, field change, page init), User Event (beforeLoad, beforeSubmit, afterSubmit), Scheduled, Map/Reduce, RESTlet, Suitelet, Portlet, and Workflow Action.
Governance: each script type has a usage limit; units are consumed by API calls, and the remaining units are read via runtime.getCurrentScript().getRemainingUsage().
Map/Reduce scripts run in stages: getInputData, map, reduce, and summarize; each stage has its own governance budget and can process large data sets in parallel.
record.create, record.load, record.submitFields, and record.delete are the core record APIs; submitFields is cheaper in governance than loading and saving a full record.
Search API: search.create returns a search object; run().getRange() returns results, and each result exposes getValue() and getText() for list/record fields.
Client scripts cannot call server-side modules directly; use https.post to a Suitelet or RESTlet, or use a user event for server-side logic.
Error handling uses try/catch with error.name and error.message; script deployment status (Testing, Released, Scheduled) controls whether the script runs for users.
Analytics
Saved searches use criteria (filters) and results (columns); the Results subtab controls the columns, and the Audience subtab controls which roles can see the search.
Summary searches group by a field and apply aggregate functions (Sum, Count, Average, Minimum, Maximum); the summary type is set per column.
Formula columns use SQL-like syntax: CASE WHEN, DECODE, and functions such as TO_CHAR and ROUND; formula (text) returns strings and formula (numeric) returns numbers.
SuiteAnalytics Workbook uses datasets, pivot tables, charts, and tables; a dataset can be a saved search or a custom dataset built from record types and joins.
The SuiteAnalytics Connect service exposes NetSuite data via ODBC, JDBC, or ADO.NET; the schema is read-only and queries are limited by the connection role's permissions.
Report builder reports (financial statements) use layouts and account groupings; the financial statement layout defines the rows, and the report defines the columns and period.
Dashboard portlets include KPI, trend graph, saved search, and custom portlets; a KPI portlet can display a saved search count or a formula result.
Scheduled saved searches email results on a cadence; the schedule is set on the search's Email subtab and requires an active recipient and a valid saved search.