Download OpenAPI specification:Download
The fabric OMS Inventory APIs are high performance endpoints built on highly scalable architecture, and include a configurable data model to orchestrate the inventory lifecycle events. These endpoints provide functionality to create inventory records, keep a record of inventory quantities, set up inventory availability rules, and update items in the inventory. The endpoints provide support to configure inventory positions (also called as counters), create custom attributes for the inventory records, and set up network rules to control inventory accuracy and collect inventory across locations to create channel-specific inventory availability.
Network: Set inventory availability and accuracy rules using conditional rule builder to create a pool of inventory aggregated from multiple locations.
Counter: Configure the positions of the inventory such as available, in-transit, on-hand, or other custom positions to measure inventory quantities of assortment.
Virtual Counter: Quantify the inventory that is available to sell by calculating the difference between available inventory and reserved for purchase inventory. It helps prevent over-promising of inventory by subtracting the reserved-for-purchase inventory count from the in-warehouse inventory count.
Overlay: Send daily refresh feeds to update the on-hand inventory data in fabric OMS. It includes a configurable failsafe to prevent inventory overrides. It makes easy for merchants to integrate fabric OMS with storefront and warehouse APIs.
Adjustment: Incrementally reserve inventory in real time.
Inventory by Geography: View the list of locations with available inventory, sorted by distance, specifying the radius and customer location.
Safety Stock: Set a threshold level to reserve inventory from purchase, for common use cases such as preventing oversell and retaining inventory in physical locations.
Low Stock Level: Set a threshold level to flag inventory as low stock.
Backorder: Manage the expected restock dates and backorder quantity per inventory.
Network refers to a group of locations having a group of SKUs in each location. Network endpoints let you read, create, and manage an inventory-network by location, brand, or any other custom attributes.
Retrieves paginated list of all networks that were previously created
required | object (PaginationQueryModel) This object represents the process of separating data into different pages |
OK
Client Error
Internal Server Error
{- "pagination": {
- "total": 100,
- "limit": 10,
- "offset": 0
}, - "network": [
- {
- "networkId": "62278e49167b6079755aa5e7",
- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
]
}
Creates network using conditional rule to add locations and SKU to the network.
OK
Client Error
Not Found
Internal Server Error
{- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
{- "networkId": "62278e49167b6079755aa5e7",
- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
Retrieves details of a specific network by specified network ID
OK
Client Error
Not Found
Internal Server Error
{- "networkId": "62278e49167b6079755aa5e7",
- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
Updates details of a specific network by specified network ID. Details to be updated include network code, name, safety stock, and conditional rule for a specific network.
OK
Client Error
Not Found
Internal Server Error
{- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
{- "networkId": "62278e49167b6079755aa5e7",
- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
Deletes a specific network, with all of its details, by specified network ID. Once deleted, it cannot be undone.
OK
Client Error
Not Found
Internal Server Error
{- "networkId": "62278e49167b6079755aa5e7",
- "code": "DC",
- "name": "Distribution Center",
- "safetyStock": 2,
- "rules": {
- "locationData.attributes.channel": "Frontline",
- "productData.attributes.subclass": {
- "$nin": 778942701
}
}
}
This endpoint lets you view the aggregated count of the inventory-network based on the network rule configuration (either by network ID or by SKU, or by both).
required | object (NetworkSearchModel) |
required | object (PaginationQueryModel) This object represents the process of separating data into different pages |
OK
Client Error
Not Found
Internal Server Error
{- "pagination": {
- "total": 100,
- "limit": 10,
- "offset": 0
}, - "networkAggregation": [
- {
- "networkCode": "Ship-to-home",
- "sku": "SKU00025",
- "virtualCounters": {
- "availableToPurchase": 50
}
}
]
}
Retrieves a paginated list of inventories based on the filtering criteria including SKUs, itemIds, channels, and location numbers.
required | object (InventorySearchModel) This object contains all the filtering criteria based on which inventories are searched |
required | object (PaginationQueryModel) This object represents the process of separating data into different pages |
OK
Client Error
Internal Server Error
{- "pagination": {
- "total": 100,
- "limit": 10,
- "offset": 0
}, - "inventory": [
- {
- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
]
}
Enables you to create inventory based on the combination of location number, channel ID, and item ID or item SKU.
OK
Client Error
Internal Server Error
{- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "primary",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
This endpoint updates inventory by overriding the existing values with all the new inventory properties that are specified in the request body, or creates a new inventory if inventory does not exist. If an existing property is not mentioned in the request body, then the value for the existing property will be displayed as null
or zero
. Inventory is identified based on the combination of location number, channel ID, and item ID or item SKU.
OK
Client Error
Internal Server Error
{- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "primary",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
This endpoint does not override all the existing properties, rather it updates inventory by adding new properties or by updating the existing inventory properties that are specified in the request body. Inventory is identified based on the combination of location number, channel ID, and item ID or item SKU.
OK
Client Error
Not Found
Internal Server Error
{- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "primary",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
This endpoint updates inventory position (also known as counter) as per specified request body, Or it creates inventory if inventory does not exist, and thereby updates the counter. Inventory is identified based on the combination of location number, channel ID, and item ID or item SKU.
OK
Client Error
Not Found
Internal Server Error
{- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "leadTime": 1234,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
This endpoint is very specific to counter update. It updates inventory position (also known as counter), or displays error if inventory does not exist. Inventory is identified based on the combination of location number, channel ID, and item ID or item SKU.
OK
Client Error
Not Found
Internal Server Error
{- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "leadTime": 1234,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
Retrieves inventory details of a specific item based on specified item ID
OK
Client Error
Not Found
Internal Server Error
{- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
Retrieves list of inventories in a specific region based on postal code, sku, radius within which the inventories are to be retrieved, latitude and longitude of the location.
required | object (InventoryGeoSearchModel) |
OK
Client Error
Not Found
Internal Server Error
{- "inventory": [
- {
- "virtualCounters": {
- "availableToPurchase": 10
}, - "id": "62272e917b12209e68751d94",
- "sku": "SKU00025",
- "itemId": 4225678911,
- "locationNum": 473746,
- "channelId": 12,
- "vendorId": "vendor123",
- "leadTime": 1234,
- "inventoryType": "Safety stock",
- "infiniteInventory": true,
- "counters": {
- "on-hand": 10
}, - "attributes": {
- "buy online, pick up in-store (bopis)": true
}
}
], - "locations": [
- {
- "locationNum": 473746,
- "distance": 4.5
}
]
}
This endpoint checks the progress of bulk upload, for a specific Key ID, triggered by uploading a CSV file to the database.
OK
Client Error
Not Found
Internal Server Error
{- "id": "626faf4f352b50680cf2284e",
- "keyId": "1651486519061_Inventory",
- "status": "FINISHED",
- "totalRows": 21,
- "totalRowsUploaded": 21,
- "totalRowsErrors": 0
}
Retrieves a paginated list of inventory bulk upload status for all the files that were uploaded to the database to perform inventory operations.
required | object (PaginationQueryModel) This object represents the process of separating data into different pages |
OK
Client Error
Not Found
Internal Server Error
{- "pagination": {
- "total": 100,
- "limit": 10,
- "offset": 0
}, - "networkAggregation": [
- {
- "id": "626faf4f352b50680cf2284e",
- "keyId": "1651486519061_Inventory",
- "status": "FINISHED",
- "totalRows": 21,
- "totalRowsUploaded": 21,
- "totalRowsErrors": 0
}
]
}
Bulk Operation endpoints let you upload and download inventory details, in bulk, using a CSV file to and from AWS (Amazon Web Service) server presigned S3 URL that is generated from the Order service.
Enables you to create a URL for uploading a CSV file to apply bulk changes to inventory models. This endpoint generates a key ID associated with the URL, and this keyId will be used to fetch the status of an uploaded file or to fetch the error file afterwards.
OK
Client Error
Not Found
Internal Server Error
{- "fileName": "45162930812_inventory"
}
{- "keyId": "981628612_inventory",
}
Enables you to create a URL to download error details for a file that was previously uploaded to apply bulk changes to inventory records. This endpoint generates a key ID associated with the URL, and this keyId will be used to fetch the status of an upload file or to fetch the error file afterwards.
OK
Client Error
Not Found
Internal Server Error
{- "fileName": "45162930812_inventory"
}
{- "keyId": "981628612_inventory",
}
Attribute refers to a set of characteristics that define inventory. Attribute endpoints let you create, read, update, and delete inventory attributes at any hierarchy level (location, SKU, item, channel) or at counter level.
Creates a unique inventory attribute
OK
Client Error
Conflict
Internal Server Error
{- "code": "on-hand"
}
{- "id": "622786ae0bdb19221a24fb61",
- "code": "on-hand"
}
Retrieves details of a specific attribute by specified attribute code
OK
Client Error
Not Found
Internal Server Error
{- "id": "622786ae0bdb19221a24fb61",
- "code": "on-hand"
}
Counter refers to inventory positions such as, available, in-transit, on-hand, or other custom positions. These endpoints let you read, update, and create custom counters that suit your business use case.
Creates counter (also known as inventory position) for better tracking of inventories.
OK
Client Error
Not Found
Internal Server Error
{- "name": "On Hand",
- "code": "on-hand"
}
{- "id": "622786ae0bdb19221a24fb61",
- "name": "On Hand",
- "code": "on-hand"
}
Retrieves details of a specific counter by specified counter code.
OK
Client Error
Not Found
Internal Server Error
{- "id": "622786ae0bdb19221a24fb61",
- "name": "On Hand",
- "code": "on-hand"
}
Updates a specific counter based on specified counter-code
OK
Client Error
Not Found
Internal Server Error
{- "name": "On Hand"
}
{- "id": "622786ae0bdb19221a24fb61",
- "name": "On Hand",
- "code": "on-hand"
}