Class CheckoutCompletionListener


  • public class CheckoutCompletionListener
    extends Object
    An event listener that triggers when checkout successfully completes. Responsible for creating the Order based on the submitted Cart.
    • Constructor Detail

      • CheckoutCompletionListener

        public CheckoutCompletionListener​(com.broadleafcommerce.common.extension.TypeFactory typeFactory,
                                          CartOrderGenerationService<com.broadleafcommerce.cart.client.domain.Cart,​com.broadleafcommerce.order.client.domain.Order> cartOrderGenerationService,
                                          CartOrderFulfillmentGenerationService<com.broadleafcommerce.cart.client.domain.Cart,​com.broadleafcommerce.order.client.domain.Order,​com.broadleafcommerce.order.client.domain.OrderFulfillment> cartOrderFulfillmentGenerationService,
                                          com.broadleafcommerce.common.messaging.service.IdempotentMessageConsumptionService idempotentConsumptionService,
                                          OrderCreatedProducer orderCreatedProducer,
                                          CartProvider cartProvider)
    • Method Detail

      • listen

        @StreamListener("checkoutCompletionInputOrder")
        public void listen​(org.springframework.messaging.Message<CheckoutCompletionEvent> message)
        Event listener entry point. Checks if the message has already been received and, if not, begins processing it.
        Parameters:
        message - the message payload event
      • processMessage

        protected void processMessage​(org.springframework.messaging.Message<CheckoutCompletionEvent> message)
      • process

        protected void process​(@NonNull
                               @NonNull CheckoutCompletionEvent event)
        Processes the received message by generating an Order and OrderFulfillments.
        Parameters:
        event - the message payload event
      • populateActualCart

        protected com.broadleafcommerce.cart.client.domain.Cart populateActualCart​(CheckoutCompletionEvent event)
      • populateIncludedTax

        protected void populateIncludedTax​(com.broadleafcommerce.cart.client.domain.Cart cart)
      • populateCartItems

        protected void populateCartItems​(com.broadleafcommerce.cart.client.domain.Cart cart,
                                         CheckoutCompletionEvent event)
      • populateFulfillmentGroups

        protected void populateFulfillmentGroups​(com.broadleafcommerce.cart.client.domain.Cart cart,
                                                 CheckoutCompletionEvent event)
      • sendOrderCreatedMessage

        protected void sendOrderCreatedMessage​(com.broadleafcommerce.order.client.domain.Order order,
                                               List<com.broadleafcommerce.order.client.domain.OrderFulfillment> fulfillments,
                                               @Nullable
                                               com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      • getTypeFactory

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

        protected CartOrderGenerationService<com.broadleafcommerce.cart.client.domain.Cart,​com.broadleafcommerce.order.client.domain.Order> getCartOrderGenerationService()
      • getCartOrderFulfillmentGenerationService

        protected CartOrderFulfillmentGenerationService<com.broadleafcommerce.cart.client.domain.Cart,​com.broadleafcommerce.order.client.domain.Order,​com.broadleafcommerce.order.client.domain.OrderFulfillment> getCartOrderFulfillmentGenerationService()
      • getIdempotentConsumptionService

        protected com.broadleafcommerce.common.messaging.service.IdempotentMessageConsumptionService getIdempotentConsumptionService()
      • getCartProvider

        protected CartProvider getCartProvider()