Loading...
Area: Optimizely Commerce, Optimizely Product Recommendations
Applies to versions: EPiServer.Personalization.Commerce 4 and higher
Other versions:

Installing and configuring the native integration package

Recommended reading 
Note: This documentation is for the preview version of the upcoming release of CMS 12/Commerce 14/Search & Navigation 14. Features included here might not be complete, and might be changed before becoming available in the public release. This documentation is provided for evaluation purposes only.

This topic describes how to configure the native integration for Episerver Commerce. The native integration provides the product-specific setup when implementing personalization for Episerver solutions.

Installation

The native integration package is available via the Episerver NuGet feed. See also Install and configure personalization.

Use the TrackingOptions class to enable tracking using appsetting.json file, or a startup class. Below is an example using appsettings.json.

{
  "EPiServer": {
    "Tracking": {
      "TrackingOptions": {
        "TrackingEnabled": true
      }
    }
  }
}

After installing it, you must modify the configuration to include settings for your Product Recommendations environment. Recommendations reads its configuration from the PersonalizationOptions class. You can use appsettings.json file to configure options.

Example

{
  "EPiServer": {
    "Personalization": {
      "PersonalizationOptions": {
        "BaseApiUrl": "https://defaultbaseurl.com",
        "Site": "defaultsite",
        "ClientToken": "defaultclienttoken",
        "AdminToken": "defaultadmin",
        "Channel": "test",
        "RequestTimeout": 30,
        "TrackingMode": "ClientSide",
        "SkipUserHostTracking": true,
        "UsePseudonymousUserId": true,
        "FeedCatalogName": "Test",
        "FeedSkipProductLevel": true,
        "Scopes": [
          {
            "AdminToken": "scopeadmin",
            "BaseApiUrl": "https://scopebaseurl.com",
            "ClientToken": "scopeclienttoken",
            "Site": "scopesite",
            "Channel": "scopetest",
            "FeedCatalogName": "ScopeTest",
            "FeedSkipProductLevel": false,
            "ScopeId": "scopeid",
            "Name": "Scope Test"
          }
      }
    }
  }
}

The options described in the following can be used.

Recommendation keys

Key Description
BaseApiUrl   The URL of the Episerver Product Recommendations environment to use. This should only contain the protocol and host name. Note: Never use UAT endpoints in production for this key.
Site   The site name used to identify requests to the tracking server.
ClientToken   The token used to authenticate tracking requests to the REST API.
AdminToken   The token used to authenticate admin requests to the REST API.
RequestTimeout   [Optional] Timeout for the REST calls. The default value is 30 seconds.
TrackingMode  [Optional] The tracking mode to use. Acceptable values are ServerSide and ClientSide.
The default value is ServerSide.
To use the client side (JavaScript) tracking APIs, set the value to ClientSide.
SkipUserHostTracking [Optional] Lets you exclude user IP address from tracking data. Set to True to omit IP address from tracking, which may reduce recommendation accuracy. Default value is False.
UsePseudonymousUserId [Optional] Controls whether the pseudonymous user identifier is used instead of user email address in  tracking data. Set to True to omit email address from tracking and use Contact Id instead. Default value is False.
CatalogFeedBatchSize   [Optional] The number of products processed in one batch when the product feed is generated. A higher value can be faster but puts more pressure on the memory. The default value is 50.
FeedCatalogName   [Optional] Select the catalog used to generate the product feed if you have multiple catalogs. If this value is not set, the first catalog is used.
Note: This property will be removed when Product feed support for multiple catalogs is added.

The export function has a few settings in addition to those above. Apply them via code on the default CatalogFeedSettings instance.

var catalogFeedSettings = ServiceLocator.Current.GetInstance<CatalogFeedSettings>(); 
catalogFeedSettings.DescriptionPropertyName = "...";
Property Description
ExcludedAttributes   Names of product properties to exclude from the catalog feed.
DescriptionPropertyName   The product feed requires each product to have a description. Set this to a property name you want to use as description. Default value is Description.
AssetGroupName   The first asset (ordered by SortOrder) in this group is used for the item's image link. The default value is default.

Note: Differences between the authentication mechanism of EPiServer.ServiceAPI and EPiServer.Personalization.Commerce may lead to the incorrect functioning of user change tracking or catalog feed download. To avoid these problems, it is recommended to install EPiServer.ServiceAPI in a separate application.

Do you find this information helpful? Please log in to provide feedback.

Last updated: Jul 02, 2021

Recommended reading