SuiteCommerce
NetSuite 2020.2
2020-12-01

SuiteCommerce 2020.2: Backbone Deprecation, New SC Components, Frontend Module Renames, and Field Set Updates

SuiteCommerce 2020.2 deprecates Backbone.View, Backbone.Model, and Backbone.Collection in favor of new SC-prefixed components, renames frontend modules (SC.Configuration → Configuration), introduces strike-through pricing config properties, adds PCV-driven Add to Cart hiding, and bumps Node.js to 12.16.3 for developer tools.

Affects:SuiteCommerceSuiteCommerce AdvancedSuiteCommerce MyAccountExtensibility API (SCView, SCCollectionView, SCFormView)Backbone.View / Backbone.Model / Backbone.Collection (deprecated)SC.Configuration frontend moduleFooter.View module exportsField Sets (search, details, matrixchilditems, correlateditems, relateditems, order, typeahead, itemssearcher)SuiteCommerce Configuration Record (priceLevel.enabled, priceLevel.default)Personalized Catalog Views (PCV)Node.js developer toolsjQuery 3.5.1underscore.js 1.10.2

Backbone Deprecation and New SC Components

The most significant developer-facing change in 2020.2 is the formal deprecation of native Backbone modules within the SuiteCommerce Extensibility API. Extensions must migrate away from these:

  • Backbone.ViewSCView (available 2020.2+)
  • Backbone.ModelSCModel (available 2020.1+)
  • Backbone.CollectionSCCollection (available 2020.1+)

Three new components ship with this release:

  • SCView — Extends Backbone.View with SuiteCommerce-specific methods for context data validation, event definition, and JSON-LD retrieval. All new extension view code should use SCView instead of Backbone.View.
  • SCCollectionView — Abstract class for rendering collections of elements in grid layouts. Use when customizing multi-item display.
  • SCFormView — Provides type-checked form data validation and model-save lifecycle methods. Controls form validation and submission behavior.

Frontend Module Renames and Export Changes

Oracle renamed and re-exported several frontend modules:

  • The SC.Configuration module is now simply Configuration.
  • Footer.View and other modules changed their export signatures.

If your customizations reference these modules by their old names or import patterns outside of the recommended Extensibility framework, they will break. SuiteCommerce and SuiteCommerce MyAccount sites receive this automatically on deployment — inspect your customizations immediately. SCA implementations should test before upgrading.

Strike-Through Pricing Configuration

Two new properties were added to the SuiteCommerce Configuration Record under Shopping > Catalog:

  • priceLevel.enabled — Enables strike-through pricing behavior for configured items.
  • priceLevel.default — Sets the default price level displayed as the crossed-out price.

When enabled, customer-specific lower prices display alongside the higher default price (rendered with a strikethrough).

Field Set Updates

The Field Set Setup Script now adds the following field IDs to support Personalized Catalog Views (PCV):

  • ispricevisible
  • ispricevisible_detail
  • ispurchasable_detail
  • isdisplayable_detail

These are applied to the field sets: search, details, matrixchilditems, matrixchilditems_search, correlateditems, relateditems, order, typeahead, itemssearcher.

Existing SuiteCommerce sites should receive these automatically. SCA migrations require adding these field sets manually. New installations must run the Field Set Setup Script.

Hide Add to Cart via Personalized Catalog Views

PCV now supports hiding the Add to Cart button per customer segment. In the Customer Segments Manager, the Website Visibility Level offers:

  • Display Fully — Items visible and purchasable.
  • Disable Purchase — Items visible but Add to Cart hidden. Only takes effect on 2020.2+; do not set this prior to upgrading.
  • Hide Fully — Available only for the Unmapped Items segment; hides items entirely.

Translations in Themes and Extensions

Developers can now ship .json translation files inside custom themes and extensions. Translations apply per Commerce application (Shopping, My Account, Checkout). Note: local testing of translations is not supported in this release — they can only be verified after deployment.

SuiteCommerce APM SuiteApp

A new managed SuiteApp, SuiteCommerce Application Performance Management, is available for 2020.1.1+ implementations. It provides three dashboards:

  • Performance Dashboard — High-level trends, view counts, page-type statistics.
  • Page Type Diagnostics — Timing and view counts by URL and modal address.
  • Action Diagnostics — User action performance data per domain.

Being a managed SuiteApp, updates are automatic. Some APM table links require the separate APM SuiteApp to be installed.

Third-Party Library Updates

Check distro.json for exact versions. Key changes:

  • jQuery: 3.4.1 → 3.5.1 (customized)
  • bootstrap-datepicker: 1.8.1 → 1.9.0
  • sass.js: 0.10.10 → 0.11.1 (customized)
  • underscore.js: 1.9.1 → 1.10.2 (customized)
  • almond: 0.3.3 (moved from customized to standard version)

Verify that themes and extensions relying on these libraries are compatible. SCA migrations should audit for deprecated method usage before upgrading.

Node.js Requirement

Developer tools (Theme, Extension, and core SCA tooling) now require Node.js 12.16.3. Update before using 2020.2 developer tools.

IE9 Support Dropped

SuiteCommerce Advanced no longer supports Internet Explorer 9. Sites will not crash on IE9 but unexpected behavior is not investigated or fixed.

Extension Manager Change

The Extension Manager now displays an Activated By column showing either the bundle ID that auto-activated the extension or the user ID who activated it. Click View Info next to a bundle ID for activation details.

Notable Bug Fixes Rolled into 2020.2

This release includes all fixes from 2020.1.1 through 2020.1.11.1. Highlights:

  • OrderHistory and ReturnAuthorization modules rolled back to SuiteScript 1.0 — The 2020.1.0 migration to SuiteScript 2.0 caused field set issues. These modules are back on SS1.0 as of 2020.1.1.1.
  • jQuery updated to 3.5.1 (first applied in 2020.1.4).
  • Security subtab added to Configuration Record > Advanced tab — controls whether site pages can render in frames. Default (active as of 2020.1.4) disallows framing by external domains.
  • Fix for blank My Account when customers have 1000+ invoices (was throwing Uncaught SyntaxError: Unexpected token '<' on MyAccountEnvironment.Service.ssp).
  • Fix for addToViewContextDefinition throwing INVALID_PARAM on LoginRegister.Register.View.
  • Fix for QuotaExceededError: DOM Exception 22 on secure domains with CDN when using SC Inventory Display extension.

What to Do

  1. Migrate off Backbone — Replace Backbone.View with SCView, Backbone.Model with SCModel, and Backbone.Collection with SCCollection in all extensions. These are deprecated as of this release.
  2. Audit module references — Search your custom code for SC.Configuration and update to Configuration. Check Footer.View imports for export-shape compatibility.
  3. Update Node.js — Install Node.js 12.16.3 for developer tooling.
  4. Test third-party library compatibility — Especially jQuery 3.5.1 and underscore.js 1.10.2 in custom themes/extensions. Check distro.json for the full list.
  5. SCA migrations: add field sets manually — Run or manually add ispricevisible, ispricevisible_detail, ispurchasable_detail, and isdisplayable_detail to the listed field sets.
  6. Review framing policy — The Security subtab on the Configuration Record now blocks external-domain framing by default. If you embed SuiteCommerce pages in third-party frames, update the setting.
  7. Configure strike-through pricing — If desired, enable priceLevel.enabled and set priceLevel.default in the Configuration Record under Shopping > Catalog.
  8. PCV users — Do not set Disable Purchase visibility level until you are running 2020.2.