Class EmptyInventoryProvider

java.lang.Object
com.broadleafcommerce.cartoperation.service.provider.EmptyInventoryProvider
All Implemented Interfaces:
InventoryProvider

public class EmptyInventoryProvider extends Object implements InventoryProvider
This is an "empty" or "pass-through" Inventory Provider. By Default, it does nothing. Some implementors will want this as they either don't need to do inventory checks or have different requirements about how or when to reserve inventory.
Author:
Chad Harchar (charchar)
See Also:
  • Constructor Details

    • EmptyInventoryProvider

      public EmptyInventoryProvider()
  • Method Details

    • reserveInventory

      public void reserveInventory(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Decrement or otherwise "reserve" inventory for a cart during checkout.
      Specified by:
      reserveInventory in interface InventoryProvider
      Parameters:
      cart - The cart for which to decrement inventory.
      contextInfo - Context information around sandbox and multitenant state.
    • isInventoryAvailable

      public boolean isInventoryAvailable(@NonNull @NonNull InventoryAvailabilityRequest inventoryAvailabilityRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Determines whether Inventory is available for a particular catalog item.
      Specified by:
      isInventoryAvailable in interface InventoryProvider
      Parameters:
      inventoryAvailabilityRequest - the catalog item for which to check inventory availability
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      true if inventory is available for the catalog item and quantity, false otherwise
    • isInventoryAvailable

      public Map<String,Boolean> isInventoryAvailable(@NonNull @NonNull List<InventoryAvailabilityRequest> inventoryAvailabilityRequests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Determines whether Inventory is available for a list of catalog items.

      By default, if the catalog item is available for one of the SKU locations or vendors, then it's considered available overall.

      Use InventoryProvider.getInventorySummariesBySku(Map, ContextInfo) for custom logic on SKU inventory availability.

      Specified by:
      isInventoryAvailable in interface InventoryProvider
      Parameters:
      inventoryAvailabilityRequests - a list of inventory requests for which to check inventory availability
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      a map of the sku code with true if inventory is available for the SKU and quantity, and false otherwise
    • isInventoryAvailable

      public boolean isInventoryAvailable(String skuCode, int quantity, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Determines whether Inventory is available for a particular SKU.
      Specified by:
      isInventoryAvailable in interface InventoryProvider
      Parameters:
      skuCode - the sku code for which to check inventory availability
      quantity - the quantity of the sku code that will be requested
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      true if inventory is available for the SKU and quantity, false otherwise
    • isInventoryAvailable

      public Map<String,Boolean> isInventoryAvailable(Map<String,Integer> skuCodesAndQuantity, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Determines whether Inventory is available for a list of SKUs.

      By default, if the SKU is available for one of the SKU locations or vendors, then it's considered available overall.

      Use InventoryProvider.getInventorySummariesBySku(Map, ContextInfo) for custom logic on SKU inventory availability.

      Specified by:
      isInventoryAvailable in interface InventoryProvider
      Parameters:
      skuCodesAndQuantity - a map of the sku codes and quantity for which to check inventory availability
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      a map of the sku code with true if inventory is available for the SKU and quantity, and false otherwise
    • getInventorySummariesBySku

      public Map<String,List<SkuInventoryAvailabilitySummary>> getInventorySummariesBySku(Map<String,Integer> skuCodesWithQuantity, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Gets a map of SkuInventoryAvailabilitySummaries by SKU.

      There can be multiple SkuInventoryAvailabilitySummaries for one SKU, if there are SKU inventories set up at multiple inventory locations or vendors.

      This is useful for custom SKU inventory availability logic.

      Specified by:
      getInventorySummariesBySku in interface InventoryProvider
      Parameters:
      skuCodesWithQuantity - a map of the sku codes and quantity for which to check inventory availability
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      a map of SkuInventoryAvailabilitySummaries by SKU
    • softReserveInventory

      public void softReserveInventory(com.broadleafcommerce.cart.client.domain.Cart cart, List<com.broadleafcommerce.cart.client.domain.CartItem> itemsToReserve, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: InventoryProvider
      Perform a soft reservation on a specific item. Intended to be used if an item has an "Add to Cart" reservation strategy
      Specified by:
      softReserveInventory in interface InventoryProvider
      itemsToReserve - The items added to the cart to be soft reserved
      contextInfo - Context information around sandbox and multitenant state.