Add products

When a customer wants to place an order, a call center user must be able to find the appropriate product and add the product to the order.

Solution

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

The user can reach the Add Products screen through create order wizard. In the Add Products screen, users can enter the product ID and add the resulting product to the order. Alternatively, users can browse products and add to the order. The getCompleteItemList API is called to retrieve the product availability, available quantities and dates, unit price, supported fulfillment methods, and the associate products. The API also retrieves any associated services.

The CSR can also reach the Add Products screen from the Product Browsing or Product Details screen. If the user chooses to add products and services from the Product Browsing or Product Details screen and if there are open draft orders, the user is allowed to select the order to which the product must be added or create a new order by adding the product.

If the user identifies the customer before products are added, and the customer entitlement rules are applicable, the getCompleteItemList API handles only the products that the customer is entitled to purchase. Only if the customer information is passed to the getCompleteItemList API, and the customer entitlements are configured, the products that the customer is entitled to buy are returned.

Fulfillment methods and availability

The getCompleteItemList API retrieves the product availability from the cached inventory for shipping order lines. However, the availability for pickup order lines is retrieved from real-time inventory.

The getCompleteItemList calls the YCDoverrideDeliveryMethodForLinesUE user exit that is used to override fulfillment methods. This user exit provides the ability to override the logic of enabling a fulfillment method. The default implementation is not provided and you can use your own implementation for this user exit.

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 availability of the inventory. To improve the UI performance, availability is displayed from cached inventory rather than real-time inventory in the Add Products screen.

The product availability on a particular date is determined as follows:

  • If the ordered quantity is less than the on-hand available quantity, the on-hand available date is displayed.
  • If the ordered quantity is greater than the on-hand available quantity and future available quantity, the product is not available.
  • If the ordered quantity is greater than the on-hand available quantity and less than the future available quantity, the first available date in the future is displayed.
Bundle products and components

The getCompleteItemList API retrieves the components, if the selected product is a bundle parent. The API also retrieves the bundle pricing strategy, which is used to calculate the price of the bundle product.

For a bundle parent product whose fulfillment type is "Ship Together", the getCompleteItemList API returns the availability. The logic that is used to calculate the availability for regular products is applicable. Based on the availability of the individual components, the bundle parent's availability is computed and displayed on the user interface. However, for bundle parent products whose fulfillment type is "Ship Independent" or "Deliver Together", the availability is not shown.

Delivery and services

The getCompleteItemList API is called to fetch any associated or stand-alone services for a product. Associated and stand-alone services can be added from the Product Browsing screen or directly from the Add Products screen. To add delivery lines to an order, the delivery fulfillment method must be allowed for the product and the delivery services must be associated with the product.

If there are any provided services associated with the product, and if the provided services line relationship type is defined, then the provided services are displayed in the Service tab. Associated provided services are added in the same quantity as the parent product. They cannot be added individually. If a CSR tries to add an associated provided service without its associated product, an appropriate error message is displayed.

The CSR can change the fulfillment method of a product with a provided service from Shipping or Pick up to Delivery, if delivery services are available. The modifyFulfillmentOptions API is called to update the delivery method. When delivery is selected as the fulfillment method for a product, the getFufillmentOptionsForLines API is called to get real-time availability for the product by passing the delivery method as DEL. The availability information is updated against the selected fulfillment method based on the output of the getFulfillmentOptionsForLines API. If the delivery products are part of a bundle or variation product, the availability is not displayed. Delivery services are added in the same quantity as the parent product.
Note: If a product is eligible for delivery, then it must be associated with a delivery service. If Delivery is selected as the fulfillment method for a product that is not associated with a delivery service, the Fulfillment Summary screen does not load correctly. For more information about associating products with delivery services, see Associate a product item to a delivery service.
Configurable products

When the CSR adds a product to the order, the output of the getCompleteItemList API is parsed for two attributes namely isConfigurable and isPreConfigured. The isConfigurable attribute determines whether the product being added to the order is configurable or not. Further, the isPreConfigured attribute determines whether to display "Configure Product" or "Reconfigure Product" option.

If a product is configurable and is not preconfigured, the CSR will see the "Configure Product" button. However, if the product is preconfigured, the option to reconfigure is not shown upfront. The "Reconfigure Product" button is displayed only on saving the products to the order and the order lines are saved to the order. When the user chooses to configure the product, the omni-configurator interface loads within the application displaying the configurable options for the product.

For configurable products, the availability is computed in real time and the availability information is shown only after the user saves the products to the order. For pickup order lines, the availability information is displayed in Alternate Stores window only for order lines that are saved to the order by calling the getAlternateStoreAvailability API. When "Shipping" is selected as the fulfillment method, availability is shown for ship-together configurable or pre-configured bundle products. The getFulfillmentOptionsForLines API is called to get the availability information. However, for ship-independent configurable or pre-configured bundle products availability is not displayed. Similarly, for delivery order lines, availability is not displayed. The output of the API is parsed and based on the information returned under the Assignment element, the availability is displayed.

When the CSR saves the changes made to the configurable product, the data returned by the configurator is passed in the BOMXML attribute as input to the modifyFulfillmentOptions API.

Note: It is recommended not to have a bundle product configured as a component for a configurable or preconfigured bundle product.
Updating changes to order

After the user adds products to the order, enters the appropriate information, and proceeds to the next screen in the order creation wizard, the modifyFulfillmentOptions API is called to update the changes.

When a CSR removes a product from a draft order, the Action attribute is set to REMOVE in the modifyFulfillmentOptions API. If a CSR deletes a product from a confirmed order, the Action attribute is set to CANCEL in the modifyFulfillmentOptions API. When a product is removed from an order, all associated services are also removed.

Note: If Sterling Call Center is integrated with Commerce and customer records are not maintained in Sterling Call Center, the BuyerUserID attribute that is captured in the Add Address screen is passed to all the getCompleteItemList API calls while adding products, displaying related items, and displaying style size items.

Implementation

The following section describes the rules that you must configure.

  • To retrieve the availability information along with the ship dates, enable the Compute Availability Information with Ship Dates for Real-Time Availability Monitor rule. For more information, see Configuring Global Inventory Visibility.
  • You must enable the Use Activity-Based Mode for Real-Time Availability Monitor rule. For more information, see Configuring Sterling Global Inventory Visibility.
  • You must configure associations between products and provided services to attach a provided service to a product. For more information, see Associate product item to a provided service.
  • To compute the inventory availability for shipping order lines by using cached inventory, do not configure the Node Level ATP Monitor Rule. For more information, see Catalog Management configuration.
  • Configure the order entry rules to display the default delivery method and set the focus on the appropriate field when a user adds products to an order. For more information, see Sterling Business Center System Configuration.
  • To determine the price of a bundle product, you must configure the bundle pricing strategy appropriately. 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 create and manage customer entitlements. For more information, see the Sterling Business Center Product Administration.
  • You can configure the item associations rules and relationship types for associated items and the relationship type for a service association in Business Center. For more information, see Configuring order entry rules.
  • For more information about the APIs, see the JavadocJavadoc.
  • Delivery fulfillment method and provided services are not supported with the Promising Server.
  • You can configure a default note to be logged automatically when new order lines are added successfully. For more information, see Automatic notes logging.
  • Enable the "Add Line" and "Cancel" status modification rules at the order line level for reconfiguring bundles. For more information about status modification rules, see Configuring Distributed Order Management.
  • A CSR should have the "Change Product Configuration" resource permission to change the product configuration. For information about administering user group permissions, see the Administering user group permissions.

End-user impact

Users can add the required products to an order and proceed with the order creation.