Stock Transfers
1. Overview & Purpose
What are Stock Transfers?
2. When to Use Stock Transfers
Central Distribution Center (DC) Store Replenishment
Central warehouse (e.g. Cakung Central Hub) ships scheduled weekly replenishment of 50 cartons of beverage packs to a shopping mall retail store (e.g. Kelapa Gading Store).
Backroom Reserve to Frontline Sales Floor Shelf (Intra-Location)
Store associates move 20 units of boxed items from the backroom reserve pallet rack to the frontline sales floor shelf display.
Emergency Store-to-Store Stock Balancing
A retail outlet runs out of high-demand sneakers during a weekend promotion and requests an emergency transfer of 5 pairs from a sister outlet in the same city.
Damaged or Expired Merchandise Recall to Central Quarantine
Retail branch identifies crushed packaging or near-expiry items that must be removed from the store floor and consolidated at central logistics for vendor return (RMA).
Multi-Stage In-Transit Stock Reservation (2-Day Inter-City Freight)
Merchandise takes 48 hours to travel by freight truck between Jakarta Central DC and Surabaya Store.
Carrier In-Transit Shortage & Partial Receiving Sign-Off
Dispatch loaded 100 units onto third-party courier truck, but driver arrives at destination with only 96 units due to carton loss during transit.
3. Data Dictionary & Fields
Schema definition for the stock_transfers and stock_transfer_items tables:
| Field / Column | Input Type | Requirement | Description & Operational Guide |
|---|---|---|---|
number | String (Auto-generated) | Required | System-generated unique transfer manifest identifier with sequential numbering prefixes. Example: TR-2026-0001 |
fromLocationId | Foreign Key (Locations) | Required | The dispatching origin location or retail outlet from which stock will be subtracted. Example: Warehouse Central Jakarta (ID: 1) |
toLocationId | Foreign Key (Locations) | Required | The receiving destination location. Must differ from the origin location. Example: Retail Store Bandung (ID: 3) |
transferDate | Date | Required | Official dispatch or creation date recorded for chronological ledger movements. Example: 2026-05-18 |
expectedArrivalDate | Date | Optional | Estimated arrival date at destination to assist warehouse scheduling and in-transit tracking. Example: 2026-05-20 |
status | Enum (TransferStatus) | Required | Current lifecycle state: DRAFT, PENDING, APPROVED, PARTIALLY_SHIPPED, IN_TRANSIT, PARTIALLY_RECEIVED, RECEIVED, REJECTED, CANCELLED, or FORCE_CLOSED. Example: APPROVED, IN_TRANSIT |
fromStorageId | Foreign Key (Storages) | Required | Origin storage bin or rack where physical items are taken from. Example: Rack A-01, Bulk Storage Bay |
toStorageId | Foreign Key (Storages) | Required | Destination storage bin or shelf where items will be placed upon delivery. Example: Shelf B-02, Front Display Bin |
productId | Foreign Key (Products) | Required | Catalog product item being transferred. Example: Kemeja Katun Pria (ID: 102) |
requestedQuantity | Decimal | Required | Quantity requested by destination location. Must be greater than zero and cannot exceed available stock. Example: 50.00 |
sentQuantity | Decimal | Optional | Quantity actually picked and dispatched by origin warehouse staff. Example: 50.00 |
receivedQuantity | Decimal | Optional | Quantity confirmed and physically accepted into destination warehouse storage bins. Example: 48.00 |
batchNumber | String | Optional | Production lot identifier or manufacturer batch code for traceability. Example: LOT-202605A |
expiryDate | Date | Optional | Perishable item expiry date attached to the transferred inventory batch. Example: 2027-12-31 |
remarks | String | Optional | Operational notes, shipment tracking tracking numbers, or carrier information. Example: Shipped via Internal Logistics Van #3 |
4. Interface Preview
Visual interface layout showing transfer manifest lists, status badges, and dispatch actions.
Screen Preview: Stock Transfer Management Interface
Visual interface illustration and control layout for menu Route: /admin/inventories/stock-transfers
5. Creating a Transfer Request
Navigate to Stock Transfers
Menu > Inventories > Stock TransfersOpen the sidebar menu and select Inventories > Stock Transfers to view the transfer register table.
Launch Transfer Drawer
Add Stock TransferClick the Add Stock Transfer button located in the top-right toolbar.
Select Origin and Destination Facilities
From Location / To LocationChoose the dispatching origin branch and location, then select the receiving destination branch and location.
Add Transfer Item Lines
Add ItemClick Add Item and select the product, variant, origin storage bin, destination storage bin, UOM, and requested quantity.
Save Requisition
Save TransferReview expected arrival dates and remarks, then click Save to persist the transfer with Draft or Pending status.
6. Shipping & In-Transit Dispatch
Approve Transfer Request
Action > ApproveWarehouse managers review the requested item lines and click Approve to authorize fulfillment and reserve inventory.
Dispatch and Ship Items
Action > Ship ItemsWhen physical goods are packaged, click Ship Items. Enter sent quantities, verify batch numbers, and confirm shipment.
7. Receiving & Quantity Reconciliation
Discrepancy & In-Transit Protection
Inspect Received Goods at Destination
Action > Receive ItemsUpon shipment arrival at the destination warehouse, click Receive Items from the row action menu.
Record Actual Received Quantities
Received QuantityInput the verified physical quantity received per line. If damage or lost items occurred in transit, input actual received counts.
Confirm Receipt or Force Close
Confirm / Force CloseConfirm the receipt to increment inventory at destination storage. If partial items cannot be fulfilled, click Force Close.
8. Cross-Module Impact
| Target Subsystem | Relational & Transactional Effect |
|---|---|
| Stock Balances | Deducts physical on-hand quantity from the origin storage and adds it to destination storage upon receipt confirmation. |
| Stock Movement Ledger | Generates immutable TRANSFER_OUT movement records for origin and TRANSFER_IN records for destination. |
| Point of Sale (POS) | Reserved transfer quantities are immediately excluded from POS cashier available quantities to eliminate checkout overselling. |
| Accounting & In-Transit GL | Creates automated in-transit inventory asset journal entries when shipping across distinct legal entity branches. |
Operational Best Practices
- Always verify storage bin capacity at the destination before shipping large bulk orders.
- Use Force Close when items were damaged or lost during transit instead of leaving transfers in perpetual In Transit state.
- Conversion factors calculate automatically based on UOM setups in Master Data.