UpsertInventoryQuantity
Rule
Changed on:
19 Mar 2026
Overview
Create or Update an Inventory Quantity.| Plugin Name | Inventory Reference Module |
|---|---|
| Namespace | [[account.id]].globalinventory |
- 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 |
`inventoryPositionRef` | `String` | The associated Inventory Position Reference | Yes |
`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 |
`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 QuantityNote: `inventoryQuantity.status` is accepted in the payload but is currently not used by this rule:
| No |
`attributes` | `Map<String, Object>` | The following attributes are supported:
| 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`expiresOn`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)`expiresOn`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}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`
- The
- Build the base Inventory Quantity using the provided:
`inventoryPositionRef``qty``condition``expectedOn``storageAreaRef``defaultType`
- (When
`inventoryQuantity.ref`is not provided) Generate the Inventory Quantity Reference using 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 value, when provided- Otherwise,
`defaultType`Rule parameter value
- The generated Inventory Quantity Reference will be:
`PRDREF:LOCREF:DEFAULT:LAST_ON_HAND`
- If the
- Apply
`inventoryQuantity`overrides when the`inventoryQuantity`Event attribute is provided:`inventoryQuantity.ref``inventoryQuantity.type``inventoryQuantity.qty`
- Apply supported
`inventoryQuantity.attributes`values:`associationType``associationRef``parentRef``expectedOn``expiresOn``condition``storageAreaRef``supplier``manufacturer``manufacturerBatchNumber``countryOfOrigin``channel``segment1``segment2``segment3`
- Retrieve the Inventory Position and its Inventory Quantity(ies) based on the provided:
- Inventory Catalog Reference
- Inventory Position Reference
- Inventory Quantity Reference
- Execute a
`MutationAction`to:- Update the Inventory Quantity with the provided attributes when it exists
- Otherwise, create a new Inventory Quantity with the provided attributes
Version History
See previous versions
2025-02-18