Availability by date
Node availability by date
Inventory Visibility always publishes the availability picture when the inventory is updated
at a node. The availability by date uses inventory timestamps to calculate the date range. Inventory
timestamps include when new supply becomes available (supplies.eta) or when supply
expires (supplies.shipByDate). For more information, see the Get Network Availability by date V2.
currentAvailability and futureAvailability with the
associated timestamps, fromTs (inclusive start timestamp) and toTs
(exclusive end timestamp). If you pass requestedEndTs in the request, the node
availability by date with fromTs before or inclusive of this date are returned, and
toTs of such last node availability by date in the response is either less than or
equal to requestedEndTs. If you do not pass requestedEndTs in the
request, then by default requestedEndTs is considered as the value that is set for
the dateBreakups.defaultLimitInDays tenant rule. The initial value of
requestedEndTs is set to15 days. That is, the default value of
requestedEndTs is current date + 15 days as shown in the response,
toTs
: 2022-10-15T16:42:06.942Z
. You can temporarily override the
default value by explicitly passing the requestedEndTs value in the request
input.requestedEndTs value less than 30
days. If your business requirement justifies, take into account that the inventory calculated by the
Availability API is proportional to the request end time. The response time might be impacted when
you set a large horizon for requestedEndTs.requestedQuantity in the request to restrict the response based on the
quantity.{
"availabilityType": "SELL",
"considerFulfillmentOptions": false,
"considerSafetyStock": true,
"lines": [
{
"itemId": "PLATE",
"unitOfMeasure": "EACH",
"productClass": "NEW",
"deliveryMethod": "SHP",
"segment": "ONLINE",
"segmentType": "Channel",
"shipNodes": [
"Matrix-Store-001"
],
"lineId": "1",
"shipNodeAvailabilities": [
{
"shipNode": "Matrix-Store-001",
"currentAvailability": {
"toTs": "2022-10-10T00:00:00.000Z",
"availableQuantity": 10.0,
"shortageQuantity": 0.0,
"thresholdLevel": 0,
"thresholdType": "ONHAND"
},
"futureAvailability": [
{
"toTs": "2022-10-15T16:42:06.942Z",
"availableQuantity": 30.0,
"shortageQuantity": 0.0,
"fromTs": "2022-10-10T00:00:00.000Z"
}
]
}
]
}
]
}
| Reservation | Reservation quantity | Reservation time (rsrv_ts) | Expiry (exp_ts) |
|---|---|---|---|
| A | 1 | 2022-10-01T13:10:00Z |
2020-10-01T13:26:00Z |
| B | 2 | 2022-10-01T13:10:00Z |
2020-10-01T13:26:00Z |
| C | 3 | 2022-10-01T13:10:00Z |
2020-10-01T13:26:00Z |
| D | 4 | 2022-10-12T13:10:00Z |
2020-10-12T13:26:00Z |
When the reservation name, quantity, time, and expiry are successful, node availability returns the following information:
{
"availabilityType": "SELL",
"considerSafetyStock": true,
"lines": [
{
"itemId": "PLATE",
"unitOfMeasure": "EACH",
"productClass": "NEW",
"deliveryMethod": "SHP",
"segment": "ONLINE",
"segmentType": "Channel",
"shipNodes": [
"Matrix-Store-001"
],
"lineId": "1",
"shipNodeAvailabilities": [
{
"shipNode": "Matrix-Store-001",
"currentAvailability": {
"toTs": "2022-10-10T00:00:00.000Z",
"availableQuantity": 4.0,
"shortageQuantity": 0.0,
"thresholdLevel": 0,
"thresholdType": "ONHAND"
},
"futureAvailability": [
{
"toTs": "2022-10-15T17:48:39.490Z",
"availableQuantity": 20.0,
"shortageQuantity": 0.0,
"fromTs": "2022-10-10T00:00:00.000Z"
}
]
}
]
}
]
}
Reservations A, B, and C for 1 October 2022 affect both current availability and future
availability. Reservation D for 12 October 2022 effects future availability only.- currentAvailability = 4 (10 on hand minus 1 from reservation A minus 2 from reservation B minus 3 from reservation C)
- futureAvailability = 20 (4 currently available plus 20 from purchase order minus 4 from reservation D)
"shipNodeAvailabilities": [ {
"shipNode": "Matrix-Store-001",
"currentAvailability": {
"toTs": "2022-10-08T00:00:00.000Z",
"availableQuantity": 0.0,
"shortageQuantity": 0.0,
"thresholdLevel": 0,
"thresholdType": "FUTURE"
},
"futureAvailability": [ {
"toTs": "2022-10-10T00:00:00.000Z",
"availableQuantity": 10.0,
"shortageQuantity": 0.0,
"fromTs": "2022-10-08T00:00:01.000Z"
},
{
"toTs": "2022-10-15T20:07:45.812Z",
"availableQuantity": 30.0,
"shortageQuantity": 0.0,
"fromTs": "2022-10-10T00:00:00.000Z"
}
]
}
]- If you specify considerSafetyStock in the API call, then the configured
safety stock is subtracted from the
availableQuantity. For example, if safety stock is 1, the output would change toavailableQuantity=29. - If you specify considerFulfillmentOptions as true in
the API call, then the specified fulfillment options gets overridden at the node and item call are
considered. If the considerFulfillmentOptions is false,
the availability is calculated without the fulfillment overrides considered.
For more information, see Get Node Availability by Date V1 API.
By default, the value of considerFulfillmentOptions as true.
The V2 node and network availability APIs have a request header-level attribute known as
isAggregationNeeded with a default value of false. If set to true, this API returns
onhandAvailableQuantity, futureAvailableQuantity,
futureLatestShipTs, and futureEarliestShipTs fields in response to
the line level (this is similar to the V1 availability APIs). However, the
isAggregationNeeded API response does not have the
futureAvailability array information.
"shipNodeAvailabilities" : [ {
"currentAvailability" : {
"availableQuantity" : 20.0,
"shortageQuantity" : 0.0,
"thresholdLevel" : 0,
"thresholdType" : "ONHAND",
"toTs" : "2021-06-10T00:00:00.182Z"
},
"futureAvailableQuantity" : 0.0,
"futureEarliestShipTs" : "2500-01-01T00:00:00.000Z",
"futureLatestShipTs" : "2500-01-01T00:00:00.000Z",
"onhandAvailableQuantity" : 20.0,
"shipNode" : "store-BostonMA"
}
]Node available supplies
The availableSupplies API provides the available supply picture, which also
includes non-expired reservations. The only difference between availability API and
availableSupplies API is that the availableSupplies does not
aggregate the availability by date with overlapping dates. For example, if the current date is 1
December 2022 and if there is 1 PO of 10, the ETA is 1 January 2023, and the
shipByDate is 1 April 2023. For another PO of 10, the ETA is 1 February 2023, and
the shipByDate is 1 April 2023.
availableSupplies API entries are as follows (without aggregation of
quantities)."availableSupplies": [ {
"toTs": "2023-04-01T00:00:01.000Z",
"availableQuantity": 10.0,
"shortageQuantity": 0.0,
"fromTs": "2023-01-01T00:00:00.000Z"
},
{
"toTs": "2023-04-01T00:00:01.000Z",
"availableQuantity": 10.0,
"shortageQuantity": 0.0,
"fromTs": "2023-02-01T00:00:00.000Z"
}
]Availability API output is as follows (with overlapping availabilities
added)."futureAvailability": [
{
"toTs": "2023-02-01T00:00:00.000Z",
"availableQuantity": 10.0,
"shortageQuantity": 0.0,
"fromTs": "2023-01-01T00:00:00.000Z"
},
{
"toTs": "2023-04-01T00:00:00.000Z",
"availableQuantity": 20.0,
"shortageQuantity": 0.0,
"fromTs": "2023-02-01T00:00:00.000Z
}
]Distribution group availability by date
Similar to node availability, distribution group availability also provides a distribution group availability by the date range. The distribution group availability picture is an aggregate view of all the associated node availability by date for inventory that is available to sell.
The distribution group availability by date provides the current and future network level availability picture, including active reservations. Availability is returned for the input product or item. If the request is a parent product, the availability of its children is also returned by the network availability product by date API.
When a change in an inventory timestamp occurs through a new supply or demand with dates other than the existing availability by dates, the availability by date is calculated and published. A change to the timestamp range can occur when a new supply date or ship date is determined. Distribution group inventory availability is calculated only for open order reservations.
US_Group with two ship nodes
Matrix-Store-001 and Matrix-Store-002, and item ID
PROD1. In this example, one item is available as ONHAND. Also, two items are
arriving 7 February 2020 and three items are arriving 14 February 2020 (with no reservations) for
each individual ship node. Therefore, the distribution group has twice the availability of each ship
node for the time range. Distribution group availability returns the following information. Notice
that the output is separated with currentAvailability and
futureAvailability with the associated timestamps, fromTs
(inclusive start timestamp), and toTs (exclusive end
timestamp).{
"considerSafetyStock": true,
"considerFulfillmentOptions": false,
lines: [ {
itemId: "PROD1",
lineId: "0",
productClass: "NEW",
unitOfMeasure: "EACH",
deliveryMethod: "SHP",
networkAvailabilities: [
{
distributionGroupId: "US_Group",
currentAvailability: {
availableQuantity: 2.0,
shortageQuantity: 0.0,
toTs:"2020-02-07T05:00:00Z”,
thresholdLevel: 3,
thresholdType: "ONHAND",
thresholdQuantity: 5.5,
},
futureAvailability: [ {
fromTs: "2020-02-07T05:00:00Z",
toTs:"2020-02-14T05:00:00Z",
availableQuantity: 6.0,
shortageQuantity: 0.0
},
{
fromTs: "2020-02-14T05:00:00Z",
toTs:"2500-01-01T00:00:00Z",
availableQuantity: 12.0,
shortageQuantity: 0.0
}
]
}
]
}
]
}- Node A - 10 supply, 1 demand and 9 available, 0 shortage
- Node B - 5 supply, 7 demand and 0 available, 2 shortage
currentAvailability: {
availableQuantity: 9.0,
shortageQuantity: 2.0,
toTs:"2025-12-30T05:00:00Z",
thresholdLevel: 3,
thresholdType: "ONHAND",
thresholdQuantity: 5.5,
}For more information, see the Network Availability Product by Date REST API documentation.