Concept - Customer-Specific Assortments

Introduction

Note

This concept is valid from Intershop 7.10.5.3.

To create customer-specific views of catalogs and products, there is the Catalog View feature. However, the demand for personalization rises to a point where Catalog Views are no longer sufficient. Catalog Views are suited for a handful of views, e.g., for customer segments. They are not suited for thousands of different views, individually for each customer.

The new approach are Customer-Specific Assortments. They work with the search index and allow a more flexible configuration without performance loss.

References

Features

It is possible to include or exclude products for specific customers. This is done via custom attributes either at the product or at the customer.

Options

With the corresponding configuration many possible applications of this feature are available. Some options are:

  1. Show most of all products to all customers, plus a handful of products which are only visible to one specific customer, e.g., custom-made products.
  2. Each customer has his own hand-picked assortment. There is no basic assortment for "everyone".
  3. Usually all products are visible for everyone. However, there are some customers for whom some specific products should be hidden.
  4. One customer can see the whole assortment, but due to contractual obligations he should not see products from a certain brand.

Storefront Behavior

If a product is included, there is nothing special. The customer can see and purchase the product.

If a product is excluded for a specific customer, the following behavior applies:

  • The product is not visible during catalog browsing and via search.
  • However, if the product was visible for the customer in the past, it is possible that he has already interacted with it.
    • Hidden products can still be on a wish list or order template. However, they can no longer be added to the cart.
    • Hidden products can still be in the cart. However, they are removed the next time the customer opens the cart page.
    • The quick order form in a B2B shop allows to order by product ID. Entering a hidden product ID is still possible. In such a case the product will not be added to the cart - instead an error message is shown. See the Limitations section below.
    • If a product from a running subscription is hidden for a customer, the subscription will be set to inactive and an error message is shown. No further orders are created from this subscription.
    • Existing orders in the order history can contain hidden products (now).
    • In all these cases the product name, thumbnail image, product ID and price are shown. The product details page is no longer accessible (a 404 error page will appear).

Configuration

To create assortments, it is necessary to carefully analyze the project requirements. Some examples are given here. However, this can be extended in projects.

Basically, product attributes are compared with customer attributes.

Customer-Specific Products

Use case:

The shop has a general assortment for all customers. In addition, there are products which are especially made for one (or very few) customers. In a B2B context, these products are also visible for all users of the customer.

Info

This example and related settings apply to the intronics Business channel.

To implement customer-specific products, do the following:

  1. Add a custom attribute CustomerID to all products, including:
    • Data Type: Multiple String, not localized
    • Value: ALL (so the product will be visible to all customers)
    • Value: <customer ID>, e.g., OilCorp (so the product will only be visible for users of the respective customer, i.e., OilCorp in this case)

      Note that the content of the CustomerID depends on the channel and its application type. For example, in inSPIRED-INTRONICS it denotes a single customer while in inSPIRED-inTRONICS_Business it is a business customer (OilCorp, AgroNet) having multiple users.

  2. Add the attribute to the search index, therefore:
    1. Switch to Mass Data Task | Search Indexes | <search index name> | Indexed Attributes.
    2. Click New.
    3. Provide all mandatory data: 

      FieldValue
      Display NameCustomerID
      AttributeIDCustomerID
      Data TypeMultiple String

    4. Click Apply.
  3. Rebuild the search index, therefore 
    1. Switch to Mass Data Tasks | Search Index.
    2. Select the search index to which the new attribute was added.
    3. Click Build.
  4. Check the search query definition in Channel Catalogs | Predefined Product Filters | Fallback Search Query Definition. The result should look like this:


The names of the attributes used in the examples are only for illustration purposes. Of course they can be named differently in a project.
Also note that multiple conditions for the same attribute are logically OR connected. Conditions for different attributes are AND connected.

The configuration is set up once. However, all changes to the product data require an update of the search index to become effective.

Customer-Specific Product Exclusions

Use case:

Similar to the previous one. A shop has a general assortment for all customers. However, some products should be hidden for some customers.

Differences:

  • Maintain a custom attribute CustomerIDExclusion for all products that should be hidden for specific customers.
  • Configure the fallback search query definition with: CustomerIDExclusion - not - {CurrentCustomerID}.

Limitations

Customer-specific assortments are currently in progress. The provided feature set is fully functioning, but it still has some limitations. Over time the feature set will grow.

Page Caching

Page caching works on customer segment level. With customer-specific assortments this mechanism needs to be used carefully. Since especially product lists can be highly individual now, caching per customer segment is no longer useful.

The recommendation here is to disable page caching of such pages.

Main Menu

Note:

This section applies until Intershop Commerce Management 7.10.7.3, for later versions this limitation no longer applies.

The mega menu in the storefront is not fully compatible with customer-specific assortments. It evaluates the "online" flag of categories and catalog views to define if a category is visible there or not. If categories are empty, because the search index filters out all contained products for the current customers, this category is still visible - and empty.

Category Page

Note:

This section applies until Intershop Commerce Management 7.10.10.1, for later versions this limitation no longer applies.

The category page is not fully compatible with customer-specific assortments. It evaluates the "online" flag of categories and catalog views to define if a category is visible there or not. If categories are empty, because the search index filters out all contained products for the current customers, this category is still visible - and empty.

Note:

The filter navigation in the sidebar is fed from the search index, so empty categories are filtered out there.

Quick Order

The quick order form in a B2B shop allows to order by product ID. Entering a product ID which is excluded for the current customer is still possible.

In such a case the product will not be added to the cart. However, an error message including name, image and price of the product is shown.

Number of Custom Attribute Values

This feature is designed to allow a much greater flexibility than Catalog Views. Nevertheless the amount of data is not unlimited.

Example: Using custom attributes at the product as described above is designed for customer-specific products. The assumption is that the amount of customers who can see one product is either "all" or a low number. Approximately 5000 values for one custom attribute have been tested and were working. Nevertheless, the actual amount in a real scenario can be different, depending on the length of the values, amount of products in the channel, etc. The bottleneck is the memory of the database while the search index is built.

If you can foresee that the number of values for one attribute will be larger, please consider an alternative setup of the assortment, e.g., instead of comparing a product attribute to a customer ID, you can compare it with the customer segment ID. Alternatively, you can maintain the data at category level instead of product level.

Disclaimer
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.
Home
Knowledge Base
Product Releases
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to supportadmin@intershop.de if you experience login issues,
or if you want to register as customer.