Complete warehouse management. Track inventory across multiple locations combined with zones and bins, and manage serial numbers with precision.
Manage complex warehouse operations with a simple, modular API.
Define hierarchical storage locations. Manage warehouses, zones, aisles, racks, and bins with parent-child relationships using `LocationType`.
Real-time balance tracking per location. Support for any "stockable" model (Products, Assets) via polymorphic relationships.
Granular control for high-value items. Track individual units by serial number and their specific location history.
Interact with the WMS via the `WMSService` facade. Clean, fluent interfaces for complex logistics.
Create warehouses and nested storage bins.
Register new items with specific serial numbers tied to a location.
use Obelaw\Wms\Facades\WMS; use Obelaw\Wms\Enums\LocationType; // 1. Create a Warehouse $warehouse = WMS::locations()->create([ 'name' => 'Main DC', 'type' => LocationType::WAREHOUSE, ]); // 2. Create a Bin inside it WMS::locations()->create([ 'name' => 'Bin A-01', 'type' => LocationType::STORAGE_BIN, 'warehouse_id' => $warehouse->id, 'parent_id' => $warehouse->id ]);
use Obelaw\Wms\Facades\WMS; // Inbound Stock with Serials WMS::stocks()->create( stockable: $product, locationId: $warehouse->id, quantity: 5, serials: [ 'SN-1001', 'SN-1002', ... ] ); // Check Balance $stats = WMS::stocks()->getBalance($product, $warehouse->id); // ['available' => 5, 'reserved' => 0, 'sold' => 0]
Links physical stock to rich product data and unit definitions.
Reserves stock automatically when orders are placed and confirms shipments.
Tracks inventory asset values and cost of goods sold (COGS).
Barcode and QR code friendly architecture for scanning devices.