16 March 2026
CartsProduct catalog
We have introduced Inventory reservations in public beta. Now, you can reserve stock when adding items to a Cart or later in the checkout process, ensuring product availability throughout the shopping journey. This improves customer satisfaction by guaranteeing that items in the Cart remain available until checkout is completed or the reservation expires.
Additionally, we have introduced stock level notifications. These notifications alert you when the
quantityOnStock of an InventoryEntry falls below or rises above certain thresholds. This enables you to take proactive measures to manage stock effectively and maintain optimal inventory levels.For more information, see the following resources:
- Inventory overview: explains general concepts around inventory management, including reservations and stock level notifications.
- Reservations: provides information about reservation-related resources.
- Reserve stock on Cart: tutorial that describes how to automatically reserve items and manage reservation durations.
- Reserve stock on demand: tutorial that describes how to change the inventory mode of a Line Item later in the checkout process, and combine it with Cart freezing, to effectively freeze prices and stock.
The following changes were introduced for the HTTP API:
- [API] Added the Reservation type.
- [API] Added the ReservationReference type.
- [API] Added the ReservationState enum.
- [API] Added the InventoryConfiguration type to Project.
- [API] Added the InventoryEntryStockLevels type.
- [API] Added the following warning types:
- [API] Added the following message types:
- [API] Added the
reservationvalue to the ReferenceTypeId enum. - [API] Added the
reservationvalue to the ResourceTypeId enum. - [API] Added
ReserveOnCartto the InventoryMode enum for Carts. - [API] Added the ProjectSetReservationExpirationInMinutesAction update action.
- [API] Added the ProjectSetReleaseExpiredReservationsAction update action.
- [API] Added the CartSetReservationExpirationInMinutesAction update action.
- [API] Added the InventoryEntrySetReservationExpirationInMinutesAction update action.
- [API] Added the InventoryEntrySetReorderPointAction update action.
- [API] Added the InventoryEntrySetSafetyStockAction update action.
- [API] Added the
reservationfield to LineItem. - [API] Added the
stockLevelsandreservationExpirationInMinutesfields to InventoryEntry and InventoryEntryDraft. - [API] Added the
warningsfield to Cart. - [API] Added the
inventoryfield to Project. - [Import API] Added the
reservationExpirationInMinutesfield to InventoryImport.
The following changes were introduced for the GraphQL API:
- [GraphQL API] Added the
InventoryConfigurationtype. - [GraphQL API] Added the
StockLevelsandStockLevelsDrafttypes. - [GraphQL API] Added the following message types:
InventoryEntryOutOfStockInventoryEntryReorderPointInventoryEntrySafetyStockInventoryEntryReservationExpirationInMinutesSet
- [GraphQL API] Added the
ReserveOnCartvalue to theInventoryModeenum. - [GraphQL API] Added the
setReservationExpirationInMinutesfield to theProjectSettingsUpdateActiontype. - [GraphQL API] Added the
setReleaseExpiredReservationsfield to theProjectSettingsUpdateActiontype. - [GraphQL API] Added the
setReservationExpirationInMinutesfield to theCartUpdateActiontype. - [GraphQL API] Added the
setReservationExpirationInMinutesfield to theInventoryEntryUpdateActiontype. - [GraphQL API] Added the
setReorderPointfield to theInventoryEntryUpdateActiontype. - [GraphQL API] Added the
setSafetyStockfield to theInventoryEntryUpdateActiontype. - [GraphQL API] Added the
reservationExpirationInMinutesfield toInventoryEntryandInventoryEntryDraft. - [GraphQL API] Added the
stockLevelsfield toInventoryEntryandInventoryEntryDraft. - [GraphQL API] Added the
inventoryfield toProjectProjection.
The following changes were introduced in terms of GraphQL SDL:
type InventoryConfiguration {
reservationExpirationInMinutes: Int
releaseExpiredReservations: Boolean!
}
type StockLevels {
safetyStock: Int
reorderPoint: Int
}
input StockLevelsDraft {
safetyStock: Int
reorderPoint: Int
}
type InventoryEntryOutOfStock implements MessagePayload {
sku: String!
supplyChannel: Channel
supplyChannelRef: Reference
type: String!
}
type InventoryEntryReorderPoint implements MessagePayload {
sku: String!
quantityOnStock: Int!
supplyChannel: Channel
supplyChannelRef: Reference
type: String!
}
type InventoryEntrySafetyStock implements MessagePayload {
sku: String!
quantityOnStock: Int!
supplyChannel: Channel
supplyChannelRef: Reference
type: String!
}
type InventoryEntryReservationExpirationInMinutesSet implements MessagePayload {
oldReservationExpirationInMinutes: Int
newReservationExpirationInMinutes: Int
type: String!
}
enum InventoryMode {
ReserveOnCart
}
extend type ProjectProjection {
inventory: InventoryConfiguration!
}
extend input ProjectSettingsUpdateAction {
setReservationExpirationInMinutes: SetProjectSettingsReservationExpirationInMinutes
setReleaseExpiredReservations: SetProjectSettingsReleaseExpiredReservations
}
input SetProjectSettingsReservationExpirationInMinutes {
reservationExpirationInMinutes: Int!
}
input SetProjectSettingsReleaseExpiredReservations {
releaseExpiredReservations: Boolean!
}
extend input CartUpdateAction {
setReservationExpirationInMinutes: SetCartReservationExpirationInMinutes
}
input SetCartReservationExpirationInMinutes {
reservationExpirationInMinutes: Int!
}
extend input InventoryEntryUpdateAction {
setReservationExpirationInMinutes: SetInventoryEntryReservationExpirationInMinutes
setReorderPoint: SetReorderPoint
setSafetyStock: SetSafetyStock
}
input SetInventoryEntryReservationExpirationInMinutes {
reservationExpirationInMinutes: Int
}
input SetReorderPoint {
quantity: Int
}
input SetSafetyStock {
quantity: Int
}
extend type InventoryEntry {
reservationExpirationInMinutes: Int
stockLevels: StockLevels
}
extend input InventoryEntryDraft {
reservationExpirationInMinutes: Int
stockLevels: StockLevelsDraft
}