java.lang.Object
com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
com.broadleafcommerce.catalogbrowse.service.provider.external.recommendation.ExternalRecommendationProvider
All Implemented Interfaces:
RecommendationProvider

public class ExternalRecommendationProvider extends AbstractExternalProvider implements RecommendationProvider
  • Field Details

  • Constructor Details

    • ExternalRecommendationProvider

      public ExternalRecommendationProvider(org.springframework.web.reactive.function.client.WebClient webClient, com.fasterxml.jackson.databind.ObjectMapper mapper, ExternalRecommendationProviderProperties properties, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • fetchRecommendationsForCustomer

      public UserRecommendation fetchRecommendationsForCustomer(RecommendationRequest recommendationRequest, CustomerRef customerRef, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: RecommendationProvider
      Retrieves any recommendations for the user based on context.
      Specified by:
      fetchRecommendationsForCustomer in interface RecommendationProvider
      Parameters:
      recommendationRequest - all the relevant information to be used to retrieve recommendations
      customerRef - the customer for which recommendations should be returned
      contextInfo - additional context info needed to query appropriate recommendations
      Returns:
      Recommendations for the user provided.
    • buildCustomerContextHeader

      protected String buildCustomerContextHeader(CustomerRef customerRef, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • createCustomerContext

      protected CustomerContext createCustomerContext(CustomerRef customerRef, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • getServiceClient

      protected String getServiceClient()
    • getWebClient

      protected org.springframework.web.reactive.function.client.WebClient getWebClient()
    • getMapper

      protected com.fasterxml.jackson.databind.ObjectMapper getMapper()
      Overrides:
      getMapper in class AbstractExternalProvider
    • getProperties

      protected ExternalRecommendationProviderProperties getProperties()
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()