Fluent Order Management System (OMS) implements a three-layer inventory architecture designed to provide real-time inventory accuracy and prevent order cancellations during high-traffic scenarios. This guide documents the platform's core concepts, integration patterns, and implementation details.
Key Benefits:
99.0% inventory accuracy with real-time stock management
<5% order cancellation rate (down from 50%)
35% reduction in cart abandonment
+$X revenue increase per flash sale
Business Value & Impact
Problem: Traditional Inventory Systems Fail During Peak Traffic
Metrics Before vs After
Metric
Before
After
Order Cancellation
50%
<5%
Cart abandonment
-
-35%
Revenue per flash sale
-
+$X
Industry Use Cases
Fashion: Seasonal variants, store transfers
Electronics: Launch protection, trade-ins
Luxury: Limited drops, VIP allocation
Key Concepts: IP, IQ, VP
To make sense of the architecture and flows described in this guide, it's important to understand the core inventory entities:
Inventory Position (IP): Represents the combination of a specific product and location. It is the foundational data point for calculating real-time stock levels using all associated inventory transactions (IQs).
Inventory Quantity (IQ): A detailed transaction ledger that records every stock-affecting event — such as LAST_ON_HAND (initial stock), SOFT_RESERVE (cart hold), RESERVED (confirmed order), and other types like RETURNED, SALE, CORRECTION AND DELTA. Each IQ is tied to a specific IP.
Virtual Position (VP): A channel-specific abstraction that calculates available-to-sell inventory by applying business rules such as buffer percentages or channel exclusions to the onHand value from the corresponding IP.
These entities are foundational to how Fluent OMS models inventory in real time for multiple channels and user journeys.
Core Architecture & Data Model
Fluent OMS uses a three-layer inventory architecture to ensure high availability and transactional accuracy.
Architecture Layers
Key Data Relationships:
IP → IQ (1:many): Each Inventory Position has multiple IQ transaction records. IQs reference their parent IP via `ipRef`
IP ↔ VP (loose coupling): Virtual Positions find their corresponding IP by matching `productRef + locationRef`, not via direct foreign key
IP is the foundation: All inventory calculations start from IP, which aggregates IQ records to calculate `onHand`
How IP, IQ, and VP Interact
The three entities work together in a layered approach to provide real-time, channel-specific inventory availability:
Data Flow Summary
IP aggregates IQ records: All ACTIVE status IQ transaction types (LAST_ON_HAND, SOFT_RESERVE, RESERVED, SALE, RETURNED, DELTA, CORRECTION) contribute to the onHand calculation
VP applies channel rules: Different channels can have different buffer strategies (Mobile 5%, Web 10%, Store 0%)
Real-time updates: New IQ records immediately affect all related VPs across all channels
Virtual Position Calculation Example
Step-by-step calculation for ACME Sneaker Black US9 at Main DC for ECOMMERCE channel:
Soft Reservation is a temporary hold on inventory when a customer adds items to cart. It prevents overselling by reserving stock in real time while ensuring inventory doesn't get locked up indefinitely.
Configurable Timer Mechanism
Timer Configuration:
Range: 5-15 minutes (configurable per client)
Flexibility: Can be configured per product, product category, or globally
Example: Flash sale items might use 5-10 minutes for urgency
Purpose: Automatically releases inventory from abandoned carts
Why the Timer is Essential:
Prevents inventory lockup: Without timer, abandoned carts would hold inventory forever
Maximizes availability: Releases inventory back to other customers quickly
Balances user experience: Gives customers enough time to checkout without being rushed
Handles edge cases: Browser crashes, network issues, or customer distraction
Soft Reservation Lifecycle
IQ Status Management & ATS Impact
Critical Detail: IP calculations only use `ACTIVE` status IQ records. When soft reservations convert to orders, the status changes maintain inventory accuracy.
Example: 2-Unit Cart → Order Flow
Initial State: IP has 45 onHand, VP shows 40 ATS
Step 1 - Cart Add:
Create: SOFT_RESERVE IQ (-2 units, ACTIVE status)
Result: IP onHand = 43, VP ATS = 38
Step 2 - Order Confirmation:
Update: SOFT_RESERVE IQ (-2 units, INACTIVE status)
Key Insight: ATS doesn't change during checkout because the same quantity moves from SOFT_RESERVE to RESERVED, both impacting availability equally.
API Comparison: virtualPositions vs fulfilmentOptions
Fluent OMS provides two key APIs for accessing inventory: `virtualPositions` and `fulfilmentOptions`. Choosing the right one depends on whether you're reading availability or actively managing reservations.
virtualPositions — Use When:
✅ You only need to display availability (no hold on inventory)
✅ Ideal for product listing pages, search results, and PDP views
❌ Cannot prevent oversells in high-velocity or concurrent scenarios
fulfilmentOptions — Use When:
✅ You need to reserve stock temporarily (soft reservation)
✅ Customer is in add-to-cart or checkout state
✅ Required for workflows where inventory accuracy directly affects conversion
Summary Table
Use Case
API to Use
Reason
Browse/search listings
`virtualPositions`
Lightweight read, no inventory impact
Add to Cart
`fulfilmentOptions`
Initiates soft reservation, prevents overselling
Begin Checkout
`fulfilmentOptions`
Ensures held inventory for this customer
Confirm Order
`fulfilmentOptions`
Converts soft reservation to firm allocation
Integration Flow Examples
1. `virtualPositions` Query (Read-Only)
Used for availability display and product search.
2. `fulfilmentOptions` Mutation (Transactional)
Used during checkout and reservation creation. FO is an extensible workflow - clients can customize logic including SOFT_RESERVE behavior.
Real-World Example: Flash Sale Success Story
Flash Sale Timeline
Timer Logic Explained:
Each customer gets exactly 15 minutes from when they add to cart:
Customer A: Adds at 10:15:00 → Timer expires at 10:30:00
Customer B: Adds at 10:15:05 → Timer expires at 10:30:05
Customer C: Adds at 10:15:10 → Timer expires at 10:30:10
Different expiry times are correct - each customer gets the same duration, but starting from their individual cart add time.
Visual Story: Race for the Last Item
Final Results:
3 soft reservations created simultaneously
1 successful order (Customer A won)
2 timer expirations (B and C were too slow)
0 oversells - inventory accuracy maintained
100% customer satisfaction for the successful buyer
Key Insights:
Customer A was fastest to checkout (1 minute) and secured 1 item
Customers B and C lost due to slow checkout (15+ minutes) - their items went back to inventory
3 items were available - all got soft reservations, but only fastest customer converted
Soft reservation prevented overselling while allowing fair competition
Demand Signals & Analytics
Key Architecture Note:
FulfilmentOption Ref Creation: The calling layer (your application) owns the `ref` creation for FulfilmentOptions. This design enables:
Easy Analytics: Use the same ref to query FulfilmentOption status and analytics data
Seamless Order Integration: Include the FO ref in order payload during checkout
Automated Cleanup: Efficiently deactivate soft reserve IQ types using the ref
Best Practice: Generate meaningful refs (e.g., "cart-{cartId}-{timestamp}") for easier tracking and debugging.
Platform Scope & Responsibility:
Fluent OMS provides the raw data signals through FulfilmentOptions calls, order payloads, and fulfillment plan responses. The platform captures and stores:
FulfilmentOption call patterns and responses
Order correlations via FO refs
Stock availability and fulfillment plan data
Timer events and soft reservation lifecycle
The specific analytics, inferences, and business intelligence engines are outside the scope of Fluent OMS. These are typically implemented by:
Client-side analytics platforms (e.g., Adobe Analytics, Google Analytics)
Business intelligence tools (e.g., Tableau, Power BI)
Soft Reservation: Create FulfilmentOption with client-owned ref
Data Capture: Fluent OMS logs FO call, fulfillment plans, and inventory events
Order Checkout: Include FO ref in order payload
Correlation Data: Fluent OMS provides FO ref → Order mapping
Cleanup: Deactivate soft reserve IQ using FO ref
Analytics Implementation (Client Scope):
Query Fluent OMS data via APIs
Build conversion funnels using FO ref correlation
Implement ML models for demand forecasting
Trigger marketing campaigns based on abandonment patterns
Fluent OMS provides the foundational data signals - you build the intelligence layer!
KPIs & Technical Metrics
Important Note:
The metrics below are indicative figures based on typical implementations. Actual KPIs and technical performance metrics vary significantly depending on:
Client-specific requirements and business models
Implementation complexity and customization level
Infrastructure setup and hosting environment
Transaction volume and peak load patterns
SLA agreements and performance targets
Contact your Fluent OMS representative for client-specific performance benchmarks and SLA commitments.
Disclaimer: All information and resources found on community.fluentcommerce.com are based on the opinions of the author (unless otherwise noted). All information is intended to inspire and motivate well thought through technical decisions inline with Fluent Commerce recommended practices and principles.