SuiteCommerce 2021.1: Reorder Items, Subscription Management, Mandatory TBA, and Extensibility API Additions
SuiteCommerce 2021.1 adds a Reorder Items feature, self-service subscription management via SuiteBilling, enforces token-based authentication for all developer tools, introduces new Extensibility API components and methods, drops almond and require.js, and requires Node.js 12.21.0.
What changed
Reorder Items (SC MyAccount)
A new Reorder Items page is available in the My Account application. Logged-in users can view previously ordered items (product name, last purchase date, price) and add them back to cart. Controlled by the configuration property myAccountPreferences.reorderEnabled on the SuiteCommerce Configuration record under My Account > Preferences.
Subscription Management via Commerce Websites
Website users can now view and manage subscription services directly from My Account, reducing the need for back-office intervention. This feature integrates with SuiteBilling — subscription plans, price books, price plans, and billing accounts are all configured through SuiteBilling before exposing them on the storefront.
New configuration properties on the SuiteCommerce Configuration record (My Account > Subscriptions subtab):
subscriptions.lineStatusChange— controls whether users can change individual subscription line statuses.subscriptions.allowToCancelSuspendRequiredLines— permits cancellation or suspension of required lines.subscriptions.generalStatusChange— governs overall subscription status changes.subscriptions.disallowUpgradeQuantity— blocks quantity upgrades.subscriptions.disallowDowngradeQuantity— blocks quantity downgrades.
Token-Based Authentication Now Mandatory for Developer Tools
All SuiteCommerce developer tools — Extension, Theme, and SCA command-line tools — no longer accept user credentials. Only token-based authentication (TBA) is supported. This aligns with the mandatory two-factor authentication (2FA) policy for Administrators and highly privileged roles.
SuiteCommerce Advanced and SiteBuilder implementations require a specific patch to enable TBA support.
Extensibility API Updates
New and updated components in the Extensibility API:
- Search (new component) — returns the base URL of the Item Search API. Accepts parameters that are appended as querystring values.
- Environment — two new methods:
addTracker()— registers tracker objects that respond to application events (cart updates, page views, transaction completion).triggerEvent()— fires custom events defined in a registered tracker.
- UserProfile — new method
getCreditCards()returns an array of saved credit cards (holder name, card number, expiration) for the logged-in visitor. - Cart — new methods:
getLatestAddition()— retrieves the last item added to the cart.setPurchaseOrderNumber()/getPurchaseOrderNumber()— set or read the PO number on the order.setShipMethod()— sets the shipping method.setTransactionBodyField()— sets a custom transaction body field value.
Node.js Requirement Change
Developer tools now require Node.js 12.21.0. Older versions are not supported for Theme, Extension, or core SCA 2021.1 tooling.
Third-Party Library Removals
The following libraries have been removed from the SuiteCommerce bundle:
almondrequire.js
If any custom extensions depend on almond or require.js being present in the global scope, they will break. No other library updates were made.
Translations
New extraTranslations configuration properties were added for locales: en_AU, en_CA, en_GB, fi_FI, id_ID, nb_NO, and vi_VN. These are configured under Multi-Domain > Translations.
What to do
- Switch to TBA immediately. If your CI/CD pipeline or any developer still authenticates the SuiteCommerce developer tools (gulp, Extension/Theme CLI) with username and password, generate TBA tokens via Setup > Users/Roles > Access Tokens and update your tooling configuration. For SCA and SiteBuilder deployments, apply the TBA patch referenced in Oracle's documentation before upgrading.
- Update Node.js to 12.21.0. Pin this version in your build environment. Older Node.js versions will fail with the 2021.1 developer tools.
- Audit custom code for almond / require.js dependencies. These libraries are no longer bundled. If your extensions reference
require()via require.js (not the SC module loader) or rely on almond as an AMD shim, refactor to use SC's native module system. - Enable Reorder Items if desired by setting
myAccountPreferences.reorderEnabledto true on the SuiteCommerce Configuration record. - Configure Subscription Management if you use SuiteBilling. Ensure SuiteBilling is fully set up (subscription plans, price books, billing accounts), then control self-service behavior via the five new
subscriptions.*properties on the Configuration record. - Leverage new Extensibility API methods in custom extensions. The
Searchcomponent,addTracker()/triggerEvent()on Environment,getCreditCards()on UserProfile, and the new Cart methods are all available for use in 2021.1 extensions. Review Oracle's Extensibility API reference for method signatures and return types. - Add translations for newly supported locales if your storefront serves those regions.
Source: Oracle NetSuite Release Notes