Fluent Commerce Logo
Docs

How to Submit Inventory Batches

Topic

Author:

Fluent Commerce

Changed on:

12 Feb 2025

Overview

Pre-requisites:This technical guide provides detailed steps on how you can submit Inventory Batches to the Fluent platform.


Submit Inventory Batches With Attributes

Authors:

Girish Padmanabha, Kirill Gaiduk

Changed on:

25 Mar 2026

Key Points

  • Create inventory batches using the Job API 
  • Sample inventory batch request 
  • Inventory batch processing details

Steps

Send Enhanced Inventory Attributes in Your Payloads

Authors:

Girish Padmanabha, Kirill Gaiduk

Changed on:

23 Mar 2026

Overview

Inventory payloads can include additional Inventory Quantity attributes to capture richer stock context.This article explains how to use the `attributes` object to include additional data in inventory payloads. It supports both simple key-value pairs and custom JSON structures to meet diverse business requirements - whether you’re:
  • managing detailed product information
  • optimizing warehouse processes
  • or integrating with custom workflows
The Inventory Reference Module supports a set of reference attributes that are persisted automatically, while custom attributes provide additional flexibility.

Key points

  • Prerequisites: To fully leverage the extended attributes functionality within the inventory payload, ensure that you are using the Inventory Reference Module v2.3.0 or later
  • Flexible attribute structure: The `attributes` object supports any combination of key-value pairs, including complex JSON structures and arrays. This flexibility allows you to customize the data sent in your inventory payloads to meet specific business needs
  • Use reference attributes first: Certain key attributes (such as `associationType`, `associationRef`, `parentRef`, `expectedOn`, `expiresOn`, `condition`, `storageAreaRef`, `supplier`, `manufacturer`, `manufacturerBatchNumber`, `countryOfOrigin`, and `channel`) will be directly updated in the Inventory Quantity associated with the incoming record, facilitating seamless integration with existing fields
  • Use segment fields for flexible key-value extensions: `segment1`, `segment2`, and `segment3` provide flexibility for additional flat classification data without introducing new custom attributes
  • Custom attribute availability: Any custom attributes that you include in the `attributes` object will be available in workflows via `inventoryPosition.inventoryQuantity.attributes.<fieldName>`. This enables you to incorporate custom data into rule-based processes or other logic tailored to your business requirements

Attribute Strategy

Inventory payloads can include multiple types of attributes depending on the business scenario.When extending inventory data, follow this general approach:This approach ensures compatibility with reference workflows and reduces the need for custom processing logic.

Reference Attributes

These attributes represent common inventory concepts already supported by the reference inventory data model and workflows.

Specific Segmentation Attributes

When designing inventory payloads, start with the dedicated Inventory Quantity attributes supported by the Inventory Reference Module.These attributes are automatically persisted by the reference `UpsertInventoryQuantity` rule, meaning they can be stored and used in workflows without additional mapping logic. Using these attributes ensures that payloads remain aligned with the reference inventory data model and supports common inventory scenarios such as:

Flexible Segmentation Attributes

For additional flat classification data that does not correspond to the existing specific attributes, use the segment fields:
  • `segment1`
  • `segment2`
  • `segment3`

Recommended Attributes Table

The following attributes are integrated into the platform’s inventory management workflows. This means that these fields will be directly updated in the Inventory Quantity associated with the incoming record, ensuring seamless operation and enhanced performance.
Attribute keyDescriptionExampleUse case(s)Notes
`associationType`Defines the type of operational or business entity linked to the Inventory Quantity`PURCHASE_ORDER`
  • Future inventory
  • Reservation linkage
  • Operational traceability
  • Use together with `associationRef`
  • Common examples include purchase orders, in-transit shipments, and fulfillment reservations
`associationRef`Identifies the specific operational or business record linked to the Inventory Quantity`POREF1`
  • Linking stock to a specific:
    • purchase order
    • ASN
    • in-transit shipment
    • or fulfillment record
  • Improving procurement tracking
  • Enhancing order accuracy
Use with `associationType` to anchor the Inventory Quantity to an external business event or document
`parentRef`Links the Inventory Quantity to a parent Inventory Quantity to model a hierarchy`PRDREF1:LOCREF1:DEFAULT:ON_ORDER`
  • Future inventory hierarchies (`PURCHASE_ORDER` ->  `IN_TRANSIT`)
  • Reservation anchoring
  • Segmented stock trees
Useful when modeling derived inventory states such as reservations under a specific parent quantity
`expectedOn`Indicates when the Inventory Quantity is expected to become available`2026-05-01T00:00:00Z`
  • Promise and reserve stock before it arrives
  • Planning for space allocation and staffing
  • Ensuring timely product availability
  • Date (ISO-8601 format)
  • Use for future inventory, not forecasts
`expiresOn`Indicates when the Inventory Quantity expires or becomes ineligible for allocation`2026-12-31T23:59:59Z`
  • Managing stock rotation
  • Reducing waste
  • Ensuring compliance with health and safety regulations
  • Date (ISO-8601 format)
  • Supports expiry-aware allocation patterns such as First Expired, First Out (FEFO)
`condition`Describes the physical or operational condition of the inventory`NEW`
  • Physical stock partitioning by condition or lifecycle constraints
  • Enabling categorization of items for different sales channels allocation
Common examples include new, refurbished, and damaged
`storageAreaRef`Identifies the storage area where the Inventory Quantity is held within a location`LOCREF1:SAREF1`
  • Optimizing space utilization
  • Reducing retrieval time
  • Improving warehouse efficiency
Useful for representing storage-specific inventory context inside a single location
`supplier`Identifies the supplier associated with the Inventory Quantity`SUPREF1`
  • Tracking supplier performance
  • Managing vendor relationships
  • Optimizing supply chain efficiency
Enables supplier-level inventory segmentation and sourcing decisions across inventory pools
`manufacturer`Identifies the manufacturer associated with the Inventory Quantity`MANREF1`Manufacturer traceability across segmented inventory poolsOften used together with `manufacturerBatchNumber`
`manufacturerBatchNumber`Captures the manufacturer batch identifier for the Inventory Quantity`MBN1`
  • Tracking production details
  • Quality control
  • Recall management
Supports batch-level traceability and quality isolation scenarios
`countryOfOrigin`Identifies the country where the inventory was produced or sourced`AU`
  • Compliance with import/export regulations
  • Supporting marketing strategies emphasizing local products
Supports compliance, regulatory, and market-eligibility sourcing scenarios
`channel`Identifies the sales channel associated with the Inventory Quantity`ONLINE`Allocate and manage stock by sales channelChannel differentiation is primarily expressed through reservations and customer-facing availability views
`segment1-3`Flexible segmentation fields for additional inventory classification`PROMO`
Additional physical or commercial segmentationsUse for flat extensions when a dedicated supported attribute does not fit the business meaning

Custom Attributes

In addition to the reference-supported attributes, inventory payloads can include custom attributes inside the `attributes` object.Custom attributes are useful when the payload needs to represent:
  • nested JSON structures
  • arrays
  • complex business-specific metadata
These attributes remain available in workflows and can be accessed using `inventoryPosition.inventoryQuantity.attributes.<fieldName>`. However, processing these attributes typically requires custom workflow logic or rules, as they are not automatically mapped by the reference `UpsertInventoryQuantity` rule.This allows you to incorporate your custom data into rule-based processes or other logic tailored to your specific business scenarios.

Naming Guidance

When designing new inventory payloads, prefer the reference-supported attribute keys whenever they match your business meaning. For example:
PreferInstead of
`expiresOn``expiryDate`
`supplier``supplierId`
`manufacturerBatchNumber`custom batch identifiers
`segment1-3`new flat custom attributes
Using standard attribute names improves compatibility with reference workflows and simplifies inventory data processing.

Batch Pre-Processing and Attribute-Only Updates

Batch Pre-Processing (BPP) determines whether a record has changed by comparing the Inventory Quantity's identity, qty, optional status, and transient inventory conditions. See more details in the Inventory Batch Pre-Processing: Technical Guide with ExamplesChanges to other Inventory Quantity attributes (e.g., `associationRef`, `parentRef`, `expectedOn`, `expiresOn`, `condition,` `segment1-3`) are not evaluated as part of this comparison. If an update changes only these attributes and does not modify `qty` or `status`, the record may be treated as unchanged and filtered from processing.