Overview
Stock transfer features:- Transfer products between any workspaces you have access to
- Real-time stock updates at both source and destination
- Complete transfer history and audit trail
- Automatic validation of available stock
- Reference number tracking
Prerequisites
Before transferring stock:- Multi-Workspace Access: You must have access to both source and destination workspaces
- Stock Tracking Enabled: Product must have
track_stock = true - Available Stock: Sufficient quantity at source workspace
- Permissions:
inventory:transferpermission
Transfer Workflow
Navigate to Stock Transfers
Go to Inventory → Stock Transfers → New TransferReference:
StockTransferController::create() in app/Http/Controllers/StockTransferController.php:42The system loads:- All products with stock tracking enabled
- Products with available stock in your current workspace
- All workspaces you have access to (excluding current workspace)
Select Product
Choose the product to transfer.The system displays:
- Product name and SKU
- Current stock level at source workspace
- Product image (if available)
You can initiate a transfer from the product detail page by clicking “Transfer Stock” which pre-fills the product selection.
Enter Transfer Details
Configure the transfer:Source Workspace: Auto-filled with your current workspaceDestination Workspace: Select from workspaces you have access to
- Only workspaces other than the current one are shown
- System validates you have access to the selected workspace
- Must be greater than 0
- Cannot exceed available stock at source
- System shows available quantity for validation
- Auto-generated if not provided:
TRANSFERENCIA-{from}-{to}-{timestamp}
Review Transfer Summary
Before confirming, review:
- Product being transferred
- From workspace → To workspace
- Quantity
- New stock levels after transfer:
- Source workspace: Current - Transfer quantity
- Destination workspace: Current + Transfer quantity
Submit Transfer
Click Transfer Stock to execute.Reference:
StockTransferAction::handle() in app/Actions/StockTransferAction.php:24The system performs these operations in a database transaction:Stock Movement Records
Each transfer creates stock movement records:Transfer Out Movement
Created at the source workspace:Viewing Transfer Details
- Navigate to Inventory → Stock Transfers
- Click on a transfer to view details
- Product information
- Source and destination workspaces
- Quantity transferred
- Reference number
- Date and time of transfer
- User who performed the transfer
- Transfer notes
- Stock levels before and after
StockTransferController::show() in app/Http/Controllers/StockTransferController.php:89
Transfer History
Viewing All Transfers
Navigate to Inventory → Stock Transfers for a paginated list. Filtering options:- Date range
- Product
- Source workspace
- Destination workspace
- Transfer status
- User who created transfer
StockTransfersTable::make() provides table with filtering
Transfer Types in List
The transfer list shows movements where the current workspace is either:- Source (TRANSFER_OUT): Stock you sent to other locations
- Destination (TRANSFER_IN): Stock you received from other locations
Access Control and Permissions
Workspace Access Validation
The system validates workspace access before allowing transfers:Permission Requirements
inventory:view- View stock transfersinventory:transfer- Create stock transfers- Access to source workspace
- Access to destination workspace
Common Transfer Scenarios
Scenario 1: Restocking a Retail Location
Situation: Central warehouse needs to send stock to a retail storeCreate Transfer
- Product: Select items to restock
- Destination: Retail store workspace
- Quantity: Amount needed
Scenario 2: Balancing Stock Between Stores
Situation: Store A has excess inventory, Store B is lowScenario 3: Returns to Warehouse
Situation: Returning damaged or unsold items to central warehouseValidation and Error Handling
Insufficient Stock Error
Error Message: “No hay suficiente stock en la ubicación de trabajo de origen” Cause: Trying to transfer more than available at source Solution:- Check current stock level at source workspace
- Adjust transfer quantity
- Or perform stock adjustment if system quantity is incorrect
Same Workspace Error
Error Message: “No se puede transferir stock a la misma ubicación de trabajo” Cause: Source and destination workspaces are the same Solution: Select a different destination workspaceNo Access to Workspace Error
Error Message: “El usuario no tiene acceso a ambas ubicaciones” Cause: Missing access to source or destination workspace Solution:- Contact administrator to grant workspace access
- Or have someone with access to both workspaces perform the transfer
Product Not Trackable Error
Error Message: “No se puede transferir stock de un producto que no tiene el seguimiento de inventario habilitado” Cause: Product hastrack_stock = false
Solution:
- Edit the product
- Enable “Track Stock”
- Set initial stock levels
- Then perform transfer
Transfer Reporting
Transfer Activity Report
View transfer patterns and activity:- Navigate to Reports → Inventory Reports → Transfer Activity
- Select date range
- View:
- Most transferred products
- Transfers by workspace pair
- Transfer frequency
- Average transfer quantities
Audit Trail
All transfers include complete audit information:- Who performed the transfer (
user_id) - When it occurred (
created_at) - Reference number for tracking
- Notes explaining the transfer reason
StockMovement model with createdBy relationship
Best Practices
Integration with Other Features
Transfer After Sales Analysis
Transfers can be triggered by:- Sales reports showing low stock at one location
- High demand analysis at specific workspaces
- Seasonal inventory rebalancing
Transfer Before Stock Takes
Best practice before physical inventory counts:- Complete all pending transfers
- Ensure all transfers are recorded in the system
- Then perform stock count
Troubleshooting
Transfer Appears in One Workspace Only
Problem: Transfer shows at source but not destination Investigation:- Check stock movement records for both
TRANSFER_OUTandTRANSFER_IN - Verify reference numbers match
- Check ProductStock records at both workspaces
Cannot Find Transfer in History
Problem: Transfer was completed but doesn’t appear in list Solution:- Ensure you’re filtering correctly (check date range)
- Switch workspace context to source or destination
- Search by reference number
- Check user filters (if transfer was by another user)