Fluent Commerce Logo
Community
No alt text provided

Fluent OMS: Inventory Accuracy & Soft Reservation Guide

Published: 29-06-2025

25 min read

#Json

Overview

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

No alt provided
Metrics Before vs After

Metric

Before

After

Order Cancellation

50%

<5%

Cart abandonment

-

-35%

Revenue per flash sale

-

+$X

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
No alt provided
How IP, IQ, and VP Interact

The three entities work together in a layered approach to provide real-time, channel-specific inventory availability:

No alt provided
Virtual Position Calculation Example

Step-by-step calculation for ACME Sneaker Black US9 at Main DC for ECOMMERCE channel:

No alt provided
Data Model Examples
Inventory Position (IP)

The foundational record for a product at a specific location

1{
2  "ref": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT",
3  "productRef": "ACME_SNEAKER_BLK_US9",
4  "locationRef": "MAIN_DC",
5  "onHand": 45
6}

Language: json

Name: The foundational record for a product at a specific location

Description:

The foundational record for a product at a specific location

Inventory Quantity (IQ) Records

Transaction ledger showing all stock-affecting events

1[
2  {
3    "ipRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT",
4    "iqRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT:LAST_ON_HAND",
5    "type": "LAST_ON_HAND",
6    "quantity": 50,
7    "status": "ACTIVE"
8  },
9  {
10    "ipRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT",
11    "iqRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT:SOFT_RESERVE:FO_1234",
12    "type": "SOFT_RESERVE",
13    "quantity": -2,
14    "status": "ACTIVE"
15  },
16  {
17    "ipRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT",
18    "iqRef": "ACME_SNEAKER_BLK_US9:MAIN_DC:DEFAULT:RESERVED:FUL_456",
19    "type": "RESERVED",
20    "quantity": -3,
21    "status": "ACTIVE"
22  }
23]

Language: json

Name: Transaction ledger showing all stock-affecting events

Description:

Transaction ledger showing all stock-affecting events

Virtual Position (VP)

Channel-specific availability calculation

1{
2  "ref": "ACME_SNEAKER_BLK_US9:MAIN_DC:ECOMMERCE",
3  "productRef": "ACME_SNEAKER_BLK_US9",
4  "locationRef": "MAIN_DC",
5  "quantity": 40
6}

Language: json

Name: Channel-specific availability calculation

Description:

Channel-specific availability calculation

VP Business Rules (applied during calculation):

  • Channel: ECOMMERCE
  • Buffer Strategy: 10% PERCENTAGE buffer
  • Source onHand: 45 units (from matching IP)
  • Buffer Calculation: 45 × 10% = 4.5 → 5 units (rounded up)
  • Final ATS: 45 - 5 = 40 unit
Data Relationship Summary

Entity

Purpose

Key Fields

Calculation

IP

Product + Location base

`onHand`
,
`productRef`
,
`locationRef`

`SUM(ACTIVE status IQ records)`

IQ

Transaction records

`type`
,
`quantity`
,
`status`

Individual stock events

VP

Channel availability

`channel`
,
`buffer`
,
`availableToSell`

`IP.onHand - buffer`

Soft Reservation Deep Dive

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.

Soft Reservation Lifecycle
No alt provided
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.

No alt provided

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.

No alt provided

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.

No alt provided
2.
`fulfilmentOptions`
Mutation (Transactional)

Used during checkout and reservation creation. FO is an extensible workflow - clients can customize logic including SOFT_RESERVE behavior.

No alt provided

Real-World Example: Flash Sale Success Story

Flash Sale Timeline
No alt provided
Visual Story: Race for the Last Item
No alt provided

Demand Signals & Analytics

Business Intelligence Flow

No alt provided

KPIs & Technical Metrics

Metric

Indicative Value

Inventory Accuracy

99.0%

Fulfillment SLA

99.5%

Uptime

99.99%

API Response Time

<200ms

Cart Abandonment Drop

35%

Support Ticket Reduction

65%

Girish Padmanabha

Girish Padmanabha

Product at Fluent Commerce

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.

Copyright © 2025 Fluent Commerce

Fluent Logo