Class ExternalInventoryProvider
java.lang.Object
com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
com.broadleafcommerce.catalogbrowse.service.provider.external.inventory.ExternalInventoryProvider
- All Implemented Interfaces:
InventoryProvider
public class ExternalInventoryProvider
extends AbstractExternalProvider
implements InventoryProvider
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionExternalInventoryProvider(org.springframework.web.reactive.function.client.WebClient catalogBrowseWebClient, com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, ExternalInventoryProperties properties) -
Method Summary
Modifier and TypeMethodDescriptionprotected <P extends Product>
Collection<P>attachSummariesToProducts(@NonNull Collection<P> products, @NonNull Collection<SkuInventoryAvailabilitySummary> summaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Attaches inventory availability summaries to the products.protected <P extends Product>
Collection<SkuInventoryAvailabilityRequest>buildSkuInventoryAvailabilityRequests(@NonNull Collection<P> products, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds a listSkuInventoryAvailabilityRequestto verify the availability of the SKU for the provided quantity.<P extends Product>
Collection<P>determineProductsInventoryAvailability(@NonNull Collection<P> products, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected StringgetBulkAvailabilityCheckUri(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Return the GET URI for Inventory Availability.protected org.springframework.web.reactive.function.client.WebClientprotected <P extends Product>
List<SkuInventoryAvailabilitySummary>getInventorySummaries(@NonNull Collection<P> products, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected org.springframework.core.ParameterizedTypeReference<List<SkuInventoryAvailabilitySummary>>Gets the type reference for a list ofSkuInventoryAvailabilitySummary.protected ExternalInventoryPropertiesprotected Stringprotected StringgetSkuRefIdentifier(@NonNull SkuInventoryAvailabilitySummary summary, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected com.broadleafcommerce.common.extension.TypeFactoryprotected <P extends Product>
booleanproductRequiresInventoryCheck(P product, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected <V extends Variant>
booleanvariantRequiresInventoryCheck(V variant, @NonNull Product product, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Methods inherited from class com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
getAuthenticationUtils, getExternalProviderProperties, getHeaders, getHeaders, getMapper, isCallerWhitelistedService, setAuthenticationUtils, setExternalProviderProperties
-
Field Details
-
AVAILABILITY_CHECK_UNEXPECTED_FAILURE_ERROR_MSG
- See Also:
-
-
Constructor Details
-
ExternalInventoryProvider
public ExternalInventoryProvider(@Qualifier("catalogBrowseWebClient") org.springframework.web.reactive.function.client.WebClient catalogBrowseWebClient, com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, ExternalInventoryProperties properties)
-
-
Method Details
-
determineProductsInventoryAvailability
public <P extends Product> Collection<P> determineProductsInventoryAvailability(@NonNull @NonNull Collection<P> products, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:InventoryProvider- Specified by:
determineProductsInventoryAvailabilityin interfaceInventoryProvider- Parameters:
products- The products to check inventory forcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The products with inventory availability hydrated
-
getInventorySummaries
protected <P extends Product> List<SkuInventoryAvailabilitySummary> getInventorySummaries(@NonNull @NonNull Collection<P> products, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
buildSkuInventoryAvailabilityRequests
protected <P extends Product> Collection<SkuInventoryAvailabilityRequest> buildSkuInventoryAvailabilityRequests(@NonNull @NonNull Collection<P> products, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds a listSkuInventoryAvailabilityRequestto verify the availability of the SKU for the provided quantity.- Parameters:
products- The products to check inventory forcontextInfo- Context information around sandbox and multitenant state.- Returns:
- a list of sku inventory availability requests
-
productRequiresInventoryCheck
protected <P extends Product> boolean productRequiresInventoryCheck(@NonNull P product, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
variantRequiresInventoryCheck
-
attachSummariesToProducts
protected <P extends Product> Collection<P> attachSummariesToProducts(@NonNull @NonNull Collection<P> products, @NonNull @NonNull Collection<SkuInventoryAvailabilitySummary> summaries, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Attaches inventory availability summaries to the products.- Parameters:
products- The products to check inventory forsummaries- The inventory summaries to attachcontextInfo- Context information around sandbox and multitenant state.- Returns:
- The products with inventory availability hydrated
-
getSkuRefIdentifier
protected String getSkuRefIdentifier(@NonNull @NonNull SkuInventoryAvailabilitySummary summary, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
getListType
protected org.springframework.core.ParameterizedTypeReference<List<SkuInventoryAvailabilitySummary>> getListType()Gets the type reference for a list ofSkuInventoryAvailabilitySummary.- Returns:
- type reference for a list of
SkuInventoryAvailabilitySummary
-
getBulkAvailabilityCheckUri
protected String getBulkAvailabilityCheckUri(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Return the GET URI for Inventory Availability. By default, this looks for shipping locations only for the providedskuCodes.- Parameters:
contextInfo- Context information around sandbox and multitenant state.- Returns:
-
getServiceClient
-
getCatalogBrowseWebClient
protected org.springframework.web.reactive.function.client.WebClient getCatalogBrowseWebClient() -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
getProperties
-