SCA Pre-Denali: Legacy Domain and Session Checks Replaced for HTTPS Shopping
SuiteCommerce Advanced pre-Denali releases introduced isCheckoutSupported(), isShoppingSupported(), and session.isLoggedIn2() to replace legacy domain and session detection methods that break under HTTPS shopping domains.
This change applies exclusively to pre-Denali builds of SuiteCommerce Advanced. If you are on Denali or later, these methods are already incorporated and no migration is needed.
What changed
Two categories of legacy JavaScript checks in the SCA client-side codebase were retired and replaced:
Domain detection
- Removed:
!~request.getURL().indexOf('https')— the old bitwise-NOT trick to distinguish checkout from shopping domains. This no longer works once the shopping domain is also served over HTTPS. - Replacement: Two new SuiteCommerce API methods:
isCheckoutSupported()— returnstruewhen the current context is the checkout domain or a single-domain configuration.isShoppingSupported()— returnstruewhen the current context is the shopping domain or a single-domain configuration.
Session identity
- Removed:
session.isLoggedIn() - Replacement:
session.isLoggedIn2()— required to maintain user identity correctly across the secure shopping domain transition. Oracle’s documentation is vague on the internal difference; expectisLoggedIn2()to handle cross-domain session tokens that the original method did not anticipate.
Why it matters
HTTPS on the shopping domain means the old indexOf('https') check returns the same result on both shopping and checkout, effectively collapsing the distinction between the two. Any SCA customization that gates logic on “are we in checkout vs. shopping?” using the legacy check will mis-fire once you enable a secure shopping domain.
What to do
- Search your SCA source bundle (including any custom modules) for
request.getURL().indexOf('https'). Replace every occurrence withisCheckoutSupported()orisShoppingSupported()as appropriate for the branch logic. - Search for
session.isLoggedIn()(without the trailing2) and replace withsession.isLoggedIn2(). - Re-deploy your SCA application and verify that checkout, shopping, and single-domain configurations all resolve the correct experience.
- If you are already on Denali or later, no action is required—these APIs are the default in those releases.
Caveats
Oracle does not document the exact internal differences of isLoggedIn2() vs. isLoggedIn(). If you have custom server-side SuiteScript that validates session state independently, verify it still aligns with the client-side session identity after migration. The source also does not specify a minimum SCA patch level; check the related “SCA Patches” documentation to confirm your build includes these new methods before attempting the replacement.
Source: Oracle NetSuite Release Notes