Inventory Concepts
Learn about inventory management fundamentals
Developer Reference
See the Inventory API documentation for programmatic access
GraphQL Queries
GraphQL queries should be made as a POST call to this endpoint:.../api/commerce/realtime-inventory/graphql
Get Inventory API
The Get Inventory API call also provides RIS data using the endpoint.../api/commerce/realtime-inventory/v5/inventory. This is the same POST request as the standard GET Inventory call, but provides real-time inventory levels and additional fields for the inventory segmentation and accurate fulfillment date features.
Example API Response
[
{
"locationName": "West Great Falls Store",
"locationCode": "4",
"active": true,
"tenantID": 17809,
"onHand": 105,
"available": 103,
"allocated": 2,
"pending": 0,
"upc": "KTP",
"blockAssignment": false,
"ltd": 0,
"floor": 0,
"safetyStock": 0,
"distance": 0.0,
"directShip": true,
"transferEnabled": true,
"pickup": true,
"countryCode": "US",
"currencyID": 1,
"retailPrice": 1.99,
"taggedInventory": [
{
"onHand": 105,
"available": 103,
"allocated": 2,
"pending": 0,
"tags": {
"OrderType": "STH",
"Channel": "Kibo"
},
"futureInventory": [
{
"futureInventoryID": 13672,
"externalID": "12",
"onhand": 20,
"available": 20,
"allocated": 0,
"pending": 0,
"type": "Adjust",
"bopisProcessingTimeHours": 15,
"sthProcessingTimeHours": 7,
"receiveProcessingTimeHours": 10,
"deliveryDate": "2025-06-25T19:59:00+0000",
"createDate": "2023-08-17T19:12:25+0000",
"sthFulfillmentDate": "2025-06-26T02:59:00+0000",
"bopisFulfillmentDate": "2025-06-26T10:59:00+0000"
}
],
"bopisProcessingTimeHours": 15,
"sthProcessingTimeHours": 7,
"transferProcessingTimeHours": 15,
"receiveProcessingTimeHours": 10,
"sthFulfillmentDate": "2024-01-30T23:00:43+0000",
"bopisFulfillmentDate": "2024-01-31T07:00:43+0000",
"transferFulfillmentDate": "2024-01-31T14:00:43+0000"
}
]
},
{
"locationName": "Berne Apparel",
"locationCode": "BERNE",
"active": true,
"tenantID": 17809,
"onHand": 20,
"available": 20,
"allocated": 0,
"pending": 0,
"upc": "KTP",
"blockAssignment": false,
"ltd": 0,
"floor": 0,
"safetyStock": 0,
"distance": 0.0,
"directShip": true,
"transferEnabled": true,
"pickup": true,
"countryCode": "US",
"currencyID": 1,
"retailPrice": 1.99,
"taggedInventory": [
{
"onHand": 20,
"available": 20,
"allocated": 0,
"pending": 0,
"tags": {
"OrderType": "STH",
"Channel": "Kibo"
},
"futureInventory": null,
"receiveProcessingTimeHours": 6
}
]
},
{
"locationName": "BelInv001",
"locationCode": "mike_test",
"active": true,
"tenantID": 17809,
"onHand": 10,
"available": 10,
"allocated": 0,
"pending": 0,
"upc": "KTP",
"blockAssignment": false,
"ltd": 0,
"floor": 0,
"safetyStock": 0,
"distance": 0.0,
"directShip": true,
"transferEnabled": true,
"pickup": true,
"countryCode": "US",
"taggedInventory": [
{
"onHand": 10,
"available": 10,
"allocated": 0,
"pending": 0,
"tags": {
"OrderType": "STH",
"Channel": "Kibo"
},
"futureInventory": null
}
]
},
{
"locationName": "AFD STH Bopis Transfer Location",
"locationCode": "AFDSTHBopisTransferLoc1",
"active": true,
"tenantID": 17809,
"onHand": 0,
"available": 0,
"allocated": 0,
"pending": 0,
"upc": "KTP",
"blockAssignment": false,
"ltd": 0,
"floor": 0,
"safetyStock": 0,
"distance": 0.0,
"directShip": true,
"transferEnabled": true,
"pickup": true,
"countryCode": "US",
"taggedInventory": [
{
"onHand": 0,
"available": 0,
"allocated": 0,
"pending": 0,
"tags": {
"OrderType": "STH",
"Channel": "Kibo"
},
"futureInventory": null
}
]
}
]
Get Group Site Availability
This query gets the product availability across the site for multiple product codes.GraphQL Request Body
TheincludeNegativeInventory field defaults to false.
{
getGroupSiteAvailability(productCodes: ["CHAR-5055-1"], futureDaysToConsider: 1000) {
quantity
isAvailable
futureQuantity
futureIsAvailable
products {
productCode
quantity
isAvailable
futureQuantity
futureIsAvailable
}
}
}
Example GraphQL Response
{
"data": {
"getGroupSiteAvailability": {
"quantity": "<BigInt>",
"isAvailable": "<Boolean>",
"futureQuantity": "<BigInt>",
"futureIsAvailable": "<Boolean>",
"products": [
{
"productCode": "CHAR-5055-1",
"quantity": "<BigInt>",
"isAvailable": "<Boolean>",
"futureQuantity": "<BigInt>",
"futureIsAvailable": "<Boolean>"
}
]
}
}
}
REST API Endpoint
POST {baseUrl}/api/commerce/realtime-inventory/api/storefront/site/availability
| Header | Type | Description |
|---|---|---|
| x-vol-tenant | request and response | The unique identifier of the tenant. This number appears in your site’s URL in Admin, preceded by a “t”. For example: https://t**0000**.sandbox.mozu.com/Admin/m-1/ in a sandbox environment. |
| x-vol-site | request and response | The unique identifier of the site. This number can be found in the URL of the live site as well as some areas of the Admin, such as under System > Structure > Site, preceded by an “s-”. For example: https://t0000.sandbox.mozu.com/Admin/s-**11111**/website in a sandbox environment. |
Example API Request
{
"includeNegativeInventory": "<boolean>",
"productCodes": [
"<string>",
"<string>"
]
}
Example API Response
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"products": [
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>"
},
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>"
}
]
}
Get Product Site Availability
This query gets the product availability across the site for a particular product code.GraphQL Request Body
TheincludeNegativeInventory field defaults to false.
query{
getProductSiteAvailability(
productCode:"CHAR-5055-1",
futureDaysToConsider: 1000
){
quantity
isAvailable
futureIsAvailable
futureQuantity
}
}
Example GraphQL Response
{
"data": {
"getProductSiteAvailability": {
"quantity": "<BigInt>",
"isAvailable": "<Boolean>",
"futureIsAvailable": "<Boolean>",
"futureQuantity": "<BigInt>"
}
}
}
REST API Endpoint
GET {baseUrl}/api/commerce/realtime-inventory/api/storefront/site/availability/
Example API Response
{
"quantity": "<integer>",
"isAvailable": "<boolean>"
}
Get Product Availability at Locations
This query gets the availability for a product across multiple location codes.GraphQL Request Body
query{
getProductAvailabilityAtLocations(
productCode: "KTP",
locationCodes:["4", "BERNE", "mike_test"]
tags: [
{
category: "OrderType",
tag : "STH"
}
],
futureDaysToConsider: 100){
locations{
locationCode
quantity
isAvailable
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
segments{
tags{
category
tag
}
quantity
isAvailable
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
futureInventory{
quantity
isAvailable
incomingFutureInventoryDate
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
}
}
}
}
}
Example GraphQL Response
{
"data": {
"getProductAvailabilityAtLocations": {
"locations": [
{
"locationCode": "BERNE",
"quantity": "10",
"isAvailable": true,
"receiveProcessingTimeHours": "6",
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "10",
"isAvailable": true,
"receiveProcessingTimeHours": "6"
}
]
},
{
"locationCode": "4",
"quantity": "4",
"isAvailable": true,
"sthFulfillmentDate": "2024-02-12T15:40:17+0000",
"bopisFulfillmentDate": "2024-02-12T23:40:17+0000",
"transferFulfillmentDate": "2024-02-13T06:40:17+0000",
"sthProcessingTimeHours": "7",
"bopisProcessingTimeHours": "15",
"transferProcessingTimeHours": "15",
"receiveProcessingTimeHours": "10",
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "4",
"isAvailable": true,
"sthFulfillmentDate": "2024-02-12T15:40:17+0000",
"bopisFulfillmentDate": "2024-02-12T23:40:17+0000",
"transferFulfillmentDate": "2024-02-13T06:40:17+0000",
"sthProcessingTimeHours": "7",
"bopisProcessingTimeHours": "15",
"transferProcessingTimeHours": "15",
"receiveProcessingTimeHours": "10"
}
]
},
{
"locationCode": "mike_test",
"quantity": "10",
"isAvailable": true,
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "10",
"isAvailable": true
}
]
}
]
}
}
}
REST API Endpoint
GET {baseUrl}/api/commerce/realtime-inventory/api/storefront/availability/locations/product
| Header | Type | Description |
|---|---|---|
| x-vol-tenant | request and response | The unique identifier of the tenant. This number appears in your site’s URL in Admin, preceded by a “t”. For example: https://t**0000**.sandbox.mozu.com/Admin/m-1/ in a sandbox environment. |
| x-vol-site | request and response | The unique identifier of the site. When you log in to Admin, this number appears in the URL preceded by an “s-”. For example: https://t0000.sandbox.mozu.com/Admin/s-**11111**/website in a sandbox environment. |
Example API Response
{
"productCode": "<string>",
"locations": [
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
},
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
}
]
}
Get Group Availability at Locations
This query gets the availability for multiple product codes or variants across multiple location codes.GraphQL Request Body
query {
getGroupAvailabilityAtLocations(productCodes: ["KTP"], locationCodes:["4", "BERNE", "mike_test"]
tags: [
{
category: "OrderType",
tag : "STH"
}
]){
locations{
locationCode
isAvailable
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
productDetails {
sku
partNumber
}
segments{
tags{
category
tag
}
quantity
isAvailable
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
futureInventory{
quantity
isAvailable
incomingFutureInventoryDate
sthFulfillmentDate
bopisFulfillmentDate
transferFulfillmentDate
sthProcessingTimeHours
bopisProcessingTimeHours
transferProcessingTimeHours
receiveProcessingTimeHours
}
}
}
}
}
Example GraphQL Response
{
"data": {
"getGroupAvailabilityAtLocations": [
{
"locations": [
{
"locationCode": "BERNE",
"isAvailable": true,
"receiveProcessingTimeHours": "6",
"productDetails": {},
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "10",
"isAvailable": true,
"receiveProcessingTimeHours": "6"
}
]
},
{
"locationCode": "4",
"isAvailable": true,
"sthFulfillmentDate": "2024-02-12T15:46:18+0000",
"bopisFulfillmentDate": "2024-02-12T23:46:18+0000",
"transferFulfillmentDate": "2024-02-13T06:46:18+0000",
"sthProcessingTimeHours": "7",
"bopisProcessingTimeHours": "15",
"transferProcessingTimeHours": "15",
"receiveProcessingTimeHours": "10",
"productDetails": {},
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "4",
"isAvailable": true,
"sthFulfillmentDate": "2024-02-12T15:46:18+0000",
"bopisFulfillmentDate": "2024-02-12T23:46:18+0000",
"transferFulfillmentDate": "2024-02-13T06:46:18+0000",
"sthProcessingTimeHours": "7",
"bopisProcessingTimeHours": "15",
"transferProcessingTimeHours": "15",
"receiveProcessingTimeHours": "10",
"futureInventory": [
{
"quantity": "20",
"isAvailable": true,
"incomingFutureInventoryDate": "2025-06-25T19:59:00+0000",
"sthFulfillmentDate": "2025-06-26T02:59:00+0000",
"bopisFulfillmentDate": "2025-06-26T10:59:00+0000",
"sthProcessingTimeHours": "7",
"bopisProcessingTimeHours": "15",
"receiveProcessingTimeHours": "10"
}
]
}
]
},
{
"locationCode": "mike_test",
"isAvailable": true,
"productDetails": {},
"segments": [
{
"tags": [
{
"category": "Channel",
"tag": "Kibo"
},
{
"category": "OrderType",
"tag": "STH"
}
],
"quantity": "10",
"isAvailable": true
}
]
}
]
}
]
}
}
REST API Endpoint
GET {baseUrl}/api/commerce/realtime-inventory/api/storefront/availability/locations/products
| Header | Type | Description |
|---|---|---|
| x-vol-tenant | request and response | The unique identifier of the tenant. This number appears in your site’s URL in Admin, preceded by a “t”. For example: https://t**0000**.sandbox.mozu.com/Admin/m-1/ in a sandbox environment. |
| x-vol-site | request and response | The unique identifier of the site. When you log in to Admin, this number appears in the URL preceded by an “s-”. For example: https://t0000.sandbox.mozu.com/Admin/s-**11111**/website in a sandbox environment. |
Example API Request
{
"productCodes": [
"<string>",
"<string>"
],
"locationCodes": [
"<string>",
"<string>"
]
}
Example API Response
[
{
"productCode": "<string>",
"locations": [
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
},
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
}
]
},
{
"productCode": "<string>",
"locations": [
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
},
{
"quantity": "<integer>",
"isAvailable": "<boolean>",
"productCode": "<string>",
"locationCode": "<string>",
"productDetails": {
"sku": "<string>",
"partNumber": "<string>"
}
}
]
}
]
Get Group Available Locations
This query gets the locations of available inventory for specific fulfillment types. Use the followingproductSearchType values to further fine-tune your search results as needed.
- ALL: Only returns locations that have all of the quantity available for all of the products in the request.
- PARTIAL: Only returns locations that have all of the quantity available for at least one of the products in the request, and only those products.
- ANY: Returns locations that have any quantity available for any of the products in the request.
- ALL_STORES: All stores that are part of the location network will be returned even if they have no inventory for the specified product.
GraphQL Request Body
This example queries for specific product inventory being fulfilled via pickup or direct ship.query{
getGroupAvailableLocations(
fulfillmentTypes: [DIRECT_SHIP, PICKUP]
productCodes: ["KTP"]
tags: [
{
category: "OrderType",
tag : "STH"
},
{
category: "Channel",
tag : "Ebay"
}
]){
locationCodes
}
}
Example GraphQL Response
{
"data": {
"getGroupAvailableLocations": {
"locationCodes": [
"A",
"8"
]
}
}
}
REST API Endpoint
POST {baseUrl}/api/commerce/realtime-inventory/api/storefront/locations
| Header | Type | Description |
|---|---|---|
| x-vol-tenant | request and response | The unique identifier of the tenant. This number appears in your site’s URL in Admin, preceded by a “t”. For example: https://t**0000**.sandbox.mozu.com/Admin/m-1/ in a sandbox environment. |
| x-vol-site | request and response | The unique identifier of the site. When you log in to Admin, this number appears in the URL preceded by an “s-”. For example: https://t0000.sandbox.mozu.com/Admin/s-**11111**/website in a sandbox environment. |
Example API Request
{
"fulfillmentTypes": [
"PICKUP",
"DIRECT_SHIP"
],
"productCodes": [
"<string>",
"<string>"
],
"productSearchType": "all"
}
Example API Response
{
"data": {
"getGroupAvailableLocations": {
"locationCodes": [
"A",
"8"
]
}
}
}
Get Group Available Pickup Locations
This query gets the pickup locations of available inventory for only returns pickup locations. This supports ANY query which is a union across multiple locations. It also supports an ALL which is the intersection across multiple locations.GraphQL Request Body
query{ getGroupAvailablePickupLocations(productCodes: [String!]): PickupLocationsResponse}
Example GraphQL Response
{
"data": {
"getGroupAvailablePickupLocations": {
"productCode": "<String>",
"pickupLocations": [
{
"locationCode": "<String>",
"address": "<String>",
"hoursOfOperation": "<String>",
"isAvailableForPickup": "<Boolean>",
"sthPickupDate": "<OffsetDateTime>",
"bopisPickupDate": "<OffsetDateTime>",
"transferPickupDate": "<OffsetDateTime>",
"productDetails": {
"partNumber": "<String>",
"sku": "<String>"
}
},
{
"locationCode": "<String>",
"address": "<String>",
"hoursOfOperation": "<String>",
"isAvailableForPickup": "<Boolean>",
"sthPickupDate": "<OffsetDateTime>",
"bopisPickupDate": "<OffsetDateTime>",
"transferPickupDate": "<OffsetDateTime>",
"productDetails": {
"partNumber": "<String>",
"sku": "<String>"
}
}
]
}
}
}

