Architect Warehouse Management Systems (WMS) and multi-location inventory control engines. Implement SKU tracking, aisle-rack-bin location hierarchies, FIFO/FEFO expiration turnover, barcode/RFID scanning workflows, safety stock replenishment thresholds, and cycle count reconciliation. Trigger when building inventory management backends, warehouse logistics, or stock replenishment services.
Scanned 9/29/2026
npx -y skills add hamzabellouch/agent-skills --skill wms-inventory-warehouse-control --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Wms Inventory Warehouse Control?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hamzabellouch-wms-inventory-warehouse-control)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: wms-inventory-warehouse-control
metadata:
category: Supply Chain and Logistics Tech
description: Architect Warehouse Management Systems (WMS) and multi-location inventory control engines. Implement SKU tracking, aisle-rack-bin location hierarchies, FIFO/FEFO expiration turnover, barcode/RFID scanning workflows, safety stock replenishment thresholds, and cycle count reconciliation. Trigger when building inventory management backends, warehouse logistics, or stock replenishment services.
compatibility: Relational databases (PostgreSQL/MySQL), Barcode GS1-128
---
# Warehouse Management & Inventory Control Skill Guide
This skill governs data modeling, stock movements, and operational workflows for high-reliability Warehouse Management Systems (WMS).
---
## 1. Physical Warehouse Hierarchy & Stock Movements
```text
[ Warehouse Facility ]
|
+---> [ Zone: Ambient / Cold Storage / Hazardous ]
|
+---> [ Aisle ]
|
+---> [ Rack / Shelf ]
|
+---> [ Bin: Specific Pick Location (e.g. A-04-02-B) ]
|
v
[ Inventory Lot (SKU + Lot # + Expiry Date) ]
```
---
## 2. Production Database Schema & Ledger Architecture
Inventory must **never** be managed by simply mutating an integer count; all stock changes must use an **immutable transaction ledger** (Stock Move Log).
```sql
-- 1. Locations Hierarchy
CREATE TABLE warehouse_locations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
warehouse_code VARCHAR(16) NOT NULL,
zone VARCHAR(32) NOT NULL,
aisle VARCHAR(16) NOT NULL,
rack VARCHAR(16) NOT NULL,
bin VARCHAR(16) NOT NULL,
is_active BOOLEAN DEFAULT TRUE,
CONSTRAINT uq_bin_code UNIQUE (warehouse_code, zone, aisle, rack, bin)
);
-- 2. Inventory Batches / Lots (Supports FEFO: First Expired, First Out)
CREATE TABLE inventory_lots (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
sku VARCHAR(64) NOT NULL,
lot_number VARCHAR(64) NOT NULL,
manufactured_at DATE,
expires_at DATE NOT NULL,
created_at TIMESTAMPTZ DEFAULT clock_timestamp()
);
-- 3. Immutable Stock Movement Ledger
CREATE TYPE movement_type AS ENUM ('RECEIPT', 'PUTAWAY', 'PICK', 'TRANSFER', 'CYCLE_COUNT_ADJUSTMENT');
CREATE TABLE stock_movements (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
lot_id UUID NOT NULL REFERENCES inventory_lots(id),
from_location_id UUID REFERENCES warehouse_locations(id), -- NULL for inbound receipts
to_location_id UUID REFERENCES warehouse_locations(id), -- NULL for shipped orders
quantity NUMERIC(12, 4) NOT NULL CHECK (quantity > 0),
move_type movement_type NOT NULL,
reference_order_id VARCHAR(64),
performed_by_user UUID NOT NULL,
recorded_at TIMESTAMPTZ DEFAULT clock_timestamp()
);
CREATE INDEX idx_stock_movements_lot ON stock_movements(lot_id);
CREATE INDEX idx_stock_movements_to ON stock_movements(to_location_id);
CREATE INDEX idx_stock_movements_from ON stock_movements(from_location_id);
```
### Automated Reorder / Replenishment Query
```sql
-- Identifies SKUs falling below calculated Safety Stock + Reorder Point
WITH current_stock AS (
SELECT
l.sku,
COALESCE(SUM(CASE WHEN m.to_location_id IS NOT NULL THEN m.quantity ELSE 0 END), 0) -
COALESCE(SUM(CASE WHEN m.from_location_id IS NOT NULL THEN m.quantity ELSE 0 END), 0) AS on_hand_qty
FROM inventory_lots l
JOIN stock_movements m ON l.id = m.lot_id
GROUP BY l.sku
)
SELECT
s.sku,
s.on_hand_qty,
p.reorder_point,
p.safety_stock,
(p.optimal_order_qty) AS suggested_replenishment_units
FROM current_stock s
JOIN product_reorder_policies p ON s.sku = p.sku
WHERE s.on_hand_qty <= p.reorder_point;
```
---
## 3. Operational Best Practices
1. **FEFO Allocation:** For perishable or medical goods, always prioritize picking from the lot with the earliest `expires_at` date to minimize waste.
2. **Two-Step Picking & Staging:** Separate high-speed bin picking from packing/staging to optimize worker travel paths.
3. **Discrepancy Approvals:** Cycle count variances exceeding a configured threshold (e.g., $100 or 5% of bin quantity) must require supervisor biometric or two-factor sign-off.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!