Legacy platform

Add products to cart

A store associate must be able to scan the products that the customer wants to purchase, or find the appropriate products in the catalog and add them to the cart. Alternatively, the store associate can perform a quick checkout.

Find products from the home page

  • Keyword search or scan
    • When the store associate performs a search by using keywords and clicking the Search icon in the Find Products portlet on the Home page, the searchCatalogIndex API is called with the ItemGroupCode attribute set to PROD to fetch a list of products that match the keywords. When a product is selected from the list of matching products, the getCompleteItemList API is called to get details for the product.
    • Alternatively, if the store associate scans a product or enters a product ID and clicks the Scan icon, the getCompleteItemList API is called to get the details for the scanned product.
    • Product details are displayed, but the store associate remains on the Find Products screen of the wizard. The store associate can scan a product, or search for a product, from the Find Products page. The getCompleteItemList API is called to retrieve the product details.
  • Product Details
    • When the correct product is located and selected through a keyword search, or through a scan, the product details are displayed. The getCompleteItemList API is called to retrieve product details. Details such as complete description, SKU, price, attributes such as size and color in case of variation products, and related products are displayed. For example, if the product is a T-shirt, variation attributes like size and color are displayed that the customer can choose from. Similarly, a TV can have a DVD player as a related product that a store associate can cross-sell to the customer.
    • The UOM is displayed for products considering the Unit of Measure Display Rules rule.
    • If the Show Product Image in Web Store User Interface rule is set, the product image is displayed. If not, only the short description of the product is displayed.
    • Variation products: If the getCompleteItemList API returns IsModelItem="Y" for a specific product, then the product is a model product. The attributes and attribute values of the model product are displayed. The API also returns the list of allowed combinations for the model product. By default, the Add to Cart button is disabled. To enable the Add to Cart button, the store associate must select a variation of the product, such as a different size or color. The page is refreshed by calling the getCompleteItemList API with the ItemAttributeGroupType attribute set to DISTINCT_ATTRIBUTES for the new variation of the product, and the Add to Cart button is enabled for available products. When the store associate clicks attributes, the attributes images or elements are disabled based on the allowed combination configured for the variation item. If selected combination is not allowed, then it is indicated appropriately on the UI and the store associate has to select other attributes.
    • Related products: The getCompleteItemList API retrieves the related products as well. All of the related products are listed together and are not displayed separately based on the association types. Each related product is added as a new orderline and no relationship is maintained between the parent and the related orderlines. To fetch the number of related products for each type of association, the Maximum number of associations to show in UI rule is considered. The value that is configured for the rule is passed in the MaximumRecords attribute as part of the ItemAssociationTypeList element.
  • Quick checkout

    On the application home page, the store associate can scan the product in the Quick Checkout portlet. The getCompleteItemList API is called to get product details. When a product is added using the Quick Checkout portlet, the createOrder API is called to create a new order with the delivery method set to CARRY by default. For each product that is scanned after the first product, the modifyFulfillmentOptions API is called to add the product to the cart.

View fulfillment options

On the Find Products screen, the fulfillment options for the product are also displayed. The getItemAvailabilityForStore API is called to retrieve the availability for the product. However, based on whether the store uses real-time or cached availability, the appropriate logic is executed to display the fulfillment options.
  • If an inventory monitoring rule is set for a product, the application determines that inventory is cached and getItemAvailabilityForStore API is called, which in turn calls the getAvailabilityCache API to retrieve the cached availability.

    Cached inventory can be set up to obtain availability information. In most situations, the inventory information that is displayed to the user is not updated in real-time. To improve UI performance, it is recommended to use cached inventory instead of real-time inventory.

  • If an inventory monitoring rule is not set for the product, then the system determines that real-time inventory is required and the getItemAvailabilityForStore API is called, which in turn calls the getFulfillmentOptionsForLines API to retrieve the real-time availability for products.
  • If cached inventory is not set up, the Standard Search Fulfillment Type rule is read and the value is passed to identify the sourcing rule, which determines the type of nodes such as stores or distribution centers and the sequence in which they must be considered, while retrieving availability for products.
  • The availability information returned by the getItemAvaialbilityForStore API is read. The API returns the HasAnyUnavailableQty attribute. If this is set to Y, then the product is not available and if set to N, then the product is available and ProductAvailDate attribute is read from the API output. The ShipNode and ShipNodeDescription attributes are also read from the API output and displayed on the screen.
Product availability is displayed based on the output of the getItemAvailabilityForStore API. The default delivery method for a product is determined based on the following logic:
  • If IsPickupAllowed attribute is Y for a product and the product is available in current store, then the default delivery method is set to CARRY.
  • If the product is unavailable to carry, but it is available for shipping and IsShipAllowed = Y, then default delivery method is set to SHP.
  • If the product is unavailable to ship, but is available for pickup and IsPickupAllowed = Y, then default delivery method is set to PICK.

If a delivery method is not available for a product, then Not Available message is displayed, so the store associate cannot select that method as the delivery method.

The store associate can click the Share button to share the product details with the customer. On the Share pop-up window, the store associate can share the product details through email by default. The customer's registered email address is automatically populated and if the email address does not exist, the store associate can manually enter an email address. When the store associate clicks the Email button, the product details are sent to the customer. Similarly, the store associate can send product details to multiple email addresses by entering the email addresses manually.
Note: You can also add multiple sharing options through customization. Similarly, you can customize the default email service as required.
If the store associate does not have the Email Product details resource permission and the Share button has only the Email option, then the Share button is not seen on the screen.

Adding products to a cart

  • The store associate can search for a product in Find Products portlet and add it to the cart from Find Products screen, if inventory is available, by clicking Add to Cart. The createOrder API is called to create a new order, or the modifyFulfillmentOptions API is called to add products to an existing order.
  • If the store associate does a quick checkout, the scanned product is automatically added to the cart, and the View Cart screen is displayed.
  • To increase or decrease the quantity of a product in the cart, the store associate clicks the + or - button appropriately. The following logic is executed:
    • The getItemAvailabilityForStore API is called to retrieve the availability for the product.
    • Once a product is added to cart, any change made to the product like an increase or decrease in the quantity, change in store,price override, and so on, the product has to be added to the cart again by clicking Add to Cart and the previously added product is not updated. When the store associate clicks Add to Cart, the modifyFulfillmentOptions API is called to add the new product to the cart with the updated quantity. The getCompleteOrderDetails API returns the total number of products in the order.

Additionally, the application provides the following features:

Alternate store selection

From the Find Products screen, the store associate can view alternate stores if the pickup fulfillment method is allowed for the product. If a product is not available in the current store, a store associate can select a nearby store or a store of the customer's choice from where the products can be picked up. The following logic is executed:
  • If the IsPickupAllowed attribute is "Y" for a given product and the output of the getAlternateStoreAvailability API shows Available to Pickup, then the store associate can choose to view the alternate stores. The alternate stores window has two tabs, Nearby Stores and Search Stores:
    • In the Nearby Stores tab, stores within a given radius are displayed. The radius can be adjusted by the store associate as required.
    • In the Search Stores tab, the store associate enters the state, city, or postal code, and then selects the radius to refine the search for stores with the given parameters.
    • In the alternate stores pop-up, the stores are listed based on two rules:
      • Distance radius to consider when searching for stores
      • Standard search fulfillment type
    • The maximum radius that can be set using the slider is based on the value set for the rule - Maximum distance radius to consider when searching for stores.

    • The Distance UOM To Consider When Searching For Stores rule is used to get the UOM for the distance or the radius considered to fetch alternate stores.
  • The getSurroundingNodeList API is called to retrieve a set of stores. The output of the API is passed to the getAlternateStoreAvailability API to get the availability information for the product at each store.
  • If the store associate searches for nearby stores, the address of the current store is passed as the ShipToAddress attribute in the getSurroundingNodeList API.
  • After the store associate selects the store for pickup, the information is updated on the Find Products screen.
  • For more information about configuring store fulfillment rules, refer to the Implementation section in this topic.

Price override

When a store associate selects the edit icon next to the unit price of a product from the Find Products page or the View Cart page, the PRICE OVERRIDE window is displayed.

In the PRICE OVERRIDE window, the store associate enters the new price for the product and a reason for the price override. To fetch the override reasons, the getCommonCodeList API is called with the CodeType attribute set to YCD_PRICEOVERRIDE. When the store associate clicks Apply, the modifyFulfillmentOptions API is called to override the list price of the product. The original price and the new price of the product are displayed.

To override the price of a product, the store associate must have resource permission to the Override Price action. If the store associate does not have the resource permission, the Override Price icon is not displayed.

Gift Options

The Gift Options available message is displayed for all items. If an item does not have gift options, the application needs to be customized to display Gift Options not available.

Mini Cart

The store associate can see a preview of the cart by clicking the cart icon. The getCompleteOrderLineList API is called to get the list of products in the cart. Next to each product is an X icon, which a store associate can click to delete the product.

If the store associate clicks the X icon, the modifyFulfillmentOptions API is called with the Action attribute set to REMOVE to delete the product. After a product is deleted, the mini cart is refreshed.

Evaluation of carry order line availability

Sterling Store Engagement and Store Inventory Management support the pickup, ship, and carry line fulfillment options. The getItemAvailabilityForStore API checks the availability of the products in stores. The availability of products with carry order lines is computed differently by the getItemAvailabilityForStore API depending on whether Sterling Store Engagement is integrated with IBM® Sterling Global Inventory Visibility or IBM Sterling Inventory Visibility.

When integrated with IBM Sterling Global Inventory Visibility

Carry lines are treated as pickup for the store in which the user is currently logged in. The delivery method is passed as PICK when the availability of a product is checked.

When integrated with IBM Sterling Inventory Visibility integration

Sterling Inventory Visibility only supports pick and ship delivery methods for checking availability. Hence, checking the availability of carry lines in Sterling Inventory Visibility fails. To avoid checking the availability of the carry lines with Sterling Inventory Visibility, you must set the yfs.isf.ycd.suppressCarryAvailabilityCheckToIV property to Y.