Stock transfers
Based on your inventory strategy, stock movements across different stock locations can be necessary. In this section you will learn how stock transfers work, when they are automatically generated, and when you need to create them manually.
What is a stock transfer?
The stock transfer function is the process of moving the stock inventory from one location to another location. It can represent a real movement of a physical product between two warehouses in the distribution chain or a simple rearrangement of the inventory involving retail stores or any other virtual stock location as well.
A stock transfer moves a quantity of a single stock item (associated with an SKU) from one stock location (origin) to another (destination):
- Origin stock location — as soon as the stock transfer is created the associated stock item quantity is automatically decremented.
- Destination stock location — once the stock transfer is completed the associated stock item quantity is automatically incremented.
Commerce Layer stock transfer can be generated based on the selected inventory strategy when fulfilling an order (automatic stock transfers) or manually created outside of the order scope (manual stock transfers).
Automatic stock transfers
Commerce Layer supports multiple inventory model strategies that let you choose the way your order items will be fulfilled. To honor the selected inventory strategy, one (or more) stock transfer creation may be necessary.
For example, to minimize the number of shipments, an order can be configured to ship from a single stock location (i.e. primary). If the primary stock location cannot fulfill all the SKUs associated with the order, the required stock transfers are created from a stock location where the items are available to the primary one. If more than one stock location is suitable to be the origin, the hierarchy defined within the related inventory model sets the priority. The associated shipment is put on hold until all the stock transfers are completed.
Manual stock transfers
Stock transfers can also be created outside of the order fulfillment scope to reorganize your inventory across the available stock locations. In that case, the stock transfers you generate via API aren't associated with any line items or shipments.
If stock transfers are involved, when the order fulfillment process starts all the related shipments are put on hold and the related stock trasfers picking process is started. If you want to change this default behaviour and put also all the stock transfers on hold, you can do it by setting a specific attribute at the inventory model level (you'll then need to manually manage the subsequent stock transfer's status changes).