Fluent Commerce Logo
Docs
Sign In

Inventory Quantity Types

Essential knowledge

Authors:

Esma Tuzovic, Cille Schliebitz, Anita Gu

Changed on:

20 Dec 2024

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 Catalogue workflow considers both external events (resulting from third 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 (i.e. RESERVE, CORRECTION, DELTA, SALE).

No alt provided

Inventory Quantity Types

RESERVED

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

The Inventory Catalogue 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 Catalogues 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 fulfilment(s) have been created.
  • Changed to INACTIVE status when the Fulfilment to which the RESERVED Inventory Quantity applies is fulfilled or cancelled


SALE

When the Fulfilment 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 fulfilment to INACTIVE, and creates a new Inventory Quantity record of type SALE 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 fulfilment item has been fulfilled.

The pick confirm event can be sent into 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 fulfilment, which will then update the Inventory Catalogue 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 fulfilment is successfully fulfilled (e.g. picked).
  • Changed to INACTIVE status when an Inventory Batch is processed for the corresponding Inventory Position.  Note: DELTA inventory events have no effect.


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 fulfilment location not being able 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 make sure that the ATS (available to sell) 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 fulfilment is rejected.
  • Changed to INACTIVE status when the correctedQty of the corresponding Inventory Position is set to zero in an Inventory Batch. Note: DELTA inventory events have no effect.


DELTA

An inventory quantity of type DELTA is created when the Inventory Catalogue 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, for example 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.  For example if the delta event quantity = -3 the inventory position On Hand quantity will be decremented by 3. 

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

DELTA Inventory Quantity Status updates:

  • Created in ACTIVE status when a DELTA event is processed. Note: a new Inventory Quantity is created each time a subsequent delta is processed. 
  • Changed to INACTIVE status when an Inventory Batch is processed for the corresponding Inventory Position.


Inventory Updates Workflow
No alt provided

Inventory Catalogue 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 Catalogue for any active or inactive products
  • Updates from the Order workflow for reservations, sales and corrections for any inflight orders



Inventory Catalogue Data Model
No alt provided

Copyright © 2024 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