Interface SkuInventorySummaryService<T extends SkuInventoryAvailabilitySummary>

All Known Implementing Classes:
DefaultSkuInventorySummaryService

public interface SkuInventorySummaryService<T extends SkuInventoryAvailabilitySummary>
Service to find SkuInventory summary data (e.g. available).
Author:
Kelly Tisdell (ktisdell)
  • Method Details

    • readInventoryAvailability

      List<T> readInventoryAvailability(@NonNull String skuRefFieldTpe, @NonNull Map<String,Integer> skuReferenceQuantities, Optional<Boolean> forShip, Optional<Boolean> forPickup, Optional<Boolean> inStore, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads inventory summary data, typically for browsing of SKUs or Products.
      Parameters:
      skuRefFieldTpe -
      skuReferenceQuantities -
      forShip -
      forPickup -
      inStore -
      contextInfo -
      Returns:
    • readInventoryAvailability

      List<T> readInventoryAvailability(List<SkuInventoryAvailabilityRequest> availabilityRequests, String skuRefFieldTpe, Optional<Boolean> forShip, Optional<Boolean> forPickup, Optional<Boolean> inStore, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads inventory summary data based on the given SkuInventoryAvailabilityRequests.

      Existing soft reservations are excluded if SkuInventoryAvailabilityRequest.getReferenceNumber() is passed in. For example, if a SKU has total of 2 available and 1 is reserved for userA, and userA checks inventory availability for a quantity of 2 for the same SKU. The existing soft reservation is excluded from the check in this case, effectively making this request to check for an additional quantity of 1 to be available. However, if userB sends the same request to check availability for a quantity of 2 for the same SKU, it would return unavailable since only 1 is available as the other one is reserved for userA.

      Parameters:
      availabilityRequests - the list of SkuInventoryAvailabilityRequests to process
      skuRefFieldTpe - the type of the sku ref field
      forShip - indicates if the SKU should be available for shipping
      forPickup - indicates if the SKU should be available for pickup
      inStore - indicates if the SKU should be available in store
      contextInfo - the ContextInfo of the request
      Returns:
    • readInventoryAvailability

      List<T> readInventoryAvailability(@NonNull String skuRefFieldTpe, @NonNull Map<String,Integer> skuReferenceQuantities, @NonNull String inventoryLocationId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads inventory summary data, typically for browsing of SKUs or Products by a particular inventory location.
      Parameters:
      skuRefFieldTpe -
      skuReferenceQuantities -
      inventoryLocationId -
      contextInfo -
      Returns:
    • readInventoryAvailability

      T readInventoryAvailability(@NonNull String skuRefFieldTpe, @NonNull String skuReference, int minQuantityAvailable, @NonNull Optional<Boolean> forShip, @NonNull Optional<Boolean> forPickup, @NonNull Optional<Boolean> inStore, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Parameters:
      skuRefFieldTpe -
      skuReference -
      minQuantityAvailable -
      forShip -
      forPickup -
      inStore -
      contextInfo -
      Returns:
    • readConsolidatedAvailability

      List<ConsolidatedInventoryAvailability> readConsolidatedAvailability(@NonNull Set<String> skuCodes, int minQuantityAvailable, @NonNull Optional<Boolean> forShip, @NonNull Optional<Boolean> forPickup, @NonNull Optional<Boolean> inStore, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Returns the consolidated availability based on what is requested. This is typically used by other, aggregate services, such as Search Services, to indicate if a SKU is available for search or filtering purposes. Callers will typically set ContextInfo.setIgnoreNarrowing(boolean) to true so that all availability is returned for the tenant and all associated applications.
      Parameters:
      skuCodes - A Set of values associated with the skuCode field on SkuRef
      minQuantityAvailable - The minimum quantity requested for all SKUs queried
      forShip - Indicates if the SKU should be available for shipping
      forPickup - Indicates if the SKU should be available for pickup
      inStore - Indicates if the SKU should be available in store
      contextInfo - The ContextInfo of the request.
      Returns:
    • readConsolidatedInventoryQuantities

      Map<String,Long> readConsolidatedInventoryQuantities(@NonNull Set<String> skuCodes, @NonNull Optional<Boolean> forShip, @NonNull Optional<Boolean> forPickup, @NonNull Optional<Boolean> inStore, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Returns a Map of quantities available. The Map has a key that represents the SKU with a value that represents the quantity available for that SKU.
      Parameters:
      skuCodes - the sku codes
      forShip - whether this inventory can be shipped
      forPickup - whether this inventory can be picked up
      inStore - whether this inventory is for in store
      contextInfo -
      Returns: