Assortments

Assortments are flexible ways of showing certain shops, product groups or products to selected users or user groups only, e.g. in white label scenarios.

Assortments are managed and created from the Assortments node in the Ecommerce tree (Figure 1.1).

Figure 1.1 Assortments are located in the eCommerce > Product Catalog tree

Clicking an existing assortment opens a product list of all the products which have been added to the assortment.

To create a new assortment:

  • Right-click the Assortments node
  • Click New assortment to open the edit assortment interface (Figure 2.1)
Figure 2.1 Creating a new assortment

Here you must:

  • Provide a name for the assortment (you can create localized names with the flag-button in the ribbon bar)
  • Check the active checkbox (or leave it unchecked, if you want to disable the assortment)
  • Decide if you want to include (product) subgroups in the assortment selection.

In the Frontend group(s) and user(s) section, you can add the users and user groups which should be given access to the products in this assortment.

If you create a particular assortment targeted at anonymous users, remember to check the Anonymous users checkbox.

An assortment is meant to contain a particular subset of the product portfolio on a solution.

To add content to an assortment:

  • In the ribbon bar, click on the attached shops, attached groups or attached products button (Figure 3.1) – whichever is appropriate
Figure 3.1 Add Ecommerce content to an assortment using these buttons

This opens an overview of he  currently attached shops/product groups/products (Figure 3.2).

Figure 3.2 Content added to an assortment

From the assortment content view you can:

  • Delete a shop/group/product from the assortment by clicking the red delete-icon (X)
  • Add a new shop/group/product to the assortment by clicking the green plus-sign

Once content has been added to an assortment, it must be (re)built.

To do so, right click the assortment in the eCommerce tree and click rebuild assortment (Figure 3.3).

Figure 3.3 Rebuilding (populating) an assortment

The rebuild-task is set to run automatically every five minutes, so if you’re not in a hurry just have a cup of coffee or tea. Maybe a biscuit.

Go on.

You deserve it.

Assortments and indexing

If you use Lucene indexing (repository), you need ensure a rebuild of the index followingly. The index will hold information about the assortment per user, but changes will not be reflected in the frontend until after rebuild of the index.

Below an example of a query setup that will show all products that are NOT in an assortment + all products that are in one or more assortments related to the currently logged-in frontend user.

In order to use assortments in the frontend, you must enable them under Settings > Ecommerce > Advanced configuration > Assortments (Figure 5.1).

Figure 5.1 Activate assortment by checking this box

When assortments are enabled, the selected Ecommerce content is only available to the logged-in users specified on the assortment, and the standard Ecommerce navigation provider is replaced with an assortment navigation provider – which only renders groups containing valid products or subgroups with valid products.

When logged in, a user can see the products in an assortment they have access to alongside regular products in the Product Catalog (if any exist, of course).

Database

These are the database tables relevant for Assortment.

These are the database tables associated with assortments:

EcomAssortments

Defines assortments.

Field name Data type Length
AssortmentID nvarchar 50
AssortmentLanguageID nvarchar 50
AssortmentName nvarchar 255
AssortmentNumber nvarchar 255
AssortmentPeriodID nvarchar 50
AssortmentLastBuildDate datetime 8
AssortmentRebuildRequired bit 1
AssortmentAutoID int 4
AssortmentActive bit 1
AssortmentIncludeSubgroups bit 1
AssortmentAllowAnonymousUsers bit 1

EcomAssortmentItems

Contains an index of products which are members of an assortment – the index needs to be built when products or assortment is changed.

Field name Data type Length
AssortmentItemAssortmentID nvarchar 50
AssortmentItemRelationAutoID int 4
AssortmentItemRelationType nvarchar 50
AssortmentItemLanguageID nvarchar 50
AssortmentItemProductID nvarchar 30
AssortmentItemProductVariantID nvarchar 255
AssortmentItemAutoID int 4

EcomAssortmentShopRelations

Link shops (AssortmentShopRelationShopID) to assortments (AssortmentShopRelationAssortmentID).

Field name Data type Length
AssortmentShopRelationAssortmentID nvarchar 50
AssortmentShopRelationShopID nvarchar 255
AssortmentShopRelationAutoID int 4

EcomAssortmentGroupRelations

Links Product Groups (AssortmentGroupRelationGroupID) to Assortments (AssortmentGroupRelationAssortmentID).

Field name Data type Length
AssortmentGroupRelationAssortmentID nvarchar 50
AssortmentGroupRelationGroupID nvarchar 255
AssortmentGroupRelationAutoID int 4

EcomAssortmentProductRelations

Links products (AssortmentProductRelationProductID) to Assortments (AssortmentProductRelationAssortmentID).

Field name Data type Length
AssortmentProductRelationAssortmentID nvarchar 50
AssortmentProductRelationProductID nvarchar 30
AssortmentProductRelationProductVariantID nvarchar 255
AssortmentProductRelationAutoID int 4
AssortmentProductRelationProductNumber nvarchar 255

EcomAssortmentPermissions

Controls user (AssortmentPermissionAccessUserID) access to assortments (AssortmentPermissionAssortmentID).

Field name Data type Length
AssortmentPermissionAssortmentID nvarchar 50
AssortmentPermissionAccessUserID int 4
AssortmentPermissionAutoID int 4