SuiteCommerce
NetSuite 2019.2
2026-06-20

SuiteCommerce / SCA 2019.2.0: TypeScript Migration, SuiteScript 2.0 Backend, and Breaking Directory Changes

SCA 2019.2.0 begins migrating core source from JavaScript/AMD to TypeScript, refactors Case and OrderHistory modules to SuiteScript 2.0 services, restructures the entire source directory layout, bumps the Node.js requirement to 10.16.x, and updates jQuery from 3.3.1 to 3.4.1.

Affects:SuiteCommerceSuiteCommerce AdvancedSuiteScript 2.0SuiteScript 1.0Extensibility APICommerce ThemesCommerce ExtensionsNode.js Developer ToolsjQuery

The 2019.2.0 major release of SuiteCommerce and SuiteCommerce Advanced (SCA) introduces several structural and tooling changes that affect core SCA developers, theme/extension developers, and site administrators differently. The headline changes — TypeScript migration, SuiteScript 2.0 backend refactor, and a reorganized directory structure — are SCA-core-only, but the Node.js bump and jQuery update touch everyone.

Source Code Migration to TypeScript

Core SCA source files are being renamed from .js to .ts, and the module system is moving from AMD (define()/require()) to TypeScript-compatible CommonJS-style imports. This is the first phase of a multi-release migration.

  • All .ts files compile to JavaScript automatically via gulp local and gulp deploy.
  • Scope: Core SCA source only. Theme and extension development remains JavaScript/AMD — no changes required there.
  • If you maintain customizations against core SCA source (not via the extension/theme APIs), your import paths and module references will break. You must update them to the new TypeScript module paths.

SuiteScript 2.0 Backend Migration (Phase 1)

Server-side logic is being migrated from SuiteScript 1.0 to SuiteScript 2.0 services. In this release, two My Account modules have been refactored:

  • Case
  • OrderHistory

All other modules remain on SuiteScript 1.0 and the Commerce API. This is also a phased migration spanning multiple releases. If you have backend customizations touching Case or OrderHistory service files, you will need to refactor those to the SuiteScript 2.0 module pattern (e.g., N/record, N/search, N/query imports instead of nlapiLoadRecord-style calls).

Source Directory Restructuring

The SCA workspace layout changes significantly. Module directories no longer carry semantic-version suffixes (e.g., Account@2019.1.0 becomes simply Account). The new top-level structure:

Root/
  SC_19.2_Live/          <-- new workspace root
    Advanced/            <-- distro.json lives here now
      Account/
      ...
    Backend/
    Commons/
    gulp
    package.json         <-- moved here; run npm/gulp from this dir
  third_parties/         <-- moved outside workspace (shared globally)

Breaking changes:

  • package.json and the gulp entry point move into SC_19.2_Live/. All npm install and gulp commands must now be run from that directory, not the root.
  • distro.json moves into the Advanced/ subdirectory.
  • third_parties/ moves outside the workspace. Any build scripts or CI pipelines referencing the old path will fail.
  • Module names lose their @x.y.z suffix. Any references to versioned module names in custom code, distro.json overrides, or extension manifests need updating.

Node.js Requirement Change

Developer tools (theme, extension, and core SCA) now require Node.js 10.16.x. Older Node versions are unsupported. Update before running any gulp or npm commands for 2019.2.0 developer tools.

jQuery Update: 3.3.1 → 3.4.1

jQuery is bumped from 3.3.1 to 3.4.1 (version is also reflected in distro.json). jQuery 3.4.0 notably changed jQuery.extend behavior for deep copies involving __proto__ (a security fix). If your themes or extensions rely on deprecated jQuery methods or the old deep-copy edge cases, audit and test before migrating.

New Configuration Properties

The following properties are added to the SuiteCommerce Configuration record:

  • Categories.excludeEmptyCategories — hides categories with no items (Integrations > Categories tab).
  • tracking.googleAdWordsConversion.id, .value, .label — Google AdWords conversion tracking fields (Integrations > Adwords tab).
  • header.showRecognizedShopper — toggles recognized-shopper display in the header (Layout > Header tab).
  • quote.daysToExpirationNotification, quote.requestAQuoteWizardBottomMessage, quote.contactBusinessDaysMessage — quote-related messaging controls (My Account > Quotes tab).

Extensibility API Updates

The Visual component gains two new methods:

  • showMessage(options) — displays a notification in the page's notification area (or any data-view placeholder you specify). Accepts text, type (info, warning, error, success), and an optional timeout for toast-style auto-dismiss.
  • closeMessage(messageId) — programmatically dismisses a displayed message.

These methods are available on any component inheriting from Visual, including Layout, ProductListPage, and ProductDetails.

Other Changes

  • Target Versions for Themes and Extensions: Extension manifests now include a target-version field specifying compatibility with SC, SCA, or SC InStore releases. The Extension Management bundle (2019.2.0) enforces this — incompatible extensions are hidden from site managers.
  • Personalized Catalog Views (PCV): B2B-oriented feature enabling customer-group-specific item catalogs. No code-level migration action unless you are building custom catalog logic.
  • PageType Component Enhancement: The PageType component now accepts an options object during registration. Options are forwarded as constructor arguments to the view. Useful for passing contextual data into page-type views.
  • APM Instrumentation: New performance sensors are embedded in the source for future Application Performance Management integration. No functional impact in this release — the APM bundle update to consume this data will come later.

What to Do

  1. Core SCA developers: Audit any direct modifications to core source files. The TypeScript migration changes file extensions and the module system. The directory restructure moves distro.json, package.json, and third_parties/. Update your build scripts, CI pipelines, and any hardcoded paths.
  2. Backend customizations on Case or OrderHistory: Refactor to SuiteScript 2.0 patterns. Replace nlapiLoadRecord/nlapiSearchRecord calls with N/record and N/search module equivalents.
  3. All developers: Update Node.js to 10.16.x before using the 2019.2.0 developer tools.
  4. Theme and extension developers: Verify jQuery 3.4.1 compatibility. Check for deprecated jQuery methods and test any deep-copy logic that uses $.extend(true, ...).
  5. Extension developers: Begin declaring target versions in your extension manifests via the updated developer tools.
  6. Site administrators: Review the new configuration properties (empty-category exclusion, AdWords tracking, quote messaging) and configure as needed in the SuiteCommerce Configuration record.