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