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 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 thesearchCatalogIndex
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.
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.
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.
- Primary information: Product description, extended display description, and the allowed delivery
methods.
- Categories: The categories and the count of products in each category.
- Page size and total number of pages.
- 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, thesearchCatalogIndex
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 productsBy 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
.
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.
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
- You can enter the Extended Display Description in the Primary Information screen of the product in the Sterling Business Center. For more information, see the Sterling Business Center Product Administration.
- To enable users to browse products, you must define the organization's advanced catalog attributes appropriately. For more information, see the Defining An Organization's Advanced Catalog Attributes.
- You must configure the attribute groups, attributes, and values for a product. For more information, see the Sterling Business Center Product Administration.
- For more information about extending a catalog search, see Extending a catalog search.
- For more information about catalog administration, see Sterling Business Center Product Administration.
- To view images of the products, you must create assets, configure to point to the appropriate images, and associate with the product. For more information, see the Sterling Business Center Product Administration.
- You must add and configure the asset types for a product appropriately. To enable a user to view the primary image of a product, you must select the asset type as "Item Image1" in the Sterling Business Center. For more information, see Sterling Business Center Product Administration.
- You must add and configure the asset types for a product appropriately. To enable a user to view more images of a product, select the asset type as "Item Image Large1" in the Sterling Business Center. For more information, see the Sterling Business Center Product Administration.
You must configure the standard unit of measure display rules for a product. To define the unit of measure for quantity, see Defining unit of measure.
- You can configure the fulfillment mode for bundle products such that a user can ship the bundle products either independently or together in a single shipment. For more information, see the Sterling Business Center Product Administration.
- You can create and manage customer entitlements. For more information, see the Sterling Business Center Product Administration.
- Browsing products is a permission-controlled task. For more information about administering user group permissions, see Organization and participant modeling concepts.
- The global search for products is based on the resource permission that is provided for the Product Browsing screen. For information about administering user group permissions, see the Organization and participant modeling concepts.
- The "Allow Pick Up" store rule governs the display of pickup options. When the
Product Browsing screen loads, the
getRuleDetails
API is called to verify whether theYCD_STORE_ENABLED
rule is enabled. Only if this rule is enabled, the pickup options are available. For more information, see the Sterling Business Center Product Administration. - For more information about the APIs, see the Javadoc.
End-user impact
Users can browse for a specific product and select the product to view the details.