Legacy platform

Identify a customer

To create an order, the user must be able to identify a customer. If the customer record does not exist in the system, the user must be able to either create a customer or capture the shipping and billing addresses.

Solution

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

Users can identify a customer to be stamped on the order in the following ways:
  • Search for a customer in the customer identification screen.

    When the user does a search to identify the customers in the customer identification screen, the getCustomerList API retrieves the customer records. If the search results in a single record, the customer details are displayed. If the search results in multiple records, the user can select the required customer record. The getCompleteCustomerDetails API is called to retrieve the complete customer details.

  • Create a registered consumer from the customer identification screen. For more information, see Create Consumer Customers.
  • Create a contact for an existing business customer.

    After the user identifies the business customer, the user can select a contact to create the order. However, if the required contact is not available, the user can choose to create a new contact by using the "Create Contact" option that is adjacent to the Contact list.

    To create a contact, the user must enter certain minimum details that include the First Name and Last Name. The user can also enter other details as applicable. In the "Ordering Permissions" tab, the user can define the spending limit for the contact by entering an amount in a particular currency. The getCurrencyList API is called to populate the "Currency" list.

    After the user enters the required contact information and confirms the changes, the manageCustomer API is called. The customer contact details that are entered by the user are passed to the API to create the business customer contact.

    After successful creation of the business customer contact, the getCompleteCustomerDetails API is called to retrieve the contact details that are used to update the customer preview when the user selects the new contact from the list.

  • Search for a customer from the Customer Search screen and create an order for the customer

    The user can do a search for the customer and select the appropriate customer. From the Customer Details screen, the user can create an order by using the Create Order related task. The user is prompted to select an enterprise, if the user has access to multiple enterprises. The getOrganizationList API is called to retrieve the list of enterprises.

    When the user chooses to create an order in the context of a customer, a draft order is created for the customer and the preview in the customer identification screen is populated with the customer details.
    • When the user creates an order for a particular business customer contact, the default "Bill to", "Ship to", and "Sold to" addresses of the contact are populated in the customer identification screen. However, if the contact does not have default addresses, the business customer's default addresses are displayed.
    • When the user creates an order for a consumer customer, the "Bill to" and "Ship to" addresses of the customer are populated in the customer identification screen.
    Alternatively, the user can also choose to browse products in the context of a customer and then add the products to the order. When the user chooses to add products from the Product Browsing screen, which is opened in the context of a customer, the behavior varies in the following ways:
    • If the user has not opened draft orders, a new order is created and the products are added to the order. When the user goes to the customer identification screen, the BillToID present on the order is used to retrieve the corresponding customer details.
    • If drafts orders are opened, the user can choose to add the products to the one of the draft orders. However, the customer information that is already present on the order does not change.
  • Users can select the customer at a later stage during order creation. For unregistered customers, the user can bypass customer identification and create an order. These scenarios are described as follows:
    • Skip customer identification: If the user chooses to go to the next screen in the wizard without identifying the customer, the user is allowed to select the products, capture only the "Ship to" address, and confirm the fulfillment options. The user is then allowed to identify the customer before payment confirmation. Therefore, the "Bill to" address is taken from the customer record.

      The "Ship to" address entered during this process is added to customer's additional addresses if the customer already has addresses or if a new contact is created for an existing business customer. However, if the customer or contact does not have any address, this address is used as default "Ship to" address.

    • Continue with unregistered customer: For unregistered customers, the user can choose to create an order without customer details. If the user chooses to proceed without a customer, the user is allowed to select products, capture the "Ship to" and "Bill to" addresses in the Add Address screen, and then proceed with rest of the order flow.

      In both the cases, the getCompleteOrderDetails API is called to display the Add Address screen, where the user can specify the "Ship To" or "Bill To" addresses.

      When the user chooses to add the "Bill to" or "Ship to" address, the relevant address capture window is displayed. The user can enter appropriate details and apply the changes. If the user enters one of the addresses and proceeds with the order, the other address is defaulted to the address entered by the user. For more information about the implementation of address capture feature, see Capture addresses.

When the user goes to the next screen of the wizard after the customer is identified, the modifyFulfillmentOptions API is called. The following information is passed as inputs to the API to associate the customer information with the order.
  • BillToID of the selected customer.
  • CustomerContactID of the selected business customer contact.
  • Bill To address and other contact details.
  • Ship To address and other contact details.
  • Sold To address and other contact details (Only for business customers).
  • Currency, TaxExemptFlag, and TaxExemptionCertificate attributes (Only for business customers).
Note: If Sterling™ Call Center is integrated with Commerce and customer records are not maintained in Sterling Call Center, the BuyerUserId attribute must be passed to the item and order APIs to get product and order prices for a particular online customer. When the customer records are not maintained in Sterling Call Center, the WCC_SHOW_CUST_SEARCH rule in Sterling Business Center must be turned off. This disables customer identification and displays a Member Login ID field as part of the Address Entry screen. The Member Login ID is mapped to the BuyerUserID attribute. The Address Entry screen is the first screen and the BuyerUserID attribute is passed to the APIs called to load the Add Products, Fulfillment Summary, and Payment Confirmation screens. If the WCC_SHOW_CUST_SEARCH rule is turned on, the regular create order flow is followed.

Implementation

The following section describes the rules that you must configure.

Configure the following rules appropriately. For more information, see Sterling Business Center System Configuration.
  • Enable Customer Identification During Order Creation Flow
  • Show Customer Identification Page as the First Page
  • Customer Type Search Options: You can choose to display both Business and Consumer as the search criteria and set the default customer type as well.

For more information about the APIs and user exits, see the Javadoc.

End-user impact

The user can ensure that the customer or the addresses essential to fulfill the order are identified before order confirmation.