Fluent Commerce Logo
Docs
Sign In

UpsertInventoryQuantity

Rule

Changed on:

17 Feb 2025

Overview

Create or Update an Inventory Quantity.

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

Create or update an Inventory Quantity of Type {" + PROP_DEFAULT_TYPE + "} using Event attributes.

Accepts

  • INVENTORY_POSITION

Actions

  • This Rule produces a MutationAction that will create or update an Inventory Quantity

Rule parameters

Name

Type

Description

`defaultType`

`String`

The Fallback Type for an Inventory Quantity to be created/updated

Event attributes

Name

Type

Description

Required

`qty`

`Integer`

The quantity value of the Inventory Quantity

Yes

`condition`

`String`

The condition of the Inventory Quantity

No

`expectedOn`

`Date (ISO-8601 format)`

The date when the Inventory Quantity is expected to be available

No

`storageAreaRef`

`String`

The Reference of the storage area where the Inventory Quantity will be located

No

`inventoryPositionRef`

`String`

The associated Inventory Position Reference

Yes

`inventoryQuantity`

`InventoryQuantityUpdate`

The Object that contains the Inventory Quantity specific data. 

See the Sub-attributes below.

No

InventoryQuantityUpdate Object Sub-attributes

Name

Type

Description

Required

`ref`

`String`

The Reference of the Inventory Quantity

No

`qty`

`Integer`

The quantity value of the Inventory Quantity

No

`type`

`String`

The Type of the Inventory Quantity

No

`status`

`String`

The Status of the Inventory Quantity

No

`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.
  • This Rule throws an
    `InvalidAttributeTypeException`
    when the provided:
    • `qty`
      attribute value is not
      `Integer`
    • `expectedOn`
       attribute value type can not be identified
  • This Rule throws an
    `InvalidAttributeValueException`
    when the provided 
    `expectedOn`
     attribute value can not be parsed to a valid date (or null).

Configuration example

1{
2  "name": "[[account.id]].globalinventory.UpsertInventoryQuantity",
3  "props": {
4    "defaultType": "LAST_ON_HAND"
5  }
6}

Language: json

Detailed Technical Description

This Rule execution includes the following steps: 

  • Validate that:
    • The
      `defaultType`
      Rule parameter has been provided
    • The mandatory Event attributes have been provided:
      • `qty`
      • `inventoryPositionRef`
    • The
      `qty`
      attribute value is an
      `Integer`
  • Retrieve the Inventory Position and its Inventory Quantity(ies) based on the provided:
    • `inventoryPositionRef`
    • `inventoryQuantity.ref`

      This Sub-attribute is optional, so when it is not provided, the fallback logic will generate the Inventory Quantity Reference based on the following pattern:
      The Inventory Position Reference, a colon, and the Inventory Quantity Type. For example: 
      • If the
        `inventoryPositionRef`
        (Event attribute) is
        `PRDREF:LOCREF:DEFAULT`
         
      • And the Inventory Quantity Type is
        `LAST_ON_HAND`
        :
        • `inventoryQuantity.type`
          Sub-attribute (when provided)
        • Otherwise,
          `defaultType`
          (Rule parameter)
      • The generated Inventory Quantity Reference will be
        `PRDREF:LOCREF:DEFAULT:LAST_ON_HAND`
  • Execute a
    `MutationAction`
    to:
    • Update the Inventory Quantity with the provided attributes when it exists (i.e., was successfully retrieved by its Reference)
    • Otherwise, create a new Inventory Quantity with the provided attributes 

Version History

2025-02-18

v25.2.18

Refers to the Product Release Version.