Interface InventoryProvider

    • Method Detail

      • reserveInventory

        void reserveInventory​(@NonNull
                              com.broadleafcommerce.cart.client.domain.Cart cart,
                              @Nullable
                              com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Decrement or otherwise "reserve" inventory for a cart during checkout.
        Parameters:
        cart - The cart for which to decrement inventory.
        contextInfo - Context information around sandbox and multitenant state.
        Throws:
        InventoryUnavailableException - if inventory is not available.
      • isInventoryAvailable

        boolean isInventoryAvailable​(@NonNull
                                     String skuCode,
                                     int quantity,
                                     @Nullable
                                     com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Determines whether Inventory is available for a particular SKU.
        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

        Map<String,​Boolean> isInventoryAvailable​(@NonNull
                                                       Map<String,​Integer> skuCodesWithQuantity,
                                                       @Nullable
                                                       com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        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 getInventorySummariesBySku(Map, ContextInfo) for custom logic on SKU inventory availability.

        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 the sku code with true if inventory is available for the SKU and quantity, and false otherwise