Implementing shipment-based backroom pick in Store Inventory Management (SIM)-disabled stores
In stores that are configured as Store Inventory
Management (SIM) is not enabled, store
associates can pick products available in the backroom and place them in a staging location so that
they can be used to fulfill ship from store
or pickup in store
shipments. This section
describes the APIs, services, and other components that are used to implement the shipment-based
backroom pick.
Configuration
- The Store Inventory Configuration option in Applications Manager is set to SIM not enabled or the
manageOrganizationHierarchyAPI is called with a value of00for theStoreInvConfigattribute. - User has resource permissions for either Pick-up (BOPIS) or Ship (SFS), namely
ISF000001orISF000002. - For a serialized item, the external source for bar code translation must be configured with
BarcodeType=“Item”.
Pick orders portlet
- The portlet displays the total and individual count of shipments with the status of Ready for backroom pick or Backroom pick in progress.
- The getShipmentList API is called and the shipment status, document type, and delivery method is passed to get the shipment count. The delivery method is passed to the API based on the resource permissions.
- The store associate can also scan the order number or shipment number in the portlet. On
scanning, the
translateBarCodeAPI is called withBarCodeType=”StoreOutboundShipment”.- If multiple translations are returned, a list of shipments is displayed.
- If a single translation is returned and the shipment has the Ready for backroom pick or Backroom pick in progress status, the Pick order page is displayed.
- If a single translation is returned and the shipment has a status other than than Ready for backroom pick or Backroom pick in progress, a confirmation is shown and the Shipment summary page opens.
- If bar code input does not match any order number or shipment number, an error message is displayed.
Pick orders list page
- A store associate can click the In progress, Not
started, or Shipments counts in the portlet to view the shipment
list filtered based on status and delivery method. The Shipments count lists
the shipments with the following statuses:
Ready for backroom pick. The Pick order button is displayed.Backroom pick in progress. The Continue pick button is displayed
- On clicking Pick order or Continue pick, if the
AssignedToUserIdis different from the current user, a confirmation message is displayed. The current user can then choose to continue the pick or start over. If theAssignedToUserIdis null or the same as the current user, the Pick order page is displayed.
- Shipments list
-
- The shipments list is paginated. When scrolling, the
getShipmentListAPI withpageSize: 10is called to get the next set of shipments that are appended to the existing shipments list. - If no shipments are present, a message is displayed.
- The shipments list can be sorted by
ExpectedShipmentDate. The default sorting is Oldest to newest. - The shipments list can be filtered based on the user to whom the pick request is assigned,
status, and order type.
- Assigned to lists all the users of the logged in store by calling the
getUserListAPI. The same user list is used to display the users under Assigned to. - Status displays Ready for backroom pick and Backroom pick in progress checkboxes.
- The option to sort by Order type is displayed only for the Ship delivery method as Ship orders can have different typed such as Sales order and Transfer order.
- Assigned to lists all the users of the logged in store by calling the
- The shipments list is paginated. When scrolling, the
Pick orders execution flow
- When a store associate clicks Pick or Continue pick in the shipments list page, the assigned to user is validated. This is to ensure that the current user does not start working on any shipment order that is being picked by another user. Once the picking is initiated by a store associate, it is assigned to that associate.
- The assigned to user ID is stamped on the order when the store associate initiates the shipment order by clicking Pick or Continue pick or when the store associate scans the order number or shipment number from the portlet.
- The
getShipmentDetailsAPI is called to get theAssignedToUserId, which is then compared to the current user.- If
AssignedToUserIdis null, thechangeShipmentAPI is called to updateAssignedToUserIdand the Pick order page is displayed. - If
AssignedToUserIdis the current user, the Pick order page is displayed. - If
AssignedToUserIdis different from the current user, a message is displayed to confirm if the current user wants to continue the pick or start over.- If Start over is selected in the displayed message, the
changeShipmentAPI is called to update the shipment with the following information:- The
AssignedToUserIdis updated on the shipment. - For serialized item,
ShipmentTagSerialsis removed from theShipmentLine. - The
BackroomPickedQuantityandStagedQuantityis reset to0.
- The
- If Continue is selected in the displayed message, the
changeShipmentAPI is called to updateAssignedToUserIdon shipment.
- If Start over is selected in the displayed message, the
- If
- In the Pick order page, the shipment line is displayed with other details such as item, quantity, and the shorted products.
- The product list is displayed based on the pick location sequence on the shipment line.
The
PickLocationandPickLocationSeqattributes on theShipmentLineelement must be populated by implementing theYDMBeforeCreateShipmentUEuser exit. - The Pick order page lists the shipment lines along with the primary
information of the product.
The
getShipmentDetailsandgetShipmentLineListAPI is called withShipmentKeyto display the details. ThegetRuleDetailsAPI is called to know if staging location is required or not. - For serialized products, the View serials link is displayed to show the list of picked serials.
- To pick a product, the store associate can scan a product or serial number.
Once the store associate picks a product, the
changeShipmentStatusAPI is called to update the shipment status toBackroom pick in progress.On scanning the product, the
registerBarcodeForBackroomPickAPI is called to update the picked quantity. - The Pick all option is displayed in the Actions
menu in the Pick order page. The
changeShipmentAPI is called when Pick all is selected and all the non-serialized items are picked.Note: The Pick all option is displayed only if the resource permissionISF000053is enabled. - The Actions menu also displays the Print option.
The action to print the shipment invokes the
StorePickTicket_94service. You can customize the out-of-the-box print capabilities by customizing this service or by using the following sample XMLs:- /template/prints/ycd/xsl/StorePickTicket_94_multiApi.xsl.sample
- /template/prints/ycd/xsl/StorePickTicket_94_output.xsl.sample
Quantity updates
- The minus icon reduces the pick quantity by 1 unit. The
changeShipmentAPI is called on the shipment line and the shipment line is updated. - The plus icon increases the pick quantity by 1 unit. The
changeShipmentAPI is called on the shipment line and the shipment line is updated. - When the quantity is entered manually, depending on whether the quantity is increased or
decreased, the
changeShipmentAPI is called.
- The minus icon opens the Remove serial window. The store associate can scan the serial number
and it is marked as not picked. After scanning, the
translateBarCodeAPI is called. If successful, the shipment line is updated. - The edit quantity box and plus icons are disabled as serial numbers must be scanned or entered in the scan field to be marked as picked or removed.
Record shortage
- If the inventory is damaged or short, the store associate can mark it as short.
- The shortage reason that is provided by default is
Inventory Shortage. You can also configure custom shortage reasons to specify appropriate reasons while recording shortage. The custom shortage reason is handled the same way asInventory Shortage. If you want the custom shortage reasons to be handled differently, you must customize to implement your own logic. - The store associate has to select a reason for marking the pick request as short. Reasons are
listed by calling the
getCommonCodeListAPI withCodeType=.YCD_PICK_SHORT_RESOL
- Once the associate selects a reason, the
changeShipmentAPI is called on the shipment line withShortageQtyand the shortage quantity on the shipment line is updated. The record shortage mashup internally calls thechangeOrderAPI to add record shortage notes on order line. - When any product is picked or shorted, a check is performed to know if the shipment is
completely picked or has a shortage recorded.
If it is completely shorted, the shipment is canceled, a warning message is displayed, and the Shipment summary page is displayed.
If the order is completely picked, but includes some shortages, then if the
WSC_BP_STG_REQDrule is set toY, the staging location window is displayed.
Assign staging location window
- When the Assign staging location window opens, the
getRuleDetailsAPI is called to getStagingLocationbar code translation rule details. - If the
WSC_BP_STG_TRAN_REQDrule is set toY, then, on scan, thetranslateBarcodeAPI is called with source asHoldLocation. - When Done is clicked on the Assign staging location
window, the
changeShipmentAPI is called to update the hold location on Shipment. - Then
getShipmentLineListAPI is called to validate the shipment for pick complete. This internally calls thechangeShipmentStatusto move the shipment to the next status based on the delivery method. - Once the backroom pick is complete, the Shipment summary screen is displayed.