Configuration

Learn how to configure inventory management settings in Omnium. This guide covers inventory tracking, reservations, ATP providers, inventory valuation, and warehouse allocation.

Inventory management

Omnium provides comprehensive inventory management capabilities that can serve as the primary inventory source for smaller operations or integrate with external ERP/WMS systems for larger deployments. The inventory configuration controls how stock is tracked, reserved, valued, and allocated across warehouses and sales channels.

Core settings

These settings control the fundamental inventory management behavior.

PropertyTypeDefaultDescription
IsEnabledboolfalseMaster switch for the inventory management system. When disabled, all inventory-related functionality is turned off.
IsWriteEnabledboolfalseControls whether inventory modification operations (reduce, increase, update) are allowed. When disabled, inventory becomes read-only and cannot be modified through orders or manual adjustments.
IsReservationWriteEnabledboolfalseAllows inventory reservations to be created independently of the general write setting. Enable this when you want to track reservations but prevent other inventory modifications.

Sample

"InventoryManagement": {
  "IsEnabled": true,
  "IsWriteEnabled": true,
  "IsReservationWriteEnabled": true
}

Inventory calculation

These settings control how available inventory is calculated and displayed.

PropertyTypeDefaultDescription
IsAvailableInventoryIgnoringReservedboolfalseWhen enabled, available inventory equals total inventory (reservations are ignored). When disabled, available inventory equals total minus reserved quantity. Enable this if reservations are managed externally.
IsProductInventoryWarehouseSpecificboolfalseWhen enabled, inventory is tracked and displayed per warehouse. When disabled, inventory is aggregated across all warehouses for display purposes.

Sample

"InventoryManagement": {
  "IsAvailableInventoryIgnoringReserved": false,
  "IsProductInventoryWarehouseSpecific": true
}

Reservation processing

These settings control how inventory reservations are processed when orders are created.

PropertyTypeDefaultDescription
IsInventoryReservationTriggeredOnOrderCreationboolfalseWhen enabled, inventory reservations are sent to a dedicated queue for immediate processing, bypassing the normal order workflow. This provides faster reservation creation but processes reservations asynchronously. When disabled, reservations are created during the standard order workflow.

Sample

"InventoryManagement": {
  "IsInventoryReservationTriggeredOnOrderCreation": true
}

Expected delivery

These settings control expected delivery date handling.

PropertyTypeDefaultDescription
IsCheckExpectedDeliveryDateEnabledboolfalseWhen enabled, expected delivery dates are validated during order processing. This ensures that promised delivery dates can be met based on current inventory and incoming purchase orders.

Sample

"InventoryManagement": {
  "IsCheckExpectedDeliveryDateEnabled": true
}

Product lifecycle

These settings control how inventory updates affect product data.

PropertyTypeDefaultDescription
IsExpiredProductsAutoDeactivatedboolfalseWhen enabled, products that have expired and are out of stock are automatically deactivated. Requires the ProductInventoryStatusScheduledTask to be running.
IsProductInventoryExportDisabledboolfalseWhen enabled, product export is skipped when updating products with new inventory status. Use this to prevent unnecessary exports when inventory changes frequently.
SkipModifiedDateOnInventoryUpdateboolfalseWhen enabled, the product's Modified timestamp is preserved when inventory status is updated. Use this when you don't want inventory changes to trigger modified-date-based processes.
IsInventoryDeletedWhenProductIsDeletedboolfalseWhen enabled, inventory records are automatically deleted when their associated product is deleted. When disabled, inventory records are preserved (orphaned).

Sample

"InventoryManagement": {
  "IsExpiredProductsAutoDeactivated": true,
  "IsProductInventoryExportDisabled": false,
  "SkipModifiedDateOnInventoryUpdate": true,
  "IsInventoryDeletedWhenProductIsDeleted": true
}

Validation

These settings control inventory validation behavior during order processing.

PropertyTypeDefaultDescription
IsInventoryValidationDisabledForNonPromotionsboolfalseWhen enabled, inventory validation is skipped for items that are not part of a promotion. Use this when non-promotional items should not be blocked by inventory constraints.
IgnoredOrderTypesForAssortmentInventoryValidatorList<string>[]Order types that are exempt from assortment inventory validation. Orders of these types will not be validated against warehouse assortment rules.

Sample

"InventoryManagement": {
  "IsInventoryValidationDisabledForNonPromotions": false,
  "IgnoredOrderTypesForAssortmentInventoryValidator": ["Pos", "Manual"]
}

ATP providers

Available-To-Promise (ATP) providers calculate when products will be available for delivery based on current inventory, reservations, and incoming purchase orders. ATP calculations help determine realistic delivery dates for customers.

ATP provider settings

PropertyTypeDescription
KeystringUnique identifier for the ATP provider. Must match a registered provider type (e.g., "OmniumAtpProvider").
AtpCalculationTypestringOptional calculation type parameter passed to the provider. Provider-specific.

Built-in providers

ProviderDescription
OmniumAtpProviderBuilt-in ATP provider that calculates availability based on Omnium's inventory and purchase order data. Considers current stock, reservations, and expected deliveries from purchase orders.

Sample

"InventoryManagement": {
  "AtpProviders": [
    {
      "Key": "OmniumAtpProvider",
      "AtpCalculationType": null
    }
  ]
}

Inventory value providers

Inventory value providers calculate the cost value of inventory using different costing methods. These calculations are used for financial reporting and cost tracking.

Inventory value provider settings

PropertyTypeDescription
KeystringUnique identifier for the inventory value provider. Must match a registered provider type.

Built-in providers

ProviderDescription
FifoInventoryValueProviderUses First-In-First-Out (FIFO) costing method. The cost of goods sold is based on the cost of the oldest inventory items. This method is useful for perishable goods or items with varying purchase costs over time.
AverageInventoryValueProviderUses weighted average costing method. The cost is calculated as the average cost of all inventory items. This method smooths out price fluctuations and is simpler to maintain.
DefaultInventoryValueProviderDefault provider that uses the product's standard cost price.

Sample

"InventoryManagement": {
  "InventoryValueProviders": [
    {
      "Key": "FifoInventoryValueProvider"
    }
  ]
}

Warehouse allocation

These settings control how inventory is allocated across warehouses and how orders are assigned to fulfillment locations.

PropertyTypeDefaultDescription
IsOrderReallocationBasedOnOrderStoreboolfalseWhen enabled, warehouse selection for order fulfillment is based on the order's associated store. This allows orders to be routed to the warehouse linked to the originating store.
UseVirtualStockLocationsboolfalseWhen enabled, virtual stock location (VSL) functionality is activated. VSLs allow you to partition physical warehouse inventory across multiple virtual warehouses for different sales channels. See the Virtual Stock Locations section for details.
WarehouseAllocationAvailableForStoreRolesList<string>[]List of store roles that are allowed to perform warehouse allocation operations. When set, only stores with these roles can allocate inventory. Leave empty to allow all stores.

Sample

"InventoryManagement": {
  "IsOrderReallocationBasedOnOrderStore": true,
  "UseVirtualStockLocations": true,
  "WarehouseAllocationAvailableForStoreRoles": ["Warehouse", "Distribution"]
}

Complete configuration example

Below is a comprehensive example showing all inventory management settings configured together:

{
  "InventoryManagement": {
    "IsEnabled": true,
    "IsWriteEnabled": true,
    "IsReservationWriteEnabled": true,
 
    "IsAvailableInventoryIgnoringReserved": false,
    "IsProductInventoryWarehouseSpecific": true,
 
    "IsInventoryReservationTriggeredOnOrderCreation": false,
    "IsCheckExpectedDeliveryDateEnabled": true,
 
    "IsExpiredProductsAutoDeactivated": true,
    "IsProductInventoryExportDisabled": false,
    "SkipModifiedDateOnInventoryUpdate": false,
    "IsInventoryDeletedWhenProductIsDeleted": true,
 
    "IsInventoryValidationDisabledForNonPromotions": false,
    "IgnoredOrderTypesForAssortmentInventoryValidator": ["Pos"],
 
    "AtpProviders": [
      {
        "Key": "OmniumAtpProvider",
        "AtpCalculationType": null
      }
    ],
 
    "InventoryValueProviders": [
      {
        "Key": "FifoInventoryValueProvider"
      }
    ],
 
    "IsOrderReallocationBasedOnOrderStore": false,
    "UseVirtualStockLocations": false,
    "WarehouseAllocationAvailableForStoreRoles": []
  }
}