Class DefaultInventoryAvailabilityIndexService
java.lang.Object
com.broadleafcommerce.catalogbrowse.service.DefaultInventoryAvailabilityIndexService
- All Implemented Interfaces:
InventoryAvailabilityIndexService
public class DefaultInventoryAvailabilityIndexService
extends Object
implements InventoryAvailabilityIndexService
Default implementation of
InventoryAvailabilityIndexService.- Since:
- Catalog Browse Service 2.2.0, Release Train 2.3.0
- Author:
- Susana Cruz (susanacruz)
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultInventoryAvailabilityIndexService(CatalogProvider browseCatalogProvider, InventoryProvider inventoryProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildOptionValuesKey(Map<String, String> optionValues) Builds a key representative of theLiteVariant.getOptionValues().buildProductAvailabilityIndex(String productId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Constructs aProductAvailabilityIndexfor a given product by gathering relevant variants and their associated inventory availability details.protected CatalogProviderprotected InventoryProvidergetLiteVariantsWithAvailability(String productId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Fetches theLiteVariantsfor a givenproductIdand then fetches their inventory availability using a grouping of their SKUs.protected com.broadleafcommerce.common.extension.TypeFactoryprotected VariantAvailabilityInfogetVariantAvailabilityInfo(LiteVariant variant)
-
Constructor Details
-
DefaultInventoryAvailabilityIndexService
public DefaultInventoryAvailabilityIndexService(CatalogProvider browseCatalogProvider, InventoryProvider inventoryProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
buildProductAvailabilityIndex
public ProductAvailabilityIndex buildProductAvailabilityIndex(@NonNull String productId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:InventoryAvailabilityIndexServiceConstructs aProductAvailabilityIndexfor a given product by gathering relevant variants and their associated inventory availability details. The index is intended to optimize payload size and improve performance, especially when dealing with products having multiple variants.- Specified by:
buildProductAvailabilityIndexin interfaceInventoryAvailabilityIndexService- Parameters:
productId- the unique identifier of the product for which the availability index is builtcontextInfo- additional context information (such as sandbox or multitenant details) relevant to the operation- Returns:
- a
ProductAvailabilityIndexcontaining the related variants and their inventory availability details
-
getLiteVariantsWithAvailability
public Map<String,VariantAvailabilityInfo> getLiteVariantsWithAvailability(@NonNull String productId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:InventoryAvailabilityIndexServiceFetches theLiteVariantsfor a givenproductIdand then fetches their inventory availability using a grouping of their SKUs. The result is hydrated onto each correspondingLiteVariant.- Specified by:
getLiteVariantsWithAvailabilityin interfaceInventoryAvailabilityIndexService- Parameters:
productId- the productId to find variants forcontextInfo- context information around sandbox and multitenant state- Returns:
- the
LiteVariantswith their inventory availability
-
getVariantAvailabilityInfo
-
buildOptionValuesKey
Builds a key representative of theLiteVariant.getOptionValues(). By default, the key is built by joining every option value in alphabetical order. -
getBrowseCatalogProvider
-
getInventoryProvider
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-