Implementing transfer order by product
A store associate can transfer inventory from one store to another store or a distribution center to replenish inventory, return defective products, and so on.
A store can send damaged, returned, recalled, or out of season inventory back to a distribution center or warehouse. If one store is out of stock for a particular product, another store can send inventory to this store.
This section describes the APIs, services, and other components that are used to implement transfer order by product.
Assumptions and limitations
- Transfer orders of only
DocumentType 0006are supported. - A
Serial numberis scanned only to identify the product and cannot be added while creating a transfer order for an item.Serial numbercan also be added to a pick request while picking.
Solution
- Transfer inventory portlet
- The Transfer inventory portlet, displays the number of pick requests as per
their status and the number of draft transfer orders that are created.
- A
GETcall on thestores/{storeId}/pick-requests:summary?group_by=deliveryMethod&deliveryMethod=SHIP&status=NOT_STARTED,IN_PROGRESS&purpose=TRANSFERAPI is made to get the number of pick requests for transfer orders that are not started and in progress. - When a pick request count, is clicked, the Picking list page opens.
- The
getOrderListAPI, withDocumentType="0006"is called to retrieve the count of draft transfer orders that are created in the store. - When a store associate scans the bar code or manually enters the transfer order number, the
order details are retrieved by calling the
translateBarCodeAPI. If the scanned order is a draft transfer order, the Transfer Inventory Wizard page opens. Otherwise the Order Summary page opens.
- A
- Advanced search
- A store associate can search for a transfer order with the help of a destination node type or
name, or a product ID.
- A node type can be store or distribution center.
- The destination node list is populated by calling
getShipNodeListAPI based on the node type selection. - A store associate can scan or enter the product SKU.
- The
getOrderListAPI is called when the store associate clicks the Search button, to retrieve the paginated list of transfer orders.
- Transfer order list
- A transfer order list is populated based on the advanced search criteria.
- For draft transfer orders, clicking the View button opens the Transfer order creation page.
- For confirmed transfer orders, clicking the Continue button opens the Summary page.
- The store associate can also open the Summary page by clicking the order number for the created orders.
- Initiate transfer
- With appropriate resource permissions, a store associate can click the Initiate transfer button, which opens the Initiate transfer page. If the store associate has permissions to transfer order by product and transfer order by location then they can scan both item and location.
- Scanning an item
-
- When a SKU or a serial number is scanned, the
translateBarCodeAPI is called to fetch the product. - If inventory is maintained in a store, then a
GETcall on the inventory API is made for the scannedItem IDandunitOfMeasure. If there is only one type of inventory, then the item is added to the transfer order, otherwise a pop-up is displayed to select the inventory. - If inventory is not maintained in the store, then the list of
Product classesare fetched by calling thegetCommonCodeListAPI. If there is only one type ofProduct classes, then the item is added to the transfer order. Otherwise a pop-up window is displayed to select theProduct classes. - A pick request is created when the first item is scanned and added to a transfer order.
- On subsequent scans, same pick request is updated. The
lastRequestedProductReferenceIdis passed from the UI to check if the scanned item matches the last scanned product. If a match is found, the same requested product is updated without displaying the pop-up window. - If
lastRequestedProductReferenceIdis not available or the store associate is reopening the existing draft order flow, and the scanned item is previously added to a pick request, then the sameInventory statusandProduct classis considered. This prevents displaying the pop-up window for multiple inventory. - A store associate can open the Select inventory pop-up window to select another inventory for the same item by clicking Add another inventory link.
- A store associate can update the quantity by clicking the + or the
- button, or by removing the product from the pick request. If the number of
units is increased, the inventory is validated. If the inventory exists in the store, then a
PATCHon pick-request is called to add or update the requested products. - On clicking the Close button, a pop-up window is displayed to either
discard the draft transfer order or to leave the page without discarding. If the user discards the
transfer order, the
deleteOrderAPI and aPOSTon/pick-requests/pickRequestId/cancelis called.
- When a SKU or a serial number is scanned, the
- Scanning a location
-
- A location can be scanned only if the store maintains inventory and locations. The
translateBarCodeAPI is called and matching locations are looked up when a scan is performed. If a correct match is found, then all the inventory in that location is displayed by callingGETonstores/Mtrx_Store_1/inventory?locationId=locationId. - A store associate can select items and quantity for each item. On clicking the Continue button, a draft transfer order and a pick request is created and the Product list page opens.
- A store associate can update existing items or add new items by scanning another location.
- A location can be scanned only if the store maintains inventory and locations. The
- Checking the inventory availability
- After adding items to a transfer order and a pick request, when Next is
clicked on the Initiate transfer page, the
getAvailableInventoryAPI is called. This API checks if the inventory is available with the help of Sterling Intelligent Promising Inventory Visibility. If inventory is not available for an item in Sterling Intelligent Promising Inventory Visibility, the Show Availability pop-up window is displayed. A store associate can change the quantity and proceed to select a node. If the quantity is changed, then aPATCHon pick request is called to update the requested product quantity.
- Selecting a receiving node
- The
getShipNodeListAPI is called to populate destination nodes. On clicking Next, thechangeOrderAPI is called, with order lines from requested products of pick request. The order is then confirmed. APOSTcall is made on/pick-requests/pickRequestId/confirmto confirm the pick request and configuration. The Order summary page opens.
- Transfer Order Summary
- The
getOrderDetailsAPI andGETon pick requests is called to render the Summary page. A store associate can cancel the order, add notes, view pick request, and print a transfer order by clicking Related task. ThecancelOrderAPI andPOSTonpick-requests/pickRequestId/cancelis called when the Cancel button is clicked.