Optimize Code for Multiple Anchor Recommendations

Passing multiple product anchors to Commerce Cloud Einstein enables you to provide product recommendations based on customer-specific items.

We recommend passing the basket object as a context-object in the isslot tag. But if there are added criteria for filtering out the products, we recommend that you use the approach described here to assemble a collection of products for the context-object.

Note: You can use this approach wherever you want to pass multiple anchors to the Commerce Cloud Einstein recommender. For example, in the shopper’s cart, product wish list, and order history. Also keep in mind that Einstein uses up to five products from the passed context-object as anchors for the recommendations.

Some development work is required to process multiple product anchors. Personal implementation can vary substantially, but API calls remain generally the same.

To pass multiple product anchors to Einstein from a shopper’s cart:

  1. Locate the following line of code in cart.isml.
    <iscomment> LOOP TO SEPARATE DIFFERENT SHIPMENTS ex: Gift Registry Shipments Etc.</iscomment>
  2. Add the following code after the comment to create a productCollection array that gathers product anchors from the shopper’s cart:
        var ArrayList = require('dw/util/ArrayList');
        var productCollection = new ArrayList();
        for (var itemIndex in pdict.Basket.productLineItems) {
            var lineItem = pdict.Basket.productLineItems[itemIndex];
            if (lineItem.catalogProduct) {
  3. Locate the following line of code:
    <isslot id="cart-footer" description="Footer for Cart page" context="global"/>
  4. Add the following slot definition after the cart footer line:
    <isslot id="slot-cart-reco-einstein" context="global" context-object="${productCollection}"
               description="Einstein Recommendations on cart page"/>
  5. Save the file.
    Einstein product recommendations appear below the shopper’s cart footer on the page.
X Privacy Update: We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used. By continuing to use this site you are giving us your consent to do this. Privacy Policy.