Next-generation platform

Implementing 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 portlet to identify the person at the store front, scan the available products, mark shortages, confirm the process, and print a customer pickup acknowledgment.

Solution

Understand the APIs, services, and other components that are used to implement the customer pickup task.

Portlet scan

To populate orders that are ready for customer pickup, the getShipmentList API is called that displays the count of shipments with PICK delivery method and Ready for customer pickup status in a particular store. When you click the Orders count, the Customer pickup orders page is displayed. When you scan the order or shipment number, the translateBarcode API is called to retrieve shipments that match the criteria. The getShipmentDetails API is called to validate the status, ship node, and assigned store associate. The shipment status must be in Ready for customer pickup or extended status. The ship node must match the current store. Otherwise, you are prompted to open the Shipment summary page. If the assigned store associate is not same as the logged in store associate, a message is displayed to check whether you want to assign the shipment to yourself and continue.

Advanced search

The getShipmentList API is called to retrieve the shipments that match the search criteria, and are in Ready for customer pickup status.

Customer pickup orders

In the Customer pickup orders list page, when you click Start, the getShipmentDetails API is called to complete validations before opening the Customer pickup page.

Customer pickup

On loading the Customer pickup page, the following APIs are called:

  • The getShipmentDetails API is called to retrieve the customer and pickup recipient details, if any.
  • The getCommonCodeList API is called with CodeType="YCD_CUST_VERFN_TYP" to retrieve the verification method codes.
  • The getShipmentLineList API is called to list the shipment lines.
  • The getRuleDetails API for WSC_BP_STG_REQD rule is called to determine whether staging is required for pickup orders. If yes, the staging location is displayed.
    • If SIM is enabled for the store, the staging location is fetched by calling GET on pick-requests with query params deliveryMethod=PICK, fields=pickTasks, and shipmentNo.
    • If SIM is not enabled, the Hold location field of the shipment is displayed as the staging location.
  • When you scan a product, the translateBarcode API is called. For the matching item or serial, the picked up quantity is updated and displayed.
  • When you click minus, plus, and quantity change, validations are completed and the picked up quantity is updated and displayed.
  • When you click Pickup all, all products are marked as picked up and the picked up quantity is updated as backroom picked quantity.
  • When you click More actions, the getCommonCodeList API with CodeType=YCD_SHORT_RESOLU is called to retrieve shortage reasons. For cancel shortage reason, another getCommonCodeList API with CodeType=YCD_CANCEL_REASON is called.
  • Done is enabled only when all the quantities are marked as customer picked and a verification reason is selected. When you click Done, the recordCustomerPickup API is called to update the customer picked quantity, shortage quantity, and shortage reason. The recordCustomerPickup API also moved the shipment to shipped status, if everything is not shorted. A note with CodeType=YCD_CUSTOMER_VERIFICATION is also added for the verification method. Post API call, you are navigated to the Shipment summary page where you can print the pickup acknowledgment as a related task. This action invokes the YCD_Print_CustomerPickupAcknowledgement_94 service, which calls the getSortedShipmentDetails API to retrieve the shipment details to be printed.

    The YCD_Print_CustomerPickupAcknowledgement_94 service uses the following XSLS, which can be customized:

    • /template/prints/ycd/xsl/StoreAcknowledgementPrint_Comp1_94.xsl.sample
    • /template/prints/ycd/xsl/StoreAcknowledgementPrint_Comp2_94.xsl.sample