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
searchCatalogIndexAPI is called with the
ItemGroupCodeattribute set to
PRODto fetch a list of products that match the keywords. When a product is selected from the list of matching products, the
getCompleteItemListAPI 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
getCompleteItemListAPI 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
getCompleteItemListAPI is called to retrieve the product details.
- 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
- Product Details
- When the correct product is located and selected through a keyword search, or through a scan,
the product details are displayed. The
getCompleteItemListAPI 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 Rulesrule.
- If the
Show Product Image in Web Store User Interfacerule is set, the product image is displayed. If not, only the short description of the product is displayed.
Variation products: If the
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
getCompleteItemListAPI with the
ItemAttributeGroupTypeattribute set to
DISTINCT_ATTRIBUTESfor 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
getCompleteItemListAPI 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 UIrule is considered. The value that is configured for the rule is passed in the
MaximumRecordsattribute as part of the
- When the correct product is located and selected through a keyword search, or through a scan, the product details are displayed. The
- Quick checkout
On the application home page, the store associate can scan the product in the Quick Checkout portlet. The
getCompleteItemListAPI is called to get product details. When a product is added using the Quick Checkout portlet, the
createOrderAPI is called to create a new order with the delivery method set to
CARRYby default. For each product that is scanned after the first product, the
modifyFulfillmentOptionsAPI is called to add the product to the cart.
View fulfillment options
getItemAvailabilityForStoreAPI 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
getItemAvailabilityForStoreAPI is called, which in turn calls the
getAvailabilityCacheAPI 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
getItemAvailabilityForStoreAPI is called, which in turn calls the
getFulfillmentOptionsForLinesAPI to retrieve the real-time availability for products.
- If cached inventory is not set up, the
Standard Search Fulfillment Typerule 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
getItemAvaialbilityForStoreAPI is read. The API returns the
HasAnyUnavailableQtyattribute. If this is set to
Y, then the product is not available and if set to
N, then the product is available and
ProductAvailDateattribute is read from the API output. The
ShipNodeDescriptionattributes are also read from the API output and displayed on the screen.
getItemAvailabilityForStoreAPI. The default delivery method for a product is determined based on the following logic:
Yfor 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.
Email Product detailsresource 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
createOrderAPI is called to create a new order, or the
modifyFulfillmentOptionsAPI 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:
getItemAvailabilityForStoreAPI 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
modifyFulfillmentOptionsAPI is called to add the new product to the cart with the updated quantity. The
getCompleteOrderDetailsAPI returns the total number of products in the order.
Additionally, the application provides the following features:
Alternate store selection
- If the
"Y"for a given product and the output of the
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.
Distance UOM To Consider When Searching For Storesrule is used to get the UOM for the distance or the radius considered to fetch alternate stores.
getSurroundingNodeListAPI is called to retrieve a set of stores. The output of the API is passed to the
getAlternateStoreAvailabilityAPI 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
ShipToAddressattribute in the
- 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.
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,
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 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
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
REMOVE to delete the product. After a product is deleted, the mini cart is
Evaluation of carry order line availability
Sterling Store Engagement and Store Inventory
Management support the pickup, ship, and carry line fulfillment
getItemAvailabilityForStore API checks the availability of the
products in stores. The availability of products with carry order lines is computed differently by
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
When integrated with IBM Sterling Inventory Visibility integration
Visibility only supports pick and ship delivery methods for checking
availability. Hence, checking the availability of carry lines in Sterling Inventory
fails. To avoid checking the availability of the carry lines with Sterling Inventory
you must set the
yfs.isf.ycd.suppressCarryAvailabilityCheckToIV property to