Class ShopperContextMgr
dw.customer.shoppercontext
Class ShopperContextMgr
Object
dw.customer.shoppercontext.ShopperContextMgr

Provides static helper methods for managing Shopper Context.

Shopper Context is used to personalize shopper experiences with context values such as custom session attributes, assignment qualifiers, geolocation, effective datetime, source code and more. When Shopper Context is set for a shopper, it can activate promotions or price books assigned to customer groups, source codes, or stores (via assignments) in the subsequent requests, not the current request.

Shopper Context is used to personalize the shopper experience in case of Composable/Headless or Hybrid storefront implementations that use Shopper Login and API Access Service (SLAS).

NOTE: This script API is not intended to be used for standard server-side storefront implementations. Only for Composable/Headless or Hybrid storefront implementations.

Unlike CustomerContextMgr which is used to set just Effective Time for which the customer is shopping at, Shopper Context API provides a way to set many types of contexts such as custom session attributes, assignment qualifiers, geolocation, effective datetime, source code etc.

The following feature toggles and site preferences must be enabled in order to use this script API:

  • Enable Shopper Context Feature
  • Enable Hybrid Authentication Feature - only in case of Hybrid storefront implementations
  • Hybrid Auth Settings' site preference - only in case of Hybrid storefront implementations

For more details on Shopper Context please refer to: Shopper Context API Overview

For more details on Hybrid Authentication for Hybrid storefronts please refer to: Hybrid Authentication

ShopperContextMgr is used to create, access and delete Shopper Context.

Properties
shopperContext  :  ShopperContext
The ShopperContext if it exists for the customer. Returns null if it does not exist.
Constructor Summary
This class does not have a constructor, so you cannot create it directly.
Method Summary
static getShopperContext() : ShopperContext
Returns the ShopperContext if it exists for the customer.
static removeShopperContext() : void
Removes the ShopperContext for the customer.
static setShopperContext(shopperContext : ShopperContext, evaluateContextWithClientIP : boolean) : void

Sets new ShopperContext for the customer or overwrites the existing context.

Method Detail
getShopperContext
static getShopperContext() : ShopperContext
Returns the ShopperContext if it exists for the customer. Returns null if it does not exist.
Returns:
The Shopper Context or null.
Throws:
ShopperContextException - This exception is thrown if an error occurs while fetching the Shopper Context.

removeShopperContext
static removeShopperContext() : void
Removes the ShopperContext for the customer.

The method throws an exception if the deletion of Shopper Context fails.

Throws:
ShopperContextException - This exception is thrown if error occurs while deleting the Shopper Context.

setShopperContext
static setShopperContext(shopperContext : ShopperContext, evaluateContextWithClientIP : boolean) : void

Sets new ShopperContext for the customer or overwrites the existing context.

Note: This method does not save the attributes from the given Shopper Context such as - custom session attributes, source code, effective date time etc., - in the current session object. These attributes are read from Shopper Context and stored in the corresponding session attributes during subsequent requests and not in the current request. Hence, promotions, price books etc., are triggered in subsequent requests.

If clientIP is set in ShopperContext, the geolocation information is retrieved and set in x-geolocation header.

And if the parameter evaluateContextWithClientIP is set to true, the clientIP will be saved to the Shopper Context.

If parameter evaluateContextWithClientIP is set to false, the clientIP will not be saved to the Shopper Context.

If the geoLocation attribute is set, it overrides any geolocation context set by clientIP.
Parameters:
shopperContext - The new Shopper Context to set. See documentation for ShopperContext
evaluateContextWithClientIP - The boolean to determine if Shopper Context should be evaluated with clientIP address.
Throws:
ShopperContextException - This exception is thrown if the Shopper Context is not saved or if validation fails.