# SDK Usage Examples (Fall '19 version)

This topic and the topics that follow illustrate several examples for instantiating and using the Digital Commerce SDK.

````nolang
// Instantiate DigitalCommerceConfig for anonymous user
const digitalCommerceConfig = VlocitySDK.digitalcommerce.createConfigForAnonymousUser();

// Instantiate the SDK itselfconst digitalCommerce = VlocitySDK.digitalcommerce.getInstance(digitalCommerceConfig);

OR

// Instantiate DigitalCommerceConfig for login user
const digitalCommerceConfig = VlocitySDK.digitalcommerce.createConfigForLoginUser(salesforceUrl, sessionToken);

// Instantiate the SDK itself
const digitalCommerce = VlocitySDK.digitalcommerce.getInstance(digitalCommerceConfig);

// To override the default namespace with your custom namespace
this.digitalCommerce.namespace = "vlocity_cmt"; // use your custom namespace

// To override the default custom api URL with your custom api URL
this.digitalCommerce.apiURL = "YOUR_CUSTOM_API_URL"; // use your custom URL

// To override the default api URL
authTokenthis.digitalCommerce.authToken = "YOUR_CUSTOM_AUTH_TOKEN"; // use your custom authToken

Note:
digitalCommerce is a Singleton object.  Calling getInstance(digitalCommerceConfig) repeatedly will return the same instance instantiated the first time when getInstance(digitalCommerceConfig) was called.

// To instantiate a new instance of digitalCommerce, set create to true in the digitalCommerceConfig object:
digitalCommerceConfig.create = true;
digitalCommerce = VlocitySDK.digitalcommerce.getInstance(digitalCommerceConfig);```
````

Possible error conditions:

- "VlocityDigitalCommerce::getInstance: Config object must be given in argument to create an instance the first time."

- "VlocityDigitalCommerce::constructor: VlocityDigitalCommerce cannot be instantiated properly. Both datasource and user context objects have to be in Config object as argument."
