Class CartItemValidationActivity

  • All Implemented Interfaces:
    CheckoutWorkflowActivity

    public class CartItemValidationActivity
    extends Object
    implements CheckoutWorkflowActivity
    This CheckoutWorkflowActivity is responsible for validating that the cart's CartItems include all necessary selections and data so that we can clearly understand what is being purchased and must later be fulfilled.
    Author:
    Chad Harchar (charchar), Chris Kittrell (ckittrell)
    • Constructor Detail

      • CartItemValidationActivity

        public CartItemValidationActivity​(CatalogProvider catalogProvider,
                                          CartItemConfigurationService cartItemConfigurationService,
                                          org.springframework.context.MessageSource messageSource)
    • Method Detail

      • execute

        public com.broadleafcommerce.cart.client.domain.Cart execute​(@NonNull
                                                                     @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                     @NonNull
                                                                     @NonNull String requestId,
                                                                     @Nullable
                                                                     com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CheckoutWorkflowActivity
        Method responsible for executing some work against the cart that is required for checkout. This may include, but is not limited to, cart validation checks, inventory reservations, or payment authorizations.
        Specified by:
        execute in interface CheckoutWorkflowActivity
        Parameters:
        cart - The Cart that we're attempting to checkout with.
        requestId - The id used to identify changes tied to the specific execution request
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The final state of the cart following the execution of the activity.
      • rollback

        public com.broadleafcommerce.cart.client.domain.Cart rollback​(@NonNull
                                                                      @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                      @NonNull
                                                                      @NonNull String requestId,
                                                                      @Nullable
                                                                      com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CheckoutWorkflowActivity
        Method responsible for rolling back any work that was done during the execution of the #execute(Cart, String) method.
        Specified by:
        rollback in interface CheckoutWorkflowActivity
        Parameters:
        cart - The Cart that we were attempting to checkout with, but ran into an exception/error.
        requestId - The id used to identify changes tied to the specific execution request
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The final state of the cart following the rollback of the activity.
      • validateCartItems

        protected void validateCartItems​(@NonNull
                                         @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                         @Nullable
                                         com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Validates that each of the cart's CartItems include all necessary selections and data
        Parameters:
        cart -
        contextInfo - Context information around sandbox and multitenant state.
        Throws:
        CheckoutWorkflowActivityException - thrown if an unrecoverable error is encountered during the execution of the activity
      • gatherCartItemConfigErrors

        protected Map<String,​String> gatherCartItemConfigErrors​(com.broadleafcommerce.cart.client.domain.CartItem cartItem)
        Gathers all of the config error messages for the CartItem into a map.
        Parameters:
        cartItem -
        Returns:
        the map of CartItem config error messages
      • getMessageSource

        protected org.springframework.context.MessageSource getMessageSource()
      • setStaleCartItemsService

        @Autowired
        public void setStaleCartItemsService​(StaleCartItemsService staleCartItemsService)