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 0006
are supported. - A
Serial number
is scanned only to identify the product and cannot be added while creating a transfer order for an item.Serial number
can 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
GET
call on thestores/{storeId}/pick-requests:summary?group_by=deliveryMethod&deliveryMethod=SHIP&status=NOT_STARTED,IN_PROGRESS&purpose=TRANSFER
API 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
getOrderList
API, 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
translateBarCode
API. 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
getShipNodeList
API based on the node type selection. - A store associate can scan or enter the product SKU.
- The
getOrderList
API 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
translateBarCode
API is called to fetch the product. - If inventory is maintained in a store, then a
GET
call on the inventory API is made for the scannedItem ID
andunitOfMeasure
. 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 classes
are fetched by calling thegetCommonCodeList
API. 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
lastRequestedProductReferenceId
is 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
lastRequestedProductReferenceId
is 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 status
andProduct class
is 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
PATCH
on 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
deleteOrder
API and aPOST
on/pick-requests/pickRequestId/cancel
is 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
translateBarCode
API 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 callingGET
onstores/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
getAvailableInventory
API 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 aPATCH
on pick request is called to update the requested product quantity.
- Selecting a receiving node
- The
getShipNodeList
API is called to populate destination nodes. On clicking Next, thechangeOrder
API is called, with order lines from requested products of pick request. The order is then confirmed. APOST
call is made on/pick-requests/pickRequestId/confirm
to confirm the pick request and configuration. The Order summary page opens.
- Transfer Order Summary
- The
getOrderDetails
API andGET
on 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. ThecancelOrder
API andPOST
onpick-requests/pickRequestId/cancel
is called when the Cancel button is clicked.