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
getShipmentDetailsAPI is called to retrieve the customer and pickup recipient details, if any. - The
getCommonCodeListAPI is called withCodeType="YCD_CUST_VERFN_TYP"to retrieve the verification method codes. - The
getShipmentLineListAPI is called to list the shipment lines. - The
getRuleDetailsAPI forWSC_BP_STG_REQDrule 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, andshipmentNo. - If SIM is not enabled, the Hold location field of the shipment is displayed as the staging location.
- If SIM is enabled for the store, the staging location is fetched by calling GET on pick-requests
with query params
- When you scan a product, the
translateBarcodeAPI 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
getCommonCodeListAPI withCodeType=YCD_SHORT_RESOLUis called to retrieve shortage reasons. For cancel shortage reason, anothergetCommonCodeListAPI withCodeType=YCD_CANCEL_REASONis 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
recordCustomerPickupAPI is called to update the customer picked quantity, shortage quantity, and shortage reason. TherecordCustomerPickupAPI also moved the shipment to shipped status, if everything is not shorted. A note withCodeType=YCD_CUSTOMER_VERIFICATIONis 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 theYCD_Print_CustomerPickupAcknowledgement_94service, which calls thegetSortedShipmentDetailsAPI to retrieve the shipment details to be printed.The
YCD_Print_CustomerPickupAcknowledgement_94service 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