Fluent Commerce Logo
Docs

LoadInventoryPositionData

Rule

Changed on:

12 Aug 2025

Overview

Send an inline event including the `inventoryPositionExists` flag indicating whether the corresponding Inventory Position exists or not.This Rule is a simplified version of the `LoadInventoryPosition` rule, excluding the logic for:
  • Retrieving Inventory Quantity data of type `LAST_ON_HAND` in status `ACTIVE` or `CREATED`
  • Setting and forwarding the `inventoryQuantityExists` flag (true or false)
Plugin NameInventory Reference Module
Namespace[[account.id]].globalinventory
The Inventory Reference Module is the foundation for inventory related implementations. It provides reference Workflows for inventory ingestion and processing. Extensible by design, use this Module as a base to build a solution to the needs of your customers.The Inventory Module includes the following areas:
  • Product Catalogue workflow
  • Inventory Catalogue workflow
  • Control Group workflow
  • Virtual Catalogue workflow

UI Description

Forward event {eventName} (inline event) with the attribute `inventoryPositionExists` set to true or false if the inventory position exists or not respectively.

Accepts

  • INVENTORY_CATALOGUE

Actions

Rule parameters

NameTypeDescription
`eventName``String`The name of the event to be triggered

Event attributes

NameTypeDescriptionRequired?
`inventoryPosition``InventoryUpdate`A single item of the Inventory Batch request.This Object contains the Inventory Position specific data. See the Sub-attributes below.Yes
InventoryUpdate Object Sub-attributes
NameTypeDescriptionRequired
`ref``String`The Reference of the Inventory PositionNo
`type``String`The Type of the Inventory Position.NoUnused because the Inventory Position Type is inherited from the Inventory Catalog Sub Type.
`productRef``String`The Reference of the Variant Product associated to the Inventory PositionYes
`locationRef``String`The Reference of the  Location associated to the Inventory PositionYes
`qty``Integer`The quantityYes
`correctedQty``Integer`The quantity value of the Inventory Quantity of the `CORRECTED` TypeNo, unused
`inventoryQuantity``InventoryQuantityUpdate`The Object that contains the Inventory Quantity specific data. See the Sub-attributes below.No
InventoryQuantityUpdate Object Sub-attributes
NameTypeDescriptionRequired
`ref``String`The Reference of the Inventory QuantityNo
`qty``Integer`The quantity value of the Inventory QuantityNo
`type``String`The Type of the Inventory QuantityNo
`status``String`The Status of the Inventory QuantityNo
`attributes``Map<String, Object>`The following attributes are supported:
  • `condition`
  • `expectedOn`
  • `storageAreaRef`
No

Exceptions

  • This Rule throws a `PropertyNotFoundException` when the Rule parameter(s) is not provided.
  • This Rule throws an `EventAttributeNotFoundException` when the required Event attribute(s) is not provided.

Configuration example

1{
2  "name": "[[account.id]].globalinventory.LoadInventoryPosition",
3  "props": {
4    "eventName": "CheckInventoryPositionExists"
5  }
6}

Detailed Technical Description

This Rule execution includes the following steps:1. Validate that:
  • The `eventName` Rule parameter has been provided
  • The mandatory Event attributes have been provided:
    • `inventoryPosition` and its Sub-attributes:
      • `productRef`
      • `locationRef`
      • `qty`
2. Load the Inventory Position in one GraphQL API request based on the following:
  • Inventory Position Reference
    The value is taken from the `inventoryPosition.ref` Sub-attribute.
  • Inventory Catalog Reference
    The value is taken from the incoming event `rootEntityRef`
3. Add the retrieved information into the event attributes and produce a `SendEventAction` with the event `{eventName}`:
Event Attribute KeyEvent Attribute Value
`type`
  • `entitySubtype` (from the incoming event attributes)
  • If undefined (null), the value is set to `DEFAULT`
`ref``inventoryPosition.ref` (from the incoming event attributes)
`qty``inventoryPosition.qty` (from the incoming event attributes)
`productRef``inventoryPosition.productRef` (from the incoming event attributes)
`locationRef``inventoryPosition.locationRef` (from the incoming event attributes)
`correctedQty``inventoryPosition.correctedQty` (from the incoming event attributes) - UNUSED
`inventoryPositionStatus`
  • `inventoryPosition.status` from the GraphQL query*
  • Otherwise, the value is set to `CREATED`
`inventoryPositionRef`
  • `inventoryPosition.ref` from the GraphQL query*
  • Otherwise, the value is generated based on the following pattern: `<productRef>:<locationRef>:<type>`.
    For example:
    • If the `productRef` (Event attribute) is `PRDREF`
    • And the `locationRef` (Event attribute) is `LOCREF`
    • And the Inventory Position Type is `DEFAULT`:
      • The value is taken from the incoming event `entitySubtype`
      • If the `entitySubtype` is undefined (null), the value is set to `DEFAULT`
    • The generated Inventory Position Reference will be `PRDREF:LOCREF:DEFAULT`
`inventoryPositionOnHand`
  • `inventoryPosition.onHand` from the GraphQL query*
  • Otherwise, the value is set to 0
`inventoryPositionExists`
  • TRUE if the Inventory Position exists 
  • FALSE if the Inventory Position doesn't exist
*The first option will occur when the Inventory Position already exists; otherwise, the second option will occur.

Version History

2025-02-18

v25.2.18

Refers to the Product Release Version.