Document Properties
KbidR28949
Last Modified04-Feb-2020
Added to KB13-Dec-2018
Public AccessEveryone
StatusOnline
Doc TypeGuidelines, Concepts & Cookbooks
ProductICM 7.10

Concept - Customer-Specific Assortments

1 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.

1.1 References

2 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.

2.1 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.

2.2 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).

3 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.

3.1 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.

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

  2. Add the attribute to the search index and rebuild the search index.
  3. 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.

3.2 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 "Customer ID Exclusion" for all products that should be hidden for specific customers.
  • Configure the Fallback Search Query Definition with: Customer ID Exclusion - is not - {CurrentCustomerID}.

4 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.

4.1 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.

4.2 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.

4.3 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.

4.4 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.

4.5 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.

Customer Support
Knowledge Base
Product Resources
Support Tickets