Skip to content

Admin Panel

The admin panel is a React web app at http://localhost:8080 for warehouse managers to monitor operations and configure the system. Requires ADMIN role. The production build is served by nginx; a development overlay (docker-compose.dev.yml) restores the Vite dev-server on port 3000 with hot reload.


Dashboard

The home page shows a real-time pipeline overview:

  • Pipeline bar - visual flow from Receiving to Put-Away to Picking to Packing to Shipping
  • Open orders needing action - POs awaiting receipt, SOs ready to pick
  • Low stock alerts - items below reorder point
  • Short picks (7 day) - recent short pick events with SKU, bin, and shortage details
  • Recent activity - last 10 audit log entries
  • Inbound POs - purchase orders with receipt status

All stats filter by the warehouse selected in the header dropdown.


Inventory

Full inventory view showing stock by bin location.

  • Search by SKU or item name
  • Sort by any column (click headers)
  • Columns: SKU, item name, bin code, zone, quantity on hand, quantity allocated, quantity available, last counted
  • Filter by warehouse via header dropdown
  • Paginated

Items

Product catalog management.

  • Search by SKU, name, or UPC
  • Filter by Active, Archived, or All
  • Create new items with SKU, name, UPC, category, weight, default bin
  • Edit any item field
  • Archive/Restore soft delete toggle
  • Delete hard delete (blocked if inventory or order history exists)
  • Detail view shows inventory locations across all bins and preferred bin assignments

Purchase Orders

  • List all POs with status tags (OPEN, PARTIAL, RECEIVED, CLOSED)
  • Filter by status
  • Create PO with PO number, vendor, expected date, and line items (item ID + quantity)
  • Detail modal shows ordered vs received quantities per line
  • Close PO action

Sales Orders

  • List all SOs with status, customer info, carrier, and tracking
  • Filter by status (OPEN, PICKING, PICKED, PACKED, SHIPPED, CANCELLED)
  • Create SO with SO number, customer name/phone/address, ship method, and line items
  • Detail modal shows fulfillment progress per line (ordered, allocated, picked, packed, shipped)
  • Cancel SO releases allocated inventory

Users

  • List all user accounts with role, warehouse assignments, and active status
  • Create user with username, password, full name, role (ADMIN or USER)
  • Warehouse assignment - multi-select warehouses the user can access
  • Module access - checkboxes for mobile functions (Pick, Pack, Ship, Receive, Put-Away, Count, Transfer)
  • Edit any field including password reset
  • Delete hard delete (cannot delete yourself or the last admin)

Warehouses

  • List all warehouses with code, name, address, active status
  • Create new warehouses
  • Edit name and address
  • Delete (blocked if warehouse has bins, zones, or inventory)

Zones

  • List zones within the selected warehouse
  • Create with zone code, name, and type
  • Edit zone properties
  • Zone types: STORAGE, RECEIVING, STAGING, SHIPPING, QUALITY, DAMAGE

Bins

  • List all bin locations with code, barcode, type, zone, pick sequence
  • Create with bin code, barcode, type, zone, and optional coordinates (aisle, row, level, position)
  • Edit any field
  • Detail modal shows current inventory contents with quantities

Bin types: Pickable, PickableStaging, Staging


Preferred Bins

Item-to-bin priority assignments used by the put-away suggestion engine.

  • Search by SKU or item name
  • Create new preferred bin assignments with priority ranking
  • Edit priorities
  • Delete assignments
  • CSV export

Cycle Count Approvals

Review pending inventory adjustments from cycle counts.

  • Grouped by cycle count / bin
  • Per-item approve or reject buttons
  • Approve All / Reject All per group
  • Shows expected vs counted quantities and variance
  • Separation of duties check (configurable in Settings)

Adjustments

Direct inventory add/remove with reason tracking.

  • ADD - increase quantity in a specific bin
  • REMOVE - decrease quantity from a bin
  • Searchable bin and item dropdowns
  • Reason text required
  • Auto-approved (no approval workflow)
  • Adjustment history table

Inter-Warehouse Transfers

Move inventory between warehouses.

  • Select source warehouse, source bin, and item
  • Select destination warehouse and destination bin
  • Enter quantity
  • Transfer history table with timestamps and user

Imports

Bulk import via CSV or JSON for four entity types:

  • Items - SKU, name, UPC, category, weight
  • Bins - bin code, barcode, type, zone, coordinates
  • Purchase Orders - PO number, SKU, quantity, vendor
  • Sales Orders - SO number, SKU, quantity, customer

Download template buttons provide sample CSV files. Max 5000 records per import.


Audit Log

Activity log for all warehouse operations.

  • Filter by action type, user, and date range
  • Columns: timestamp, action, entity type, entity name, username, warehouse, device
  • Detail modal with resolved entity names (bin codes, SKUs, PO/SO numbers)

Settings

System configuration:

  • Warehouse - edit name and address for the selected warehouse
  • Fulfillment Workflow
    • Require packing before shipping (checkbox)
    • Default receiving bin (dropdown)
    • Allow over-receiving (checkbox)
  • Inventory
    • Require separate approver for cycle count adjustments (checkbox)
  • Mobile App
    • Show expected quantities during cycle counts (checkbox)
  • Manual Entry - create POs and SOs directly (for standalone deployments)
  • About - version number and repository link

All settings use a batch save with unsaved changes warning.

Integrations

The Integrations page (sidebar -> System -> Integrations) is the home for ERP and commerce connectors. Each registered connector appears as a button; selecting one opens a credential form whose fields come from get_config_schema(). Values are encrypted with SENTRY_ENCRYPTION_KEY before they hit the database and are displayed back as ****. The same card shows a Sync Health panel with live indicators (green / yellow / red) for each sync type, the last success timestamp, the last error message, and a Sync Now button per type (disabled while a sync is running). See the Connectors guide for the framework internals and how to add your own.