Interface SkuInventoryService<I extends SkuInventory>
-
- Type Parameters:
I-
- All Superinterfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<I>
- All Known Implementing Classes:
DefaultSkuInventoryService
public interface SkuInventoryService<I extends SkuInventory> extends com.broadleafcommerce.data.tracking.core.service.CrudEntityService<I>Service API for adjustingSkuInventory.- Author:
- Kelly Tisdell (ktisdell)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description List<InventoryTransaction>cancelInventory(SkuInventoryAdjustmentRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Performs theDefaultInventoryTransactionType.CANCELLEDInventoryTransactionsto updateSkuInventoryfor fulfilled items.List<InventoryTransaction>createSkuInventoryReservations(SkuInventoryReservationRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Creates HARD or a SOFT Inventory Reservations.booleanexistsByInventoryLocationAndSkuRefFieldValues(String inventoryLocationId, Optional<String> skuContextId, Optional<String> externalId, Optional<String> skuCode, Optional<String> upc, Optional<String> ean, Optional<String> gtin, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Determines is aSkuInventoryrecord exists in a given location, based onSkuReffields.org.springframework.data.domain.Page<I>findAllByInventoryLocationContextId(String inventoryLocationId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Read all Sku Inventories for the specified inventory location id matching the given filters.List<InventoryTransaction>fulfillInventory(SkuInventoryAdjustmentRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Performs theDefaultInventoryTransactionType.FULFILLEDInventoryTransactionsto updateSkuInventoryfor fulfilled items.Stream<I>readAll(Optional<cz.jirutka.rsql.parser.ast.Node> filters, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Generally used for batch export, this allows a caller to query, filter, and stream paged results.Stream<I>readAllByInventoryLocationId(String inventoryLocationId, cz.jirutka.rsql.parser.ast.Node filters, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Read all Sku Inventories for the specified inventory location id matching the given filters.org.springframework.data.domain.Page<I>readAllByName(String nameQuery, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Read all Inventory Locations, optionally filtered by name or number.Optional<I>readByInventoryLocationAndSkuRefFieldValues(String inventoryLocationId, Optional<String> externalId, Optional<String> skuCode, Optional<String> upc, Optional<String> ean, Optional<String> gtin, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Reads a (unique)SkuInventoryrecord for a given location, based onSkuReffields.List<I>readSkuInventoryDetails(SkuReferenceFieldType skuRefType, Set<String> skuRefs, InventoryLocation location, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)ReadsSkuInventorydetails based on specificSkuRefdetails, specified by theSkuReferenceFieldTypefor a givenInventoryLocation.List<InventoryTransaction>returnInventory(SkuInventoryAdjustmentRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Performs theDefaultInventoryTransactionType.RETURNEDInventoryTransactionsto updateSkuInventoryfor returned items.-
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService
create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
-
-
-
-
Method Detail
-
readAllByName
org.springframework.data.domain.Page<I> readAllByName(@Nullable String nameQuery, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Read all Inventory Locations, optionally filtered by name or number.- Parameters:
nameQuery- (optional) the name to filter bypage- the requested page of results from the databasefilters- additional filters to apply in the query, can be nullcontext- context information surrounding sandboxing and multitenant state- Returns:
- all SkuInventory, optionally filtered by name
-
findAllByInventoryLocationContextId
org.springframework.data.domain.Page<I> findAllByInventoryLocationContextId(String inventoryLocationId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Read all Sku Inventories for the specified inventory location id matching the given filters. Read all Inventory Locations,- Parameters:
inventoryLocationId- the inventory location idfilters- additional filters to apply in the query, can be nullpage- the requested page of results from the databasecontext- context information surrounding sandboxing and multitenant state- Returns:
- the Sku Inventories for the specified inventory location id
-
readAllByInventoryLocationId
Stream<I> readAllByInventoryLocationId(String inventoryLocationId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Read all Sku Inventories for the specified inventory location id matching the given filters.- Parameters:
inventoryLocationId- the inventory location idfilters- additional filters to apply in the query, can be nullcontext- context information surrounding sandboxing and multitenant state- Returns:
- the Sku Inventories for the specified inventory location id
-
createSkuInventoryReservations
List<InventoryTransaction> createSkuInventoryReservations(@NonNull SkuInventoryReservationRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) throws InventoryUnavailableException
Creates HARD or a SOFT Inventory Reservations. This results in the creation of 1 or moreInventoryTransactionrecords. A SOFT inventory reservation is a temporary reservation that may be removed or rolled back after a period of time. A SOFT reservation typically results in decrementing quantityAvailable on theSkuInventoryrecord. These are typically created prior to payment processing. A HARD reservation makes the SOFT reservation permanent. These are typically created after payment processing. If a corresponding SOFT reservation does not exist, then the creation of a HARD reservation will attempt to decrement quantityAvailable as well. In this case, the process is similar to creating a SOFT reservation immediately followed by a HARD reservation.- Parameters:
request-SkuInventoryReservationRequestto be processedcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The
InventoryTransactionsresulting from processing therequest. - Throws:
InventoryUnavailableException- if inventory cannot be reserved or otherwise decremented
-
fulfillInventory
List<InventoryTransaction> fulfillInventory(@NonNull SkuInventoryAdjustmentRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) throws InventoryUnavailableException, InventoryNotReservedException
Performs theDefaultInventoryTransactionType.FULFILLEDInventoryTransactionsto updateSkuInventoryfor fulfilled items.This transaction decrements the reserved and on-hand inventory for the requested items. This should only be performed after the items have already been
DefaultInventoryTransactionType.HARD_RESERVED.- Parameters:
request- inventory adjustment to be processed as fulfilledcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The
InventoryTransactionsresulting from processing therequest. - Throws:
InventoryUnavailableException- if inventory could not be decrementedInventoryNotReservedException- if inventory was not already reserved
-
cancelInventory
List<InventoryTransaction> cancelInventory(@NonNull SkuInventoryAdjustmentRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) throws InventoryUnavailableException, InventoryNotReservedException
Performs theDefaultInventoryTransactionType.CANCELLEDInventoryTransactionsto updateSkuInventoryfor fulfilled items.This transaction decrements the reserved inventory for the requested items. This should only be performed after the items have already been
DefaultInventoryTransactionType.HARD_RESERVED.- Parameters:
request- inventory adjustment to be processed as cancelledcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The
InventoryTransactionsresulting from processing therequest. - Throws:
InventoryUnavailableException- if inventory could not be decrementedInventoryNotReservedException- if inventory was not already reserved
-
returnInventory
List<InventoryTransaction> returnInventory(@NonNull SkuInventoryAdjustmentRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Performs theDefaultInventoryTransactionType.RETURNEDInventoryTransactionsto updateSkuInventoryfor returned items.This transaction increments the on-hand inventory for the requested items.
- Parameters:
request- inventory adjustment to be processed as returnedcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The
InventoryTransactionsresulting from processing therequest.
-
readByInventoryLocationAndSkuRefFieldValues
Optional<I> readByInventoryLocationAndSkuRefFieldValues(String inventoryLocationId, Optional<String> externalId, Optional<String> skuCode, Optional<String> upc, Optional<String> ean, Optional<String> gtin, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads a (unique)SkuInventoryrecord for a given location, based onSkuReffields.- Parameters:
inventoryLocationId-externalId-skuCode-upc-ean-gtin-context-- Returns:
-
existsByInventoryLocationAndSkuRefFieldValues
boolean existsByInventoryLocationAndSkuRefFieldValues(String inventoryLocationId, Optional<String> skuContextId, Optional<String> externalId, Optional<String> skuCode, Optional<String> upc, Optional<String> ean, Optional<String> gtin, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Determines is aSkuInventoryrecord exists in a given location, based onSkuReffields.- Parameters:
inventoryLocationId-skuContextId-externalId-skuCode-upc-ean-gtin-context-- Returns:
-
readSkuInventoryDetails
List<I> readSkuInventoryDetails(SkuReferenceFieldType skuRefType, Set<String> skuRefs, InventoryLocation location, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
ReadsSkuInventorydetails based on specificSkuRefdetails, specified by theSkuReferenceFieldTypefor a givenInventoryLocation.- Parameters:
skuRefType-skuRefs-location-contextInfo-- Returns:
-
readAll
Stream<I> readAll(@Nullable Optional<cz.jirutka.rsql.parser.ast.Node> filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Generally used for batch export, this allows a caller to query, filter, and stream paged results.- Parameters:
filters-context-- Returns:
-
-