java.lang.Object
com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
com.broadleafcommerce.catalogbrowse.service.provider.external.offer.ExternalOfferProvider
All Implemented Interfaces:
OfferProvider

public class ExternalOfferProvider extends AbstractExternalProvider implements OfferProvider
Connects to an external offer service.
Author:
Jon Fleschler (jfleschler)
  • Constructor Details

    • ExternalOfferProvider

      public ExternalOfferProvider(@Qualifier("catalogBrowseWebClient") org.springframework.web.reactive.function.client.WebClient catalogBrowseWebClient, com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • fetchMarketingMessagesForRequest

      public MarketingMessageResponse fetchMarketingMessagesForRequest(@NonNull @NonNull MarketingMessageRequest request)
      Description copied from interface: OfferProvider
      Retrieves any marketing messages for the request.
      Specified by:
      fetchMarketingMessagesForRequest in interface OfferProvider
      Parameters:
      request - all the relevant information to be used to retrieve marketing messages
      Returns:
      The marketing message for the parameters provided.
    • fetchActiveOffersByIds

      public List<Offer> fetchActiveOffersByIds(@NonNull @NonNull Collection<String> offerIds, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: OfferProvider
      Retrieves all active offers matching the passed ids.
      Specified by:
      fetchActiveOffersByIds in interface OfferProvider
      Parameters:
      offerIds - list of offer ids to fetch
      contextInfo - information derived from the original request containing tenant and sandbox info
      Returns:
      list of active offers matching the passed ids
    • addCustomerContext

      protected void addCustomerContext(@NonNull @NonNull MarketingMessageRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Adds CustomerRef to the ContentContext based on the authentication and context info.
      Parameters:
      request - The MarketingMessageRequest.
      contextInfo - Additional tenant and sandbox info that may also include customer segment ids.
    • getUrl

      public String getUrl()
    • getMarketingMessagesUri

      public String getMarketingMessagesUri()
    • getOffersUri

      public String getOffersUri()
    • getServiceClient

      public String getServiceClient()
    • setUrl

      public void setUrl(String url)
    • setMarketingMessagesUri

      public void setMarketingMessagesUri(String marketingMessagesUri)
    • setOffersUri

      public void setOffersUri(String offersUri)
    • setServiceClient

      public void setServiceClient(String serviceClient)
    • getCatalogBrowseWebClient

      protected org.springframework.web.reactive.function.client.WebClient getCatalogBrowseWebClient()
    • getTypeFactory

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

      protected ExternalOfferProviderProperties getProperties()
    • setProperties

      @Autowired public void setProperties(ExternalOfferProviderProperties properties)
    • getExternalClient

      protected com.broadleafcommerce.common.extension.intercommunication.ExternalClient getExternalClient()
    • setExternalClient

      @Autowired @Qualifier("browseOfferExternalClient") public void setExternalClient(com.broadleafcommerce.common.extension.intercommunication.ExternalClient externalClient)