,
,,
Calisto Logistics

Order fulfillment and shipping operations, per channel.

8-status fulfillment pipeline, rule-based order routing with 8 conditions and 7 actions, 16-marketplace order ingestion with inventory sync, customs document workflow with HS classification and landed-cost calculation, event-driven shipment tracking with 8 carrier webhook adapters, multi-leg handoff orchestration, and 8 rental fulfillment surfaces.

8 Fulfillment Statuses · 8 Routing Conditions · 7 Routing Actions · 16 Marketplaces · 8 Carrier Adapters · 25 Tracking Statuses · 6 Customs Doc Types · 8 Rental Surfaces · 35+ API Routes

Fulfillment Engine

Order to shipped. 8 statuses. Pick and pack tracking.

OpsFulfillmentClient renders the fulfillment task queue from /api/logistics/fulfillment. Each order carries channel, items with per-item pick counts, carrier assignment, and tracking number. Filter by status, priority, or assignee. PATCH to advance status.

8-Status Fulfillment Pipeline

Every FulfillmentOrder moves through pending, processing, picking, packing, shipped, delivered, returned, or cancelled. OpsFulfillmentClient renders the queue with filters by status, priority, and assignee.

Per-Item Pick Tracking

Each line item carries sku, name, quantity, and pickedQuantity. Pickers update pickedQuantity as they work through the order. The packing station only releases orders where all items are fully picked.

Packing Stations

PackingStation records track id, name, assignedTo, activeOrders, and completedToday. LogisticsPackingStationClient shows station workload and lets managers reassign orders between stations.

Warehouse Location Model

WarehouseLocation stores zone, aisle, shelf, and bin with capacity and currentOccupancy. The routing engine uses warehouseId in ShipmentPlan to direct fulfillment to the correct origin.

Routing Layer

Rules decide where each order goes. Automatically.

The RoutingEngine evaluates order value, weight, destination, customer tier, channel, product tags, fulfillment type, and time windows. Actions assign carriers, set service levels, pick warehouses, split shipments, route to vendors, and add insurance.

,0,

routing conditions evaluated per order

,0,

routing actions applied to matching rules

,0,

marketplace connectors with order ingestion

,0,

unified tracking statuses across carriers

Order Routing

8 conditions. 7 actions. Rule-based decisions.

The routing engine evaluates each order against prioritized rules. Mode is first_match (stop at first hit) or accumulate (apply all matching). CostOptimizer runs after rule evaluation when enabled. RoutingSimulator provides what-if analysis with alternative decisions and a full rule-evaluation trace.

Conditions (if)

Order ValueThreshold or range checks on order total (gt, lt, between)
WeightTotal shipment weight with kg/lb unit handling
DestinationCountry, state, city, postal code, residential flag
Customer Tierstandard, premium, vip, enterprise with lifetime value
Channeldtc, amazon, mercadolibre, shopify, or any marketplace name
Product TagsMatch against item-level tags (fragile, hazmat, oversized)
Fulfillment Typestock, dropship, made_to_order, or digital
Time WindowDate range or cutoff time for seasonal or promotional rules

Actions (then)

Select Carrier
Assign a specific carrier for the shipment
Set Service Level
Override to express, standard, economy, or custom
Assign Warehouse
Route fulfillment to a specific origin warehouse
Special Handling
Add fragile, hazmat, temperature-controlled flags
Route to Vendor
Forward dropship items directly to vendor for fulfillment
Split Shipment
Break a multi-item order into separate packages by warehouse or vendor
Add Insurance
Attach shipment insurance with configurable amount and currency
Marketplace & Ecommerce

16 marketplaces. Order ingestion. Inventory sync.

MarketplaceOrchestratorClient renders connected channels with order counts, sync status, and error indicators. The ecommerce sub-routes provide dedicated surfaces for order management, shipping, packing, returns, pickup, and dropship fulfillment.

16 Global Marketplaces

The marketplace registry provides connector implementations for 16 platforms. Each connector exposes orders, inventory, fulfillment, returns, and webhook capabilities per platform.

Order Ingestion

OrderIngestionService pulls orders from connected marketplaces into the logistics pipeline. /api/logistics/marketplace/orders returns ingested orders. Each carries its source channel for routing rule evaluation.

Inventory Sync

InventorySyncService pushes stock levels to marketplace channels and pulls reserved quantities back. /api/logistics/marketplace/inventory/sync triggers push/pull operations per channel.

OAuth Channel Connection

OAuthFlowManager handles marketplace authentication flows. Channels with oauthUrl get a connect button; others use API key entry. Callback routes complete the auth handshake.

Ecommerce Surfaces

Order BoardLogisticsOrderBoardClient
ShippingLogisticsShippingClient
PackingLogisticsPackingStationClient
ReturnsLogisticsReturnsClient
PickupLogisticsPickupClient
DropshipLogisticsDropshipClient
Shipping Layer

8 carriers. Rate comparison. Customs documents.

RateShoppingService queries configured carriers in parallel. LabelService generates printable labels. The customs engine classifies HS codes, calculates landed cost, screens restricted items, and manages 6 document types through a create-validate-sign workflow.

Shipping & Rates

8 carriers. Rate comparison. Label generation. SLA contracts.

The shipping layer configures 8 carrier clients from environment variables, each with sandbox/production toggle. RateShoppingService compares rates across all carriers for a given shipment. CarrierSLAContract records track delivery guarantees, cutoff times, and volume discounts.

Rate Shopping

RateShoppingService queries all configured carriers in parallel and returns RateComparison results with estimated cost, transit days, SLA compliance, and savings vs. alternatives. GET /api/logistics/shipping/rates.

Label Generation

LabelService generates shipping labels for created shipments. GET /api/logistics/shipping/labels/[shipmentId] returns the printable label for a specific shipment.

Tracking Normalization

TrackingNormalizationService converts carrier-specific tracking data into a unified format. GET /api/logistics/shipping/tracking/[trackingNumber] returns normalized status and events.

Configured Carriers

FedExUPSDHLUSPSDPDCorreosPostNLAramex

SLA Contract Fields

  • carrierId + carrierName
  • serviceLevel
  • maxDeliveryDays
  • guaranteedDelivery flag
  • cutoffTime (HH:mm)
  • pickupDays (weekday list)
  • surcharges (type, amount, condition)
  • volumeDiscount (threshold, discountPercent)
  • validity period (validFrom / validUntil)
Customs & International

HS codes. Landed cost. Restricted item screening.

The customs engine provides the classification, cost calculation, compliance screening, and document generation layer. CustomsDashboardClient renders recent classifications, compliance alerts, and pending calculations.

HS Code Classification

HSCodeClassifier assigns Harmonized System codes from product name, description, category, and materials. POST /api/logistics/customs/classify returns codes with confidence scores. Lookup via /api/logistics/customs/hs-codes.

Landed Cost Calculation

LandedCostCalculator computes duties, taxes, and fees based on HS code, origin, destination, and declared value. POST /api/logistics/customs/landed-cost returns a breakdown per line item.

Restricted Items Screening

RestrictedItemsScreener checks items against restricted/prohibited goods lists per destination country. SanctionsChecker runs entity-level sanctions screening. POST /api/logistics/customs/compliance.

Document Workflow

CustomsWorkflowService manages 6 document types: commercial invoice, packing list, certificate of origin, customs declaration, bill of lading, airway bill. Each document moves through create, validate, generate-pdf, and sign (with callback).

Document Types

Commercial Invoice
Packing List
Certificate of Origin
Customs Declaration
Bill of Lading
Airway Bill
Event Layer

Carrier webhooks in. Normalized events out. Alerts everywhere.

WebhookIngestionRouter verifies signatures, parses payloads, and normalizes statuses into LogisticsEvent records. The EventBus distributes events to subscribers, the timeline service, and the notification engine.

Shipment Tracking

8 carrier adapters. 25 statuses. Multi-leg timelines.

The logistics events engine runs the event-driven tracking layer. Carrier webhooks arrive at /api/logistics/events/webhooks/[carrier], get verified and normalized, then flow through the EventBus to subscribers, the EventStore, and the TrackingTimelineService.

Event Bus + Event Store

EventBus distributes LogisticsEvent records to subscribers. EventStore persists events for replay and timeline reconstruction. EventReplay re-processes historical events against new subscriber logic.

8 Carrier Webhook Adapters

WebhookIngestionRouter dispatches incoming carrier webhooks to the correct adapter: FedEx, UPS, DHL, USPS, DPD, Glovo, Rappi, or GenericWebhookAdapter. Each adapter verifies signatures and normalizes payloads into LogisticsEvent records.

25 Unified Tracking Statuses

StatusNormalizer maps carrier-specific status codes to 25 unified values, from order_placed through in_customs and customs_cleared to delivered or exception. LocationNormalizer standardizes facility names and coordinates.

Multi-Leg Shipment Timeline

TrackingTimelineService builds ShipmentTimeline from stored events, including milestones with estimatedAt fields. Multi-leg shipments get per-leg LegTimeline with separate carrier and tracking number per leg.

ETA Calculator

ETACalculator produces confidence-rated delivery estimates (high, medium, low) based on carrier performance data, current status, and historical transit times. Updates fire eta_update events through the bus.

Customer-Facing Tracking Page

TrackingPageService generates TrackingPageData with DisplayEvent list, MapPoint coordinates, and milestone progress. LogisticsTrackingClient renders the timeline with map and status indicators.

Notifications & Analytics

4 notification channels. Carrier scorecards. Exception tracking.

NotificationEngine dispatches status updates across email, SMS, push, and webhook channels using configurable templates per tracking status. DeliveryPerformanceTracker and CarrierScorecardService surface operational metrics.

Email

EmailNotifier

Renders NotificationTemplate with shipment variables and sends via configured EmailTransport

SMS

SMSNotifier

Short-form status updates sent via SMSTransport with tracking link

Push

PushNotifier

Mobile push notifications via PushTransport using recipient push tokens

Webhook

WebhookNotifier

HTTP POST to merchant-configured URLs with full event payload

Delivery Performance Tracker

Aggregates totalShipments, avgTransitDays, onTimeDeliveryRate, firstAttemptSuccessRate, and exceptionRate. Breaks down by carrier, region, and channel with average resolution hours per exception type.

Carrier Scorecards

Per-carrier metrics: deliveredOnTime, deliveredLate, failedDeliveries, returnedShipments, avgTransitDays, onTimeRate, exceptionRate, avgDeliveryAttempts, costPerShipment. Configurable scoring period.

Exception Tracker

Categorizes shipping exceptions (delayed, lost, damaged, return_initiated) with per-category counts and average resolution time in hours. ExceptionSummary feeds dashboard alerts.

Handoff Orchestration

Multi-leg chains. Dwell monitoring. Stuck-package alerts.

The handoff engine manages shipment custody transfers between carriers. This is the logistics-side handoff: packages moving between legs of a multi-carrier route. Distinct from Dispatch handoff, which handles field work transfers between people.

Multi-Leg Chain Orchestration

HandoffOrchestrator creates chains from ShipmentPlan, managing custody transfer between carriers across legs. POST /api/logistics/handoff/chains to create a chain, GET to list active chains by status.

Stuck Package Detection

StuckPackageDetector monitors dwell time per leg against a configurable threshold (defaultMaxDwellHours, default 48). When a package sits too long at a handoff point, alerts fire to /api/logistics/handoff/alerts.

Handoff Dashboard

HandoffDashboardClient renders active chains and stuck alerts. Each chain shows its legs, current carrier, and time at current handoff point. Alerts are sorted by dwell time to surface the most overdue packages first.

Chain Status Queries

GET /api/logistics/handoff/chains supports status filtering. PATCH /api/logistics/handoff/chains/[chainId] updates individual chains as legs complete or new legs are added mid-transit.

Vertical & Platform Layer

Rental fulfillment. Product feeds. 4 cross-product bridges.

8 rental-specific surfaces for order boards, shortages, returns, subrentals, inspections, locations, damage, and overdue items. Product feed generation for marketplace channels and comparison shopping engines. Cross-product connections to Sync, Inventory, Equipment, and Reputation.

Product Feeds

Marketplace feeds. Shopping engines. Affiliate exports.

ProductFeedsClient renders the feed management interface. Create feeds with custom field mappings, generate them against your product catalog, and push to marketplace channels or comparison shopping engines.

Feed Management Service

The feed management service handles listing, creating, generating, and deleting product feeds. Each feed has a FeedConfig that defines format, field mapping, and target platform.

Feed Generation

POST /api/logistics/feeds with a config and product list generates a feed in the target format. Supports marketplace product listings, comparison shopping engine exports, and affiliate data feeds.

Scheduled Regeneration

ProductFeedsClient provides an onUpdateSchedule handler for configuring automatic feed regeneration. Feeds can be triggered on product changes or run on a fixed schedule.

Feed Lifecycle

GET /api/logistics/feeds lists all feeds with optional target filter. DELETE /api/logistics/feeds/[feedId] removes a feed. POST /api/logistics/feeds/[feedId] regenerates a single feed on demand.

Rental Fulfillment

8 rental surfaces. Shortages. Inspections. Damage reports.

The /logistics/rentals/ sub-routes provide 8 dedicated surfaces for rental-specific fulfillment. Each uses an operations client component scoped through OpsAreaGate for role-based access.

Order Board

OpsRentalsOrderBoardClient

Rental order queue with status tracking, sorted by due date and priority

Shortages

OpsRentalsShortagesClient

Items with insufficient stock for upcoming rental commitments

Returns

OpsRentalsReturnClient

Inbound rental returns with condition assessment and restocking workflow

Subrentals

OpsRentalsSubrentalsClient

Items sourced from third-party vendors to fill rental gaps

Inspections

OpsRentalsInspectionsClient

Pre-dispatch and post-return inspection checklists per item

Locations

OpsRentalsLocationsClient

Warehouse and staging locations for rental inventory

Damage Reports

OpsRentalsDamageClient

Damage documentation with photo evidence and cost assessment

Overdue

OpsRentalsOverdueClient

Rental items past their return date with escalation indicators

Platform & Integrations

Sync distributes. Inventory allocates. Equipment supplies.

Logistics connects to 4 sibling products. The sidebar is registry-driven with 3 access areas. OpsAreaGate controls route visibility per user role.

Sync

Marketplace channel auth and config managed through the marketplace orchestrator. OAuthFlowManager handles connect/callback flows. 16 marketplace connectors registered.

Inventory

InventorySyncService pushes stock levels to channels and pulls reserved quantities. Fulfillment orders check stock availability before entering the picking stage.

Equipment

Rental fulfillment surfaces check equipment availability. 8 rental sub-routes connect to operations client components for asset tracking during rental cycles.

Reputation

/api/logistics/webhooks/reputation fires delivery completion events. Reputation product uses these to trigger post-delivery review requests.

Registry-Driven Navigation

deriveLogisticsSidebarFromRegistry groups nav items by OpsArea (personal, staff, manager) and VerticalKey. Users see only routes matching their assigned area and active verticals.

OpsAreaGate Access Control

Every route wraps its client in OpsAreaGate, which checks the user's assigned area against the required access level before rendering. Three tiers: personal, staff, manager.

Settings Surface

Configure fulfillment rules, carrier preferences, warehouse zones, and channel integrations from /logistics/settings. Bottom nav also cross-links to the Inventory product.

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.
,,,,,,,

Logistics

Order fulfillment, shipping pipeline, and carrier management.

$1/mo

Part of Ops Suite

Wallet-debit

Add to Pro Shop