SuiteCommerce
NetSuite 2019.1
2019-06-17

2019.1 SuiteCommerce: New Extensibility APIs, jQuery 3 Migration, and Breaking Node.js Change

SuiteCommerce 2019.1 ships four new Extensibility API components (UserProfile, MyAccountMenu, LoginRegister, PageType), requires Node.js 10.15.x for developer tools, and upgrades jQuery from 1.11 to 3.3.1—a breaking change for any custom theme or extension relying on removed jQuery APIs.

Affects:SuiteCommerceSuiteCommerce Advanced (SCA)SuiteCommerce Extension Management BundleExtensibility APISite Management Tools (SMT)SuiteTaxPayment InstrumentsField Set Script (v7)SuiteCommerce Configuration RecordSite Builder (Elbrus/Kilimanjaro)

Third-Party Library Upgrades — High Risk

This is the change most likely to break existing customizations. The following bundled libraries were updated:

  • jQuery: 1.11.1 → 3.3.1 — This is a major version jump. Deprecated methods removed in jQuery 3 (.size(), .andSelf(), synchronous $.ajax on the main thread, shorthand event methods like .load() as an event binder, etc.) will break at runtime. Review the jQuery 3.0 Upgrade Guide.
  • Backbone: 1.1.2 → 1.3.3
  • Underscore: 1.8.3 → 1.9.1
  • Handlebars: 4.0.10 → 4.0.12
  • Font Awesome: 4.0.10 → 4.2.1

Version details are also recorded in distro.json. All themes and extensions must be audited for deprecated method calls before migration.

Node.js Requirement Change

The developer tools (theme, extension, and core SCA tooling) now require Node.js 10.15.x. Earlier versions are no longer supported. Update before running any build or deploy commands.

New Extensibility API Components

Four new components are available to extension developers:

  • PageType — Register custom CMS page types and layout templates. Two methods: registerPageType() (registers a page type and its default layout template) and registerTemplate() (registers an alternate layout for one or more page types). Registered types appear in Site Management Tools when admins create new pages.
  • UserProfile — Read-only access to the logged-in user's profile (name, addresses, credit limit, balance). Returns a reduced data set for recognized-but-not-authenticated users (name only, no financial data).
  • MyAccountMenu — Add menu items to the My Account sidebar, link them to landing pages, and gate visibility with permissions.
  • LoginRegister — Hook into login/register events to cancel or augment them. Add custom fields to the registration form; field data can be stored in custom entity fields on the customer record after registration completes. Login-form field data is discarded after authentication.

Extension Management Bundle Updates

Rolled out as a phased managed update starting June 17, 2019:

  • The Extension Manager now supports queued activations. You can initiate multiple activations; they process serially. A new Status column shows: Complete, In Process, Pending, or Error (with an Activation Log popup for troubleshooting).
  • Role restriction: Activating a theme or extension now requires the Administrator role. To grant activation to other roles, configure the customdeploy_ext_mech_installer_event deployment script.

SCA developers who patched their 2018.2 dev environment as a temporary workaround must revert those changes before deploying code after receiving the 2019.1 bundle update.

Site Management Tools Now Required

Site Management Tools is now a mandatory feature for SuiteCommerce installations. Enable it on the Web Presence tab of the Enable Features page (Setup > Company > Enable Features) before installing or updating SuiteCommerce or SCA.

SuiteTax Support

SuiteCommerce now supports the SuiteTax engine for US and Canada. This allows use of third-party tax engines or the native SuiteTax engine, with per-nexus tax engine selection on subsidiary records.

Payment Instruments & Tokenization

Support for the Payment Instruments feature enables tokenized payment methods in Checkout and My Account. Sensitive card data is replaced with tokens. SCA customers must be on SCA 2019.1 or later to use this feature.

Shipping & Payment UI Overhaul

Shipping addresses and payment methods in Checkout and My Account now use a card-based UI for add/edit/remove/select operations. This requires an active theme built on SuiteCommerce Base Theme 2019.1 or later, which contains the new templates.

Field Set Script Change

The Field Set Script was updated to add the saleunit field to the details, matrixchilditems, and order field sets when has_sale_units is not false. If your site uses sale units of measure on inventory items and you see incorrect quantities at checkout, run v7 of the Field Set Setup Script or manually add saleunit to those three field sets.

My Account Columns Management

Transaction lists in My Account (Returns, Quotes, Order History, Open Invoices, Paid Invoices) are now column-configurable via the SuiteCommerce Configuration record. Custom fields can be added as columns. New configuration properties include transactionListColumns.enableReturnAuthorization, transactionListColumns.enableQuote, transactionListColumns.enableOrderHistory, transactionListColumns.enableInvoice, and their child .id / .label properties, all under My Account > Transaction List Columns.

Other Notable Changes

  • B2B Order Visibility — Admins can configure per-site whether B2B contacts share a single cart or use individual carts. My Account can be scoped to show only orders placed by the logged-in contact.
  • Default Product Images — Append .default to an image filename (before the extension) to designate it as the default image on PLP and PDP pages.
  • HTTP/2 Headers — SuiteCommerce sites now emit HTTP/2-compliant response headers.
  • Secure Shopping for Site Builder — SSL support added for standard Site Builder, Elbrus, and Kilimanjaro releases. Vinson and pre-Denali implementations require a patch. A separate HTTPS domain is required for the shopping portion; a single secure domain covering both Shopping and Checkout is not supported. Denali and Mont Blanc are not supported in this release.
  • CMS Content Wait — New configuration property cms.contentWait (in ms) under Integrations > Site Management Tools.

What to Do

  1. Audit all custom themes and extensions for jQuery 1.x deprecated methods. The jump to jQuery 3.3.1 is the highest-risk change. Run your code through the jQuery Migrate plugin in development to surface deprecation warnings.
  2. Update Node.js to 10.15.x on all developer machines and CI pipelines before using 2019.1 tooling.
  3. Enable Site Management Tools on the Web Presence tab of Enable Features if not already active.
  4. SCA developers: If you applied the 2018.2 dev-tools workaround, revert those changes before deploying with the 2019.1 bundle.
  5. If you use sale units of measure and see incorrect checkout quantities, run Field Set Setup Script v7 or manually add saleunit to the details, matrixchilditems, and order field sets.
  6. If you need non-Admin roles to activate themes/extensions, configure the customdeploy_ext_mech_installer_event deployment script.
  7. Review the four new Extensibility API components if you build SuiteCommerce extensions — they open up significant customization surface for My Account, login flows, and CMS page types.
  8. For Site Builder Secure Shopping on Vinson or pre-Denali implementations, apply the version-specific patch documented by Oracle.