API Reference
About Inventory
Products in Omnium are enriched with inventory items. The inventory item carries information about:
- Physical inventory
- Reserved inventory
- Available inventory
- Inventory location
An inventory item identifier/key is created from the variant and warehouse code. The warehouse code is the ID of the store/warehouse where the inventory is located.
Creating Inventory Items
- Add inventory in the GUI
- Import/export inventory items in the GUI
- Import through API
Inventory Item Model
For details, refer to the Omnium Inventory Model.
Inventory Sample
Inventory items for the store OmniumBikeShop could look like this:
In the Omnium GUI, the inventory item can be displayed as shown below:

Create Inventory Items
Add inventory items to Omnium by posting a list of OmniumInventoryItem to the add many endpoint. If the item exists, it will be overridden by the object posted to the endpoint.
For more details, visit the Create inventory items documentation.
Get Inventory Item
Get Single Inventory Item
Inventory items are fetched via a GET request to the inventory endpoint.
An optional parameter for warehouse IDs is available. If warehouseIds is empty, all inventory items for the SKU will be returned.
For more details, visit the Get inventory item documentation.
Search Inventory Items
Sample request for a delta query:
Sample request for inventory for a specific market:
Sample response if the number of inventory items exceeds 1000 (totalHits):
For more details, visit the Search inventory items documentation.
Update Inventory Item
To update an inventory item, send a PUT request with the inventory object to the inventory update endpoint.
For more details, visit the Update inventory item documentation.
Update Multiple Inventory Items
To update multiple inventory items, send a PUT request to the inventory update many endpoint.
Delete Inventory Item
To delete an inventory item, send a DELETE request to the inventory endpoint:
For more details, visit the Delete inventory item documentation.
More Inventory Information
ATP Values
Available to Promise (ATP) refers to the available quantities of the requested product and its expected delivery due dates.
For more details, visit the ATP model documentation.
API Integrations – Best Practices
Updating Inventory in Omnium
-
Use the
InventoryUpdateManyendpoint.- Automatically creates inventory items if they don't already exist.
- Skips updates for unchanged items to maintain high performance, even with a large amount of inventory items.
- Will only create inventory transactions for actual changes, so the transaction list stays clean and relevant.
-
Use batch sizes of 1000 for stability and performance.
-
If reservations are managed externally (i.e., outside Omnium):
- Set
isReservedInventoryOverwritten = truein yourUpdateManyrequest. - This overwrites reservation values on the items.
- If left
nullorfalse, existing reservations remain unchanged.
- Set
-
Avoid creating zero-value inventory items:
- This reduces the number of inventory items and improves performance.
- Treat missing inventory items as having a value of zero.
Fetching Inventory from Omnium
-
Full Sync - Use the
InventoryScrollendpoint:- Intended only for occasional full synchronizations.
- Note: It is a resource-heavy operation.
-
Delta Updates - Use the
InventorySearchendpoint:- Set the
LastModifieddate parameter to fetch only changed data. - Ideal for frequent, lightweight sync operations.
- Set
IsBatchesExcluded = truewhen batch data is not required.- This significantly reduces the payload size and improves performance. (Learn more about FIFO)
- Set the
Inventory handling in product search API
Overview
The Product Search API returns product data, including an inventory field. This field is not queried from live inventory data—it is a snapshot stored on the product itself.
Architecture
Omnium stores inventory and products separately:
- Inventory data — The source of truth, updated in real-time via the Inventory API
- Products — Each product has an
inventoryfield that holds a copy of relevant inventory data
The Product Search API returns product data, including the inventory field. To keep this field in sync with the actual inventory data, a scheduled task periodically copies changes.
Synchronization
The ProductInventoryStatusScheduledTask synchronizes inventory data to products. This is a delta task that processes changes since its last run.
How it works:
- On each run, the task queries for inventory changes since the previous execution
- It updates the
inventoryfield on affected products - It refreshes the product search to make changes visible
Data freshness is determined by the task schedule. For example:
- Schedule
*/5 * * * *(every 5 minutes) → inventory data on products can be up to 5 minutes stale - Schedule
*/1 * * * *(every minute) → inventory data on products can be up to 1 minute stale
The task processes only changes since the last run, so execution time depends on the volume of inventory changes. Initial runs or periods with high inventory activity will take longer. See the task configuration documentation for setup details.
Additionally, the CalculateAndUpdateProductInventory workflow step can be used in order workflows to immediately update product inventory for all SKUs in an order.
Behavior in Search Results
- If a product has inventory in the queried market, the
inventoryfield will be included in the response. - After an inventory change, the updated data will not appear in Product Search results until the synchronization runs (scheduled task or workflow step).
- New products are automatically initialized with inventory status when the task runs.
- New warehouses, or changes to existing warehouses are also handled automatically in the scheduled task
Example request
Request
Response examples
Case 1: Inventory Exists
Case 2: No inventory (Field absent)
Important notes
- The
inventoryfield will not be present if the product has no inventory. - If inventory was recently updated, the scheduled task may not have processed the changes yet.
