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
manageOrganizationHierarchy
API is called with a value of00
for theStoreInvConfig
attribute. - User has resource permissions for either Pick-up (BOPIS) or Ship (SFS), namely
ISF000001
orISF000002
. - 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
translateBarCode
API 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
AssignedToUserId
is different from the current user, a confirmation message is displayed. The current user can then choose to continue the pick or start over. If theAssignedToUserId
is null or the same as the current user, the Pick order page is displayed.
- Shipments list
-
- The shipments list is paginated. When scrolling, the
getShipmentList
API withpageSize: 10
is 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
getUserList
API. 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
getShipmentDetails
API is called to get theAssignedToUserId
, which is then compared to the current user.- If
AssignedToUserId
is null, thechangeShipment
API is called to updateAssignedToUserId
and the Pick order page is displayed. - If
AssignedToUserId
is the current user, the Pick order page is displayed. - If
AssignedToUserId
is 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
changeShipment
API is called to update the shipment with the following information:- The
AssignedToUserId
is updated on the shipment. - For serialized item,
ShipmentTagSerials
is removed from theShipmentLine
. - The
BackroomPickedQuantity
andStagedQuantity
is reset to0
.
- The
- If Continue is selected in the displayed message, the
changeShipment
API is called to updateAssignedToUserId
on 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
PickLocation
andPickLocationSeq
attributes on theShipmentLine
element must be populated by implementing theYDMBeforeCreateShipmentUE
user exit. - The Pick order page lists the shipment lines along with the primary
information of the product.
The
getShipmentDetails
andgetShipmentLineList
API is called withShipmentKey
to display the details. ThegetRuleDetails
API 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
changeShipmentStatus
API is called to update the shipment status toBackroom pick in progress
.On scanning the product, the
registerBarcodeForBackroomPick
API is called to update the picked quantity. - The Pick all option is displayed in the Actions
menu in the Pick order page. The
changeShipment
API 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 permissionISF000053
is enabled. - The Actions menu also displays the Print option.
The action to print the shipment invokes the
StorePickTicket_94
service. 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
changeShipment
API is called on the shipment line and the shipment line is updated. - The plus icon increases the pick quantity by 1 unit. The
changeShipment
API 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
changeShipment
API 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
translateBarCode
API 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
getCommonCodeList
API withCodeType=
.YCD_PICK_SHORT_RESOL
- Once the associate selects a reason, the
changeShipment
API is called on the shipment line withShortageQty
and the shortage quantity on the shipment line is updated. The record shortage mashup internally calls thechangeOrder
API 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_REQD
rule is set toY
, the staging location window is displayed.
Assign staging location window
- When the Assign staging location window opens, the
getRuleDetails
API is called to getStagingLocation
bar code translation rule details. - If the
WSC_BP_STG_TRAN_REQD
rule is set toY
, then, on scan, thetranslateBarcode
API is called with source asHoldLocation
. - When Done is clicked on the Assign staging location
window, the
changeShipment
API is called to update the hold location on Shipment. - Then
getShipmentLineList
API is called to validate the shipment for pick complete. This internally calls thechangeShipmentStatus
to move the shipment to the next status based on the delivery method. - Once the backroom pick is complete, the Shipment summary screen is displayed.