Legacy platform

Browse and view products

Customers can request the call center users to provide details of a product that they plan to purchase. In such situations, users must be able to browse products and view the details.

Solution

The following section describes APIs, user exits, services, and other components.

Browsing products
A user can browse products on the Product Browsing screen. Users can access the Product Browsing screen in the following ways:
  • A user can launch product browsing as a related task from the home page of the application. When the user chooses to browse products from the home page, the getOrganizationList API is called to retrieve the list of seller organizations, if the user has access to multiple organizations. The user can select the organization that has the products. Otherwise, the default organization is considered.
  • A user can browse products from the Add Products screen in the order creation or modification flow. If the user goes to the Add Products screen, after identifying a customer, a customer context is associated. The CustomerID attribute is passed to the APIs that are called during product browsing. If customer entitlements are applicable, the products that the customer is entitled to purchase are only listed in the browse results.
  • A user can choose to browse products from the Customer Details screen, in which case a customer context is associated. The CustomerID attribute is passed to the APIs that are called during product browsing. If the customer entitlements are applicable, the products that the customer is entitled to purchase are only listed in the browse results.
  • The user can also browse products from any screen across the application by using the global search feature. The user can enter either the product identifier, part of the product name, or the complete product name in the search field at the top of the screen, and do a search. If the user has access to multiple enterprises, the user can select the enterprise that has the product. Otherwise, the default enterprise is considered. The getOrganizationList API is called to retrieve the list of seller organizations. After selecting the enterprise, the Product Browsing screen is displayed.
    Note: Product browsing uses the searchCatalogIndex API internally. Although this API supports wildcard search (*), the asterisk (*) character is disallowed due to security concerns. However, if the wild card search is required, then after adequate security analysis, the regular expression pattern responsible for this validation can be overridden to allow the special character.

When the Product Browsing screen loads, the getSearchIndexFieldList API is called to retrieve a list of fields in a catalog index that can be used for searching, sorting, or as filter criteria when the user browses for products. In the Product Browsing screen, the user can browse for products by using a relevant keyword as the search criteria.

The searchCatalogIndex API is called to retrieve the products and the corresponding details.
  • If the search returns more products than the maximum number that is configured, an appropriate message is displayed informing the user to refine the search.
  • If only one product matches the search criteria, the product details are displayed.

If the user browses for a model product, the child variation products are also displayed. The ExcludeChildItemsOfModelItems attribute is passed with the value as N to the searchCatalogIndex API.

Cached inventory must be set up to allow the users to browse the product catalog. In most situations, the inventory information that is displayed to the users is not updated in real time. Therefore, the cached inventory is updated to provide a real-time picture of the inventory. To improve the UI performance, availability is displayed from cached inventory rather than real-time inventory in the Product Browsing screen.

The searchCatalogIndex API returns the following information:
  • Products: For each product, the following details are retrieved:
    • Primary information: Product description, extended display description, and the allowed delivery methods.

      Extended Display Description and the allowed delivery methods: If the Extended Display Description is not provided while creating or updating a product, a default logic is applied to show the extended display description as <Short Desc> (<Item ID>). For variation products, the model product's extended display description is shown by default.

      If the implementer does not prefer to use the default logic, the Extended Display Description can be provided while creating the product.

    • Price: Unit price along with the UOM configured for the product.
    • Cached availability: Products can be in stock, out of stock, or available on a specific date.
  • Categories: The categories and the count of products in each category.
  • Page size and total number of pages.
The user can narrow down the search results by using the options in the Categories and Narrow By panels.
  • When the user selects a category, the selected category is passed in the input to the searchCatalogIndex API. The set of products that belong to that category are displayed.
  • When the search returns products that belong to a certain price range, the searchCatalogIndex API returns the price ranges as "Narrow By" attributes that can be used to filter the products. These attributes could be computed, derived, or reference attributes. When the user selects a price range, the searchCatalogIndex API is called again to retrieve the corresponding products.

As the user narrows down the search, breadcrumbs are generated at every step. The user can click a breadcrumb to go to the required page, which removes the subsequent breadcrumbs.

Sorting products

By default, the search results are sorted based on relevance. Users can also sort products based on Product ID, Short Description, or Price. However, the searchCatalogIndex API does not return any attribute corresponding to relevance. Out of the box, the API is designed to return the ItemID and ShortDescription attributes to display the Product ID and Description respectively.

The attributes that are required to sort the products are configured in the CatalogSearchConfigProperties.xml file, which is in the <install_dir>/repository/xapi/template/merged/resource/extn/ directory. For example, to enable a user to sort products by the Product ID, you must set the XMLName attribute to the ItemID and Sortable attribute to Y.

Note: Customized sorting based on extended display description can not work due to limitations in the searchCatalogIndex API.

When the user selects a sort criteria, the products are sorted based on the selected criteria. The user can further sort these results in the ascending or descending order.

The sort criteria and the sorting order are passed in the input to the searchCatalogIndex API. For example, if the user sorts the products that are based on Product ID in the ascending order, then the ItemID is assigned to SortField and SortDescending attribute is set to N. Similarly, based on the page size that is selected by the user, appropriate inputs are passed to the API.

Note: If Sterling™ Call Center is integrated with Commerce and customer records are not maintained on Sterling Call Center, the BuyerUserID attribute that is captured during order creation is passed to the searchCatalogIndex API to search for products in a Catalog Index. The BuyerUserId attribute can be passed to the searchCatalogIndex API from the screen input as well. Further, the BuyerUserID attribute is passed to the getCompleteItemList API to display the correct prices of products for the customer, based on the pricing rule configured.

Implementation

The following section describes the rules that you must configure.

End-user impact

Users can browse for a specific product and select the product to view the details.