Legacy platform

Customer pickup

When a customer, pickup recipient, or gift recipient arrives at a store to collect the products in an order, the store associate can use the Customer Pickup feature to identify the person at the store front, scan the products that are available, mark shortages, confirm the process, and print a customer pickup acknowledgment.

Solution

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

A store associate can start the customer pickup process from the More Tasks portlet in the Order Fulfillment view.
Customer Pickup
When a store associate clicks the Customer Pickup link in the More Tasks portlet, the Customer Pickup portlet is displayed, where a store associate can start the customer pickup process in the following ways:
  • A store associate can click the count that indicates the number of shipments that are ready for customer pickup. The getShipmentList API is called to retrieve this count.
  • A store associate can scan an order or a shipment. The translatebar code API is called to translate the order or shipment bar code data to outbound shipments.
  • A store associate can use the Advanced Search option to search for shipments that are ready for customer pickup, by using the first name, last name, phone number and email address as search criteria, for either customer or pick recipient but not both. If the search results in a single shipment, the store associate is taken directly to the Customer Pickup screen. If the search results in multiple shipments, the Customer pickup orders screen is displayed with a list of shipments that match the search criteria.
The Customer Pickup task can be performed only on shipments that have Pickup in Store as the fulfillment type and Ready for Customer as the status. If a shipment does not meet these criteria, an appropriate message is displayed before proceeding to the task. The getShipmentList API is called to validate and retrieve shipments that are ready for customer pickup.

From the Customer pickup orders screen, the store associate can select the required shipment and click Start Customer Pickup. Based on the expected pickup date of the shipment, an appropriate SLA indicator is displayed for each shipment so that the store associate can initiate the customer pickup process for high priority shipments. On the Customer Pickup screen, the store associate can view the SLA indicator, shipment number, shipment status, customer verification methods, staging location, and the products to be picked up. The getShipmentDetails API is called to display the shipment details while the getShipmentLineList API is called to retrieve the list of products except the bundle parent.

Customer verification
A store associate can select an appropriate option from the Verification Method list to validate the identity of the customer. For example, a customer's identity can be verified by using proofs such as Passport, Driving License, and so on. The getCommonCodeList API is called with the CodeType as YCD_CUST_VERFN_TYP to fetch the customer verification methods.
Staging location
A store associate can see the name of the staging location where the backroom picked products are placed for customer pickup. When the getShipmentDetails API is called to load the shipment details, the staging location name is also retrieved. The display of the staging location is controlled by the Staging location required rule in Sterling Business Center.
  • If the rule is disabled, the staging location is not displayed.
  • If the rule is enabled and the store associate does not provide a staging location while performing backroom pick, the staging location is not displayed.
Pickup products
The count of products that you can scan or manually hand over is displayed. Each of these products is displayed in a separate panel and each panel displays the product description, product image, variation attributes (if applicable) such as size and color, and the quantity to be picked up, and so on. In case of bundle products, the bundle parent is hidden and only component products are displayed. On selecting a product, the store associate can view the text field with the picked up quantity, - and + buttons to decrement or increment the quantity and the More Actions link.

The store associate can either scan the products or manually enter the picked up quantity using the text field and the - and + buttons. The registerbar codeForCustomerPickup API is called to translate the bar code to product ID and validates that the product is part of the shipment being picked up. If the product ID is valid, the picked-up quantity of the product is increased by translated product quantity. However, when the quantity is manually entered and the store associate clicks Update, the changeShipment API is called to update the picked-up quantity. The API is also called when the store associate clicks Pickup All to pick up all the products at once.

More Actions
The store associate can click More Actions to perform other tasks for the selected product. The pop-up to perform more actions is displayed. The picked-up quantity and the remaining quantity are displayed. The store associate can select the appropriate action for the remaining quantity of the product. By default, inventory shortage, cancel and pickup later are the available actions.
  • If the store associate chooses to Cancel the remaining quantity, an appropriate cancellation reason must be selected. The changeShipment API is called to apply the changes to the shipment.
  • If the store associate chooses to apply Inventory Shortage, the product is back-ordered by calling the changeShipment API.
  • If the store associate chooses Pickup Later, based on the customer needs, the splitShipment API is called to split the shipment for pickup later products.
Note: The store associate can also choose to apply the action to all products in the shipment.

If you want to use a custom shortage resolution during customer pickup, you must implement the YCDBeforeConfirmShipmentOfRecordCustomerPickUE and YCDAfterConfirmShipmentOfRecordCustomerPickUE user exits. The recordCustomerPick API calls the YCDBeforeConfirmShipmentOfRecordCustomerPickUE user exit before calling the confirmShipment API and the YCDAfterConfirmShipmentOfRecordCustomerPickUE user exit after calling the confirmShipment API.

When the store associate clicks Finish Pickup to complete the customer pickup, the recordCustomerPick API is called to record the customer pickup and confirm the shipment.

Print Acknowledgment
On the Shipment Summary screen, the store associate can click Print Acknowledgment from the related tasks. The YCD_Print_CustomerPickupAcknowledgement_94 service is called to print the customer pickup acknowledgment.

The YCD_Print_CustomerPickupAcknowledgement_94 service calls multiple APIs such as getSortedShipmentDetails, getCurrencyList, getOrganizationHierarchy, and getItemUOMMasterList to retrieve the details that must be printed on the Customer Pickup Acknowledgment, which is determined by the StoreAcknowledgementPrint_Comp1_94.xsl.sample. The StoreAcknowledgementPrint_Comp2_94.xsl.sample determines the formatting of the acknowledgment. These templates are provided as sample implementation only and suffixed with .sample. However, you can create a custom print service and use the templates by copying and renaming the sample template files by removing the .sample from the file name and customize it as required.

The templates are stored in the /template/prints/ycd/xsl/ directory as part of the add-in workspace and built into the <INSTALL_DIR>/jar/platform/9_4/resources.jar. You can create different templates for the YCD_Print_CustomerPickupAcknowledgement_94 service and point to the templates in the Applications Manager.

Device-specific details

  • Due to space constraints on a mobile screen, the order number is truncated with ellipsis and an additional link is provided to expand to a pop-over that shows the order number and shipment status.
  • Due to space constraints on a mobile screen, a horizontal scroll bar might appear for the additional information panel of the shipment.

Implementation

The following section describes the configuration required to use the customer pickup feature.

A store associate must have the following resource permissions:
  • Customer Pickup for Pickup in Store: Required by a store associate to perform the customer pickup task.
  • Pickup All: Enables a store associate to pickup all products in the shipment at once.
  • Print Customer Pickup Acknowledgment: Enables a store associate to print the acknowledgment for completing the customer pickup.

    For more information about administering user group permissions, see Administering user group permissions.

  • You must enable the Add Note order modification type at the order and order line level for Canceled and Shorted statuses, to log notes whenever a shipment line is canceled or shorted.
  • You must enable the Cancel order modification type for appropriate statuses, to allow a store associate to select Cancel as the shortage resolution for a shipment line.
  • You must enable the following shipment modification types for Ready for Backroom Pick and Backroom Pick In Progress statuses:
    • Delete Shipment
    • Change Other Attributes
    • Remove Line
    For more information about configuring Modification Types for shipments, see Defining status modification rules.
  • Configure Customer pickup verification criteria appropriately. For more information, see Manage customer pickup verification criteria.

  • Configure Customer pickup shortage resolution appropriately. By default, the shortage resolutions, Inventory Shortage, Cancel, and Pickup Later are available for the default organization. If you want to use the same shortage resolutions for a new enterprise, you must either inherit the default organization's properties or use the following values to create shortage resolutions by using the Sterling Business Center.
    • Inventory Shortage
      • Shortage Resolution: AllInventoryShortage
      • Shortage Resolution Name: Inventory Shortage
    • Cancel
      • Shortage Resolution: Cancel
      • Shortage Resolution Name: Cancel
    • Pickup Later
      • Shortage Resolution: PickLater
      • Shortage Resolution Name: Pickup Later

    For more information, see Manage customer pickup shortage resolution. To inherit default organization's properties, see Defining an enterprise's primary information. If you create custom shortage resolutions, then you must have corresponding implementation as well.

Configuring bar code types

You must configure bar code types for your store organization. The following bar code types are used in the application:
  • Item to translate product bar code to product ID.
  • Store Outbound Shipment. Used in the customer pickup portlet to find the matching shipment or order. The bar code should have following sources configured:
    • Shipment: External service. The bar code validation source is YCD_Translate_bar code_InboundShipment.
    • Order: External service. The bar code validation source is YCD_Translate_bar code_OrderNo.
By default, bar code types are provided for the default organization. When you set up a new enterprise, these bar code types must be created again or copied from the Default organization. For more information, see Configuring bar codes.

For more information about the APIs, see IBM® Sterling Order Management System: Javadoc.