,
,,
Calisto Inventory

Stock and asset management, per vertical.

Item registry with SKU and barcode tracking, reorder-point automation with three trigger actions, batch/lot traceability, consumable depletion curves, marketplace stock sync, physical count verification, fixed-asset registry with warranty tracking, and 8 vertical-specific inventory surfaces.

12 Item Categories · 6 Stock Statuses · 5 PO States · 4 Calisto AI Commands · 8 Verticals · 11 API Route Groups

Stock Management

Item registry. Adjustment trail. 12 categories.

OpsInventoryClient renders the full item list with filter, search, and bulk actions. Each quantity change records reason, notes, and task linkage, feeding the audit trail and stock-alert system.

Item Registry with SKU + Barcode

Each InventoryItem carries id, sku, name, category, quantity, unitCost, reorderPoint, reorderQuantity, location, and lastCountedAt. POST /api/ops/inventory to list with filters by propertyId, category, lowStock, vendorId, or search term.

Quantity Adjustment with Reason Codes

PATCH /api/ops/inventory adjusts quantity by +/− delta. Every adjustment requires a reason (PURCHASE, USAGE, WASTE, TRANSFER, CORRECTION, RETURN), optional notes, and optional relatedTaskId for audit linkage.

12 Hospitality-Specific Categories

CLEANING_SUPPLIES, LINENS, TOILETRIES, AMENITIES, FOOD_BEVERAGE, OFFICE_SUPPLIES, MAINTENANCE_PARTS, POOL_CHEMICALS, LANDSCAPING, ELECTRONICS, FURNITURE, OTHER. Filter the item list by category or combine with lowStock flag.

6 Stock Statuses

in_stock, low_stock, out_of_stock, on_order, discontinued, reserved. Status drives UI indicators and feeds into the stock-alerts event system for downstream actions.

Procurement Layer

Purchase orders. Reorder points. Automatic triggers.

Each item defines a reorderPoint and reorderQuantity. The stock-alert event system evaluates on every adjustment and executes the configured outOfStockAction: creating purchase orders, pausing marketplace listings, or sending notifications.

,0,

hospitality-specific item categories

,0,

adjustment reason codes with audit trail

,0,

purchase order lifecycle states

,0,

vertical-specific inventory surfaces

Purchase Orders

5 statuses. Vendor linkage. Line-item detail.

PurchaseOrder entity tracks the full procurement lifecycle, from draft through submitted, confirmed, received, or cancelled. Created manually via OpsInventoryReorderClient or automatically by the auto_reorder trigger. API: GET/POST /api/ops/inventory/purchase-orders.

draft
submitted
confirmed
received
cancelled
vendorId + vendorName: linked to preferred vendor per item
items[]: array of { itemId, quantity, unitCost } per PO line
totalCost: computed from line items, displayed on PO list
orderedAt, expectedAt, receivedAt: full lifecycle timestamps
Auto-Reorder

Reorder points. Three trigger actions. Automatic POs.

OpsInventoryAutoReorderClient configures per-item reorder triggers. The stock-alert event system evaluates quantity vs. reorderPoint on every adjustment and executes the configured outOfStockAction: pause_listings, notify_only, or auto_reorder.

1

Reorder Point Threshold

Each item defines reorderPoint and reorderQuantity. When quantity drops below reorderPoint, /api/inventory/events/stock-alerts fires an alert for that item.

2

outOfStockAction Configuration

Per-item action config via POST /api/inventory/events/stock-alerts. Three modes: pause_listings (halt marketplace channels), notify_only (alert without action), or auto_reorder (trigger PO creation).

3

Automatic Purchase Order Creation

When auto_reorder fires, a PurchaseOrder is created to the item's preferredVendorId with reorderQuantity units. PO status begins as "draft" and progresses through submitted → confirmed → received.

4

Manual Reorder Surface

OpsInventoryReorderClient provides a manual reorder interface for items not on auto-reorder. /api/ops/inventory/reorder-alerts lists all items currently below threshold for one-click PO creation.

Traceability Layer

Batches. Consumables. Physical verification.

Batch/lot tracking with expiration dates for recall isolation. Consumable-specific depletion tracking for high-turnover items. Cycle-count workflows with variance detection and CORRECTION adjustments.

Batch & Lot Tracking

Lot numbers. Expiration dates. Recall isolation.

OpsInventoryBatchesClient manages batch records with creation, listing, and expiration filtering. Each batch links to inventory items for traceability, enabling lot-level draw-down and isolation when a supplier issues a recall.

Batch/Lot Creation

POST /api/ops/inventory/batches creates a batch record linked to inventory items. Track received-date, supplier lot number, and quantity per batch for traceability.

Expiration Tracking

Items with expirationDate (set at PUT /api/ops/inventory) surface in OpsInventoryBatchesClient with countdown indicators. Batch queries filter by expiration window.

Batch → Item Linkage

Each batch record ties to one or more inventory items. Quantity adjustments can reference a batch, enabling FIFO/FEFO draw-down and recall isolation per lot number.

Consumables

Usage tracking for items that deplete.

OpsInventoryConsumablesClient separates high-turnover consumable items from durable stock. Tracks consumption rate, par levels, and reorder triggers for cleaning supplies, linens, toiletries, amenities, food/beverage, and pool chemicals.

CLEANING_SUPPLIES: detergents, disinfectants, glass cleaner, mops
LINENS: towels, sheets, pillowcases, table linens
TOILETRIES: shampoo, soap, lotion, dental kits
AMENITIES: welcome packs, slippers, robes, coffee pods
FOOD_BEVERAGE: minibar stock, breakfast items, condiments
POOL_CHEMICALS: chlorine, pH balancers, algaecides, test strips

Consumption Rate Tracking

GET /api/ops/inventory/consumables returns usage history per item. OpsInventoryConsumablesClient renders consumption curves and par-level indicators.

Usage-Triggered Reorder

Consumable items share the same reorderPoint/reorderQuantity system as regular stock. High-consumption items can be set to auto_reorder to maintain par levels without manual intervention.

Stock Verification

Physical counts. Variance detection. Correction trail.

OpsInventoryVerifyClient drives cycle-count workflows. Staff perform physical counts, the system detects variance, and generates CORRECTION adjustments with full audit linkage: who counted, when, and the exact delta.

Physical Count Workflow

OpsInventoryVerifyClient provides a structured count interface. Staff scan or select items, enter physical count, and the system calculates variance against recorded quantity.

lastCountedAt Timestamp

Each InventoryItem tracks lastCountedAt. The verify surface highlights items overdue for count based on configurable cycle-count intervals.

Variance → Adjustment

When physical count differs from system quantity, a CORRECTION adjustment is generated with the delta. Full audit trail: who counted, when, original vs. actual, and reason.

Asset & Distribution Layer

Fixed assets. Marketplace sync. Asset request forms.

Durable asset registry with serial numbers, condition tracking, and warranty expiry, distinct from consumable stock. Bidirectional marketplace sync pushes levels and pulls reserved quantities. Forms-core powers structured asset requests.

Asset Management

Fixed assets. Condition tracking. Warranty expiry.

The asset board renders the physical asset registry at /inventory/assets. Distinct from consumable stock. Assets are durable items tracked by serial number, condition, assignment, and warranty status.

id, name, serialNumber: unique identification per physical asset
condition: new, good, fair, poor, damaged, retired (AssetCondition enum)
assignedTo: staff member or location currently responsible
location: physical site or storage area
purchaseDate, purchaseCost: acquisition data for depreciation
warrantyExpiry: warranty tracking with expiration alerting
API: GET /api/ops/assets (list with filters), POST /api/ops/assets (create new asset)
Marketplace Sync

Push stock. Pull reserved. Pause on out-of-stock.

The marketplace sync client renders connected marketplace channels with bidirectional sync. Channel configuration and connection management lives in Calisto Sync. Inventory handles the stock-level data flow.

Push Stock Levels

One-click push of current inventory quantities to all connected marketplace channels. Prevents overselling by propagating real-time availability.

Pull Reserved Quantities

Pull reserved/pending quantities from marketplace channels back into inventory. Accounts for marketplace holds before stock is physically allocated.

Channel Sync Status

Per-channel dashboard showing sync status, productsInSync count, last sync timestamp, and error count. Fetched from /api/inventory/marketplace/sync.

Automatic Listing Pause

When outOfStockAction is set to pause_listings, the stock-alert system signals connected channels to pause affected SKUs until stock is replenished.

Channel management (add/remove/configure marketplaces) → Calisto Sync via getProductUrl('sync', '/marketplace')
Forms

Asset request forms powered by the forms engine.

The /inventory/forms route renders an AppForm with appName='inventory', enabling staff to submit structured asset requests. Same form engine used across all Calisto products, with submission routing into the purchase order approval pipeline.

Asset Request Form

The integrated forms engine scoped to inventory. Staff submit asset requests (new equipment, replacement, repair) through a structured form that feeds into the purchase order pipeline.

Forms Integration

Same form engine used across Dispatch, Ops, and other products. Form definitions, field validation, conditional logic, and submission routing are configured per appName.

Request → Purchase Order Pipeline

Approved asset requests can trigger PurchaseOrder creation. Manager-area users review and approve requests; approved items flow into the reorder system.

Platform Layer

8 verticals. 4 AI commands. Cross-product feeds.

Vertical-specific inventory surfaces scoped per industry. Calisto AI assistant with search, adjust, reorder, and check commands. Stock-level feeds consumed by POS, Shop, Ops, and Sync.

Vertical-Specific Surfaces

8 verticals. Each with its own inventory context.

INVENTORY_DASHBOARD_CONFIG exposes vertical-specific inventory surfaces. Each vertical gets its own sidebar section with routes scoped to that industry's asset and consumable tracking patterns.

Coworking

ConsumablesEquipmentNew EquipmentPrinting

Rentals

WarehouseFleetNew AssetKitsNew Kit

Local Pros

EquipmentChemical Tracking

Golf

Equipment Registry (Superintendent)

Endurance

Bag Drop & Gear

Developers

Warranty Parts Ordering

Restaurant

Vendors

Serviced Apartments

Vendor Register (Maintenance)
Calisto AI Commands

4 registered commands. Search, adjust, reorder, check.

The AI commands module registers four Calisto AI commands for the Calisto AI assistant. Action commands execute immediately; fillForm commands pre-populate the UI and require explicit user confirmation before writing.

inventory.searchaction

Search items by name, SKU, or category. Optional lowStockOnly filter narrows to items below reorder threshold.

inventory.adjustStockfillForm · requiresConfirm

Adjust quantity with reason code. Calisto AI pre-fills the adjustment form and requires user confirmation before executing the PATCH.

inventory.createReorderfillForm · requiresConfirm

Create a purchase order with optional supplierId. Calisto AI pre-fills vendor, items, and quantities. Requires confirmation before POST.

inventory.checkLevelaction

Look up current stock level, reorder point, and recent movement history for a specific item.

Cross-Product

POS writes. Shop reads. Ops draws. Sync distributes.

Inventory is the stock-level source of truth. POS deducts on sale, Shop displays availability, Ops links consumption to tasks, and Sync propagates levels to marketplace channels. The stock-alerts event system bridges inventory state to downstream actions.

POS

POS reads/writes inventory. Stock deduction on sale, quantity adjustment with reason USAGE

Shop

Shop reads catalog availability. /api/inventory/feeds/stock-levels exposes per-item quantity and status

Ops

Ops reads operational stock. Consumable draw per task, cleaning supply usage linked via relatedTaskId

Sync

Sync manages marketplace channel connections. Inventory pushes stock levels, Sync handles platform auth and channel config

Stock Alerts → POS

/api/inventory/events/stock-alerts consumed by POS for pause_listings action, halting sales of out-of-stock items

Pricing

High-Performance Ops. Zero Monthly Overhead.

Get all 15 Core modules at no monthly cost. You only pay 2% of processed revenue.

,,
Calisto Core
$0/month
+ 2% of revenue
CommitmentNone
UsersUnlimited
Products15 included
Best for: Businesses of any size. Revenue is auto-calculated from POS orders, reservations, folios, and event tickets.
,,,,,,,

Inventory

Stock tracking, purchase orders, and reorder automation.

$1/mo

Part of Ops Suite

Wallet-debit

Add to Pro Shop