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.

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