Class DefaultCheckoutPaymentMethodService

java.lang.Object
com.broadleafcommerce.cartoperation.service.payment.DefaultCheckoutPaymentMethodService
All Implemented Interfaces:
CheckoutPaymentMethodService

public class DefaultCheckoutPaymentMethodService extends Object implements CheckoutPaymentMethodService
Author:
Marie Standeven (mariestandeven)
  • Constructor Details

  • Method Details

    • getCheckoutPaymentMethodOptions

      public List<CheckoutPaymentMethodOption> getCheckoutPaymentMethodOptions(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.order.common.domain.CustomerRef customer, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CheckoutPaymentMethodService
      Find the available checkout payment method options for the given cart, customer, and context.
      Specified by:
      getCheckoutPaymentMethodOptions in interface CheckoutPaymentMethodService
      Parameters:
      cart - the current cart in checkout
      customer - a reference to the current customer in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      a list of payment method options available in the current checkout context
    • getCheckoutPaymentExpectations

      public CheckoutPaymentExpectations getCheckoutPaymentExpectations(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.order.common.domain.CustomerRef customer, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CheckoutPaymentMethodService
      Get the consolidated checkout payment expectations (requirements) and available options.
      Specified by:
      getCheckoutPaymentExpectations in interface CheckoutPaymentMethodService
      Parameters:
      cart - the current cart in checkout
      customer - a reference to the current customer in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      checkout payment expectations and options
    • isPaymentRequired

      public boolean isPaymentRequired(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CheckoutPaymentMethodService
      Check if an active payment is required to submit checkout for the cart.
      Specified by:
      isPaymentRequired in interface CheckoutPaymentMethodService
      Parameters:
      cart - the current cart in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      true if a payment is required, false otherwise
    • isSavedPaymentMethodRequired

      public boolean isSavedPaymentMethodRequired(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CheckoutPaymentMethodService
      Check if a saved payment method is required to submit checkout for the cart.
      Specified by:
      isSavedPaymentMethodRequired in interface CheckoutPaymentMethodService
      Parameters:
      cart - the current cart in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      true if a saved payment method is required, false otherwise
    • cartHasSubscriptionItems

      protected boolean cartHasSubscriptionItems(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Checks if the cart contains subscription items.
      Parameters:
      cart - the current cart
      contextInfo - context information around sandbox and multitenant state
      Returns:
      true if the cart has subscription items, false otherwise
      Since:
      Cart Operation Service 3.0.0, Release Train 3.0.0
    • isSavedPaymentMethodRequiredForSubscriptionCart

      protected boolean isSavedPaymentMethodRequiredForSubscriptionCart(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Checks if a saved payment method is required for subscription carts.
      Parameters:
      cart - the current cart
      contextInfo - context information around sandbox and multitenant state
      Returns:
      true if a saved payment method is required, false otherwise
      Since:
      Cart Operation Service 3.0.0, Release Train 3.0.0
    • readCustomerActivePaymentMethods

      protected org.springframework.data.domain.Page<SavedPaymentMethodSummary> readCustomerActivePaymentMethods(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads the active saved payment methods for the customer of the given cart.
      Parameters:
      cart - the current cart
      contextInfo - context information around sandbox and multitenant state
      Returns:
      a page of active saved payment method summaries
      Since:
      Cart Operation Service 3.0.0, Release Train 3.0.0
    • filterAvailableCheckoutPaymentMethodOptionsByCustomer

      protected List<CheckoutPaymentMethodOption> filterAvailableCheckoutPaymentMethodOptionsByCustomer(@NonNull @NonNull List<CheckoutPaymentMethodOption> checkoutPaymentMethodOptions, @Nullable com.broadleafcommerce.order.common.domain.CustomerRef customerRef, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Hook point to filter available checkout payment method options by the customer details.
      Parameters:
      checkoutPaymentMethodOptions - the list of available checkout payment method options
      customerRef - a reference to the current customer in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      the updated list of available payment methods
    • filterAvailableCheckoutPaymentMethodOptionsByCart

      protected List<CheckoutPaymentMethodOption> filterAvailableCheckoutPaymentMethodOptionsByCart(@NonNull @NonNull List<CheckoutPaymentMethodOption> checkoutPaymentMethodOptions, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Hook point to filter available checkout payment method options by the cart details.
      Parameters:
      checkoutPaymentMethodOptions - the list of available checkout payment method options
      cart - the current cart in checkout
      contextInfo - context information around sandbox and multitenant state
      Returns:
      the updated list of available payment methods
    • isPaymentMethodOptionAvailableForFulfillmentGroups

      protected boolean isPaymentMethodOptionAvailableForFulfillmentGroups(@NonNull @NonNull CheckoutPaymentMethodOption option, @NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.FulfillmentGroup> fulfillmentGroups)
      Checks that the option is available at least for one of the fulfillment groups.
      Parameters:
      option - the payment method option to validate
      fulfillmentGroups - the cart fulfillment groups
      Returns:
      true if fulfillment groups is empty or the option is available for one of the group
    • doFulfillmentExclusionsPassForPayment

      protected boolean doFulfillmentExclusionsPassForPayment(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.FulfillmentGroup fulfillmentGroup, @NonNull @NonNull CheckoutPaymentMethodOption codCheckoutPaymentMethodOption)
    • doFulfillmentInclusionsPassForPayment

      protected boolean doFulfillmentInclusionsPassForPayment(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.FulfillmentGroup fulfillmentGroup, @NonNull @NonNull CheckoutPaymentMethodOption codCheckoutPaymentMethodOption)
    • isCartMaxTotalAllowedForPayment

      protected boolean isCartMaxTotalAllowedForPayment(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull CheckoutPaymentMethodOption option)
    • isCartMinTotalAllowedForPayment

      protected boolean isCartMinTotalAllowedForPayment(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull CheckoutPaymentMethodOption option)
    • getApplicationIdFromContext

      @Nullable protected String getApplicationIdFromContext(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • getTenantIdFromContext

      @Nullable protected String getTenantIdFromContext(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • getCartOperationCheckoutProperties

      protected CartOperationCheckoutProperties getCartOperationCheckoutProperties()
    • getSpelRuleEvaluationService

      protected com.broadleafcommerce.rulesengine.expression.service.SpelRuleEvaluationService getSpelRuleEvaluationService()
    • setSpelRuleEvaluationService

      @Autowired public void setSpelRuleEvaluationService(com.broadleafcommerce.rulesengine.expression.service.SpelRuleEvaluationService spelRuleEvaluationService)
    • getPaymentProvider

      protected PaymentProvider<PaymentSummary> getPaymentProvider()
    • setPaymentProvider

      @Autowired public void setPaymentProvider(PaymentProvider<PaymentSummary> paymentProvider)
    • getCartSubscriptionUtils

      protected CartSubscriptionUtils getCartSubscriptionUtils()
    • setCartSubscriptionUtils

      @Autowired public void setCartSubscriptionUtils(CartSubscriptionUtils cartSubscriptionUtils)
    • getAuthenticationUtils

      protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils getAuthenticationUtils()
    • setAuthenticationUtils

      @Autowired public void setAuthenticationUtils(com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils)