Fluent Commerce Logo
Docs
Sign In

Inventory Quantity Types

Essential knowledge

Authors:

Esma Tuzovic, Cille Schliebitz, Anita Gu

Changed on:

10 Jan 2025

Overview

This course covers how the Inventory Position On Hand quantity is calculated from the different Inventory Quantity types.

Key points

  • The Inventory Position On Hand quantity is the sum of the LAST_ON_HAND quantity and any active RESERVED, SALE, CORRECTED and DELTA quantities.
  • Inventory Positions are deactivated and not considered during availability calls or order sourcing if the location or the product is inactive. 
  • The Inventory Catalog workflow considers both external events (resulting from third-party systems) and internal events (resulting from workflow updates) to calculate the On Hand quantities. 
Inventory Positions Stock on hand (SOH) Calculation

If either the corresponding Product (Standard or Variant) or Location for the Inventory Position is INACTIVE then the status of the Inventory Position will also become INACTIVE, meaning it won't be considered during availability calls or order sourcing.

Only ACTIVE Inventory Quantities will be considered in the onHand calculation (e.g., RESERVE, CORRECTION, DELTA, SALE).

No alt provided
Inventory Quantity Types

RESERVED

When a fulfillment is created, an inventory reservation event is sent from the Order workflow to the Inventory Catalog workflow. Assuming there is enough available inventory, the Inventory Catalog workflow creates a  RESERVED inventory quantity against a specific Inventory Position (PRODUCT/LOCATION/QTY) for the quantity requested by the Fulfillment. The Inventory Quantity TYPE will be RESERVED, and the Fulfillment ID is included as part of the Inventory Quantity reference.

The Inventory Catalog Workflow then decrements the Inventory Position On-Hand value by the quantity that has been reserved. The ATS (available to sell) quantity for the corresponding Virtual Catalogs is also recalculated based on the new On Hand value.

RESERVED Inventory Quantity Status updates:

  • Created in ACTIVE status following an event from the Order workflows when an order is sourced and fulfillment(s) have been created.
  • Changed to INACTIVE status when the Fulfillment to which the RESERVED Inventory Quantity applies is fulfilled or cancelled

SALE

When the Fulfillment items have been picked at a location, the Order Workflow will receive a pick confirm event notifying which products and quantities were successfully picked. If all of the items were picked successfully, the Order workflow changes the status of the RESERVED inventory quantity for the fulfillment to INACTIVE. A new Inventory Quantity record of type SALE is then created for the same quantity as the reservation. The inventory position On Hand quantity will remain the same, but the TYPE will change to acknowledge that the pick was successfully completed and the fulfillment item has been fulfilled.

The pick-confirm event can be sent to Fluent Order Management from different sources. If the pick is done by a warehouse (or any other external system), this will be sent via an event posted to the Fluent Event API. If this is an in-store pick made via the Fluent Store web app, the pick-confirm user action in Fluent Store will trigger the event to update the status of the fulfillment, which will then update the Inventory Catalog workflow. 

The SALE record quantity will always represent the number of items successfully picked or decremented from the inventory source system.

SALE Inventory Quantity Status updates:

  • Created in ACTIVE Status when the Variant Product in the corresponding fulfillment is successfully fulfilled (e.g., picked).
  • Changed to INACTIVE status when an Inventory Batch is processed for the corresponding Inventory Position. 

CORRECTION

The CORRECTION Inventory Quantity type is used to manage exception processes and capture any quantities of inventory that have been short-picked. This could happen due to the fulfillment location being unable to locate the stock or the stock being damaged. We want to acknowledge that the inventory is neither reserved nor sold, but we also want to ensure that the ATS is decremented to reflect that this stock is no longer available.

CORRECTION Inventory Quantity Status updates:

  • Created in ACTIVE status when the Variant Product in the corresponding fulfillment is rejected.
  • Changed to INACTIVE status when the correctedQty of the corresponding Inventory Position is set to zero in an Inventory Batch. 

DELTA

An inventory quantity of type DELTA is created when the Inventory Catalog workflow receives a delta inventory update via the Event API. This typically represents a stock movement by any offline channel that is sent to Fluent in real-time (e.g., an item a store has just sold). Fluent Order Management will update the On Hand value for the corresponding inventory position based on the delta value submitted. Assuming the delta event quantity = -3, the inventory position On Hand quantity will be decremented by 3. 

Once the Inventory Catalog is updated with this change, events will be sent to one (or more) Virtual Catalogs that have the corresponding virtual position, and the ATS quantity for the virtual position will also be decremented by 3.

DELTA Inventory Quantity Status updates:

  • Created in ACTIVE status when a DELTA event is processed. 
  • Changed to INACTIVE status when an Inventory Batch is processed for the corresponding Inventory Position.
Inventory Updates Workflow
No alt provided

Inventory Catalog Workflow updates the inventory positions within it based on the information being received into the workflow and uses that to calculate the stock on hand.

  • LAST_ON_HAND or DELTA quantities from inventory source systems.
  • Updates from the Product Catalog for any active or inactive products
  • Updates from the Order workflow for reservations, sales and corrections for any inflight orders
Inventory Catalog Data Model
No alt provided

Copyright © 2025 Fluent Retail Pty Ltd (trading as Fluent Commerce). All rights reserved. No materials on this docs.fluentcommerce.com site may be used in any way and/or for any purpose without prior written authorisation from Fluent Commerce. Current customers and partners shall use these materials strictly in accordance with the terms and conditions of their written agreements with Fluent Commerce or its affiliates.

Fluent Logo