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.
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.
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.
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.
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.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.
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.
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.