Customer Search Function

This feature provides retailers with a smart search function with one search field. The retailer has access to CPS via a UI to search for a specific customer using various search criteria (customer ID, name, company name, address, etc.). The retailer can find and check a customer's details and sort them according to predefined criteria. The retailer can change customer data.

There are two implementations of the full-text search. One is a simple LIKE search (Oracle, MSSQL, Hana DB) and the other uses a dedicated postgres functionality for the full-text search.

Criteria

The input is searched for in the following attributes:

  • customerId
  • firstName
  • lastName
  • name
  • username
  • email
  • street
  • city
  • postalCode
  • phone

Sorting

Postgre

By default, results are returned sorted by relevance. The reference sets the weight of a specific attribute. The individual relevance can be configured in Storemanager. The entries in a group are sorted by customer ID.

Example: The string "west" can be found in lastName, street, city, etc. If the highest weight is set to lastName, the results with "west" in the last name are returned first.

If the user clicks on a column, that column is used as the sorting criterion. The backend is called again with this criterion.

For the column displaying firstName + lastName for persons or organizationName for organizations, the CONCAT command is used, where these attributes are consolidated. The result is then that persons and organizations are sorted by their names as one group.

LIKE Search

Here the username attribute is used as the default sorting criterion.

Functionality

LIKE Search

  • Prefix search and also partial word search. If you search for "Ber" you will find "Berlin", but "Berlin" will also be found when you search for "rli"
  • The search is case insensitive. Both "ber" and "Ber" will find "Berlin"
  • The search works with and without diacritics. Both "Öko" and "oko" will find "Ökonom"
  • Sorting by one or more columns

Postgre

  • Prefix search. If you search for "Ber" you will find "Berlin", but if you search for "rli", "Berlin" will not be found
  • The search is case insensitive. Both "ber" and "Ber" will find "Berlin"
  • The search works with and without diacritics. Both "Öko" and "oko" will find "Ökonom"
  • Sorting by one or more columns and also sorting by relevance
  • There is an option to use a dictionary for the selected language, which provides additional functionality such as searching for misspelled words etc. However, the functionality is limited by the respective dictionary, so it will be slightly different for each language (now out of scope).