Class DefaultCartTransferService

    • Method Detail

      • transferAnonymousCartOwnership

        public com.broadleafcommerce.cart.client.domain.Cart transferAnonymousCartOwnership​(com.broadleafcommerce.cart.client.domain.Cart anonymousCart,
                                                                                            @Nullable
                                                                                            com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided anonymous cart to be in-process for the currently authenticated customer.
        Specified by:
        transferAnonymousCartOwnership in interface CartTransferService
        Parameters:
        anonymousCart - The anonymous cart to transfer ownership
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The cart now owned by the customer
      • transferAnonymousCartOwnership

        public com.broadleafcommerce.cart.client.domain.Cart transferAnonymousCartOwnership​(com.broadleafcommerce.cart.client.domain.Cart anonymousCart,
                                                                                            @Nullable
                                                                                            com.broadleafcommerce.cart.client.domain.Cart registeredCustomerCart,
                                                                                            @Nullable
                                                                                            com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided anonymous cart to be in-process for the currently authenticated customer.
        Specified by:
        transferAnonymousCartOwnership in interface CartTransferService
        Parameters:
        anonymousCart - The anonymous cart to transfer ownership
        registeredCustomerCart - The pre-existing customer's cart
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The cart now owned by the customer
      • setNewCartOwnership

        protected void setNewCartOwnership​(com.broadleafcommerce.cart.client.domain.Cart cart)
      • transferCsrCartToInProcess

        public com.broadleafcommerce.cart.client.domain.Cart transferCsrCartToInProcess​(com.broadleafcommerce.cart.client.domain.Cart csrCart,
                                                                                        @Nullable
                                                                                        com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided CSR cart to be in-process for its customer.
        Specified by:
        transferCsrCartToInProcess in interface CartTransferService
        Parameters:
        csrCart - The CSR-owned cart to replace the customer's in-process cart
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The in-process cart transferred to the customer
      • createTransferCartToken

        public TransferCartToken createTransferCartToken​(@NonNull
                                                         @NonNull com.broadleafcommerce.cart.client.domain.Cart cart)
        Description copied from interface: CartTransferService
        Creates a new TransferCartToken that can be exchanged for proof of access to transfer a particular cart.
        Specified by:
        createTransferCartToken in interface CartTransferService
        Parameters:
        cart - the cart which can be transferred using this token
        Returns:
        a transfer cart token object with an encoded token that is used to prove access to transfer the cart
      • transferAnonymousCsrCartToInProcess

        public com.broadleafcommerce.cart.client.domain.Cart transferAnonymousCsrCartToInProcess​(com.broadleafcommerce.cart.client.domain.Cart csrCart,
                                                                                                 @Nullable
                                                                                                 com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided anonymous CSR cart to be in-process for the current customer or anonymous user.
        Specified by:
        transferAnonymousCsrCartToInProcess in interface CartTransferService
        Parameters:
        csrCart - The anonymous CSR-owned cart to transfer
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        The in-process cart transferred to the customer or anonymous user
      • transferAnonymousCsrCartToInProcess

        public com.broadleafcommerce.cart.client.domain.Cart transferAnonymousCsrCartToInProcess​(com.broadleafcommerce.cart.client.domain.Cart csrCart,
                                                                                                 @Nullable
                                                                                                 com.broadleafcommerce.order.common.domain.CustomerRef customer,
                                                                                                 @Nullable
                                                                                                 com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided anonymous CSR cart to be in-process for the provided customer
        Specified by:
        transferAnonymousCsrCartToInProcess in interface CartTransferService
        Parameters:
        csrCart - the CSR cart
        customer - the customer
        contextInfo - the context info
        Returns:
        the transferred cart
      • setCartAsDefault

        public com.broadleafcommerce.cart.client.domain.Cart setCartAsDefault​(com.broadleafcommerce.cart.client.domain.Cart cartToMakeDefault,
                                                                              @Nullable
                                                                              com.broadleafcommerce.order.common.domain.CustomerRef customer,
                                                                              @Nullable
                                                                              com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: CartTransferService
        Transfer the provided cart to be the default/implicit cart for the provided customer.

        By default, implicit cart refers to a cart with no name and status of DefaultCartStatuses.IN_PROCESS.

        Specified by:
        setCartAsDefault in interface CartTransferService
        Parameters:
        cartToMakeDefault - the cart to make default
        customer - the current authenticated customer
        contextInfo - Context information around sandbox and multitenant state.
        Returns:
        the cart that is set to default
      • makeCurrentDefaultCartNamed

        protected void makeCurrentDefaultCartNamed​(@NonNull
                                                   @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customerRef,
                                                   @Nullable
                                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      • makeCurrentDefaultCartNamed

        protected void makeCurrentDefaultCartNamed​(@Nullable
                                                   String customerId,
                                                   @Nullable
                                                   String accountId,
                                                   @Nullable
                                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Make the current default Cart for the customer or account named to make way for a CSR transferred cart.
        Parameters:
        customerId - the id of the customer who owns the cart
        accountId - the id of the account that the cart belongs to
        contextInfo - context surrounding sandboxing and multitenant state
      • updateCart

        protected com.broadleafcommerce.cart.client.domain.Cart updateCart​(com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                           @Nullable
                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      • updateCart

        protected com.broadleafcommerce.cart.client.domain.Cart updateCart​(UpdateCartRequest updateCartRequest,
                                                                           @Nullable
                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      • getValidSetDefaultCartStatuses

        protected List<String> getValidSetDefaultCartStatuses()
        Retrieve the list of statuses which are considered valid to set a cart to be the default/implicit cart.

        Custom valid statuses should be added here.

        Returns:
        the list of statuses which are considered valid to set a cart to be the default/implicit cart
      • cartOwnershipMatchWithCustomerRef

        protected boolean cartOwnershipMatchWithCustomerRef​(@NonNull
                                                            @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                            @Nullable
                                                            com.broadleafcommerce.order.common.domain.CustomerRef customerRef)
        Determines if the given Cart.getCustomerRef() matches with the given CustomerRef.
        Parameters:
        cart - the Cart to check the ownership
        customerRef - the CustomerRef to check against
        Returns:
        true if the cart ownership matches with the given CustomerRef, otherwise false
      • customerMatches

        protected boolean customerMatches​(@NonNull
                                          @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                          @NonNull
                                          @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer)
      • accountMatches

        protected boolean accountMatches​(@NonNull
                                         @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                         @NonNull
                                         @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer)
      • buildCartActionAuditForClaimDefaultCart

        protected com.broadleafcommerce.cart.client.domain.CartActionAudit buildCartActionAuditForClaimDefaultCart​(@NonNull
                                                                                                                   @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                                                                   @NonNull
                                                                                                                   @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer,
                                                                                                                   @NonNull
                                                                                                                   @NonNull String oldCartStatus)
        Builds a CartActionAudit for claiming default cart.
        Parameters:
        cart - the Cart being claimed as default cart
        customer - the CustomerRef who owns this cart
        oldCartStatus - the Cart.getStatus() prior claiming this cart
        Returns:
        a CartActionAudit built for claiming default cart
      • buildUpdateCartRequest

        protected UpdateCartRequest buildUpdateCartRequest​(@NonNull
                                                           @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                           @NonNull
                                                           @NonNull com.broadleafcommerce.cart.client.domain.CartActionAudit audit)
        Builds a UpdateCartRequest from the given Cart and CartActionAudit.
        Parameters:
        cart - the Cart being updated
        audit - the CartActionAudit to create along with the cart update
        Returns:
        a UpdateCartRequest from the given Cart and CartActionAudit
      • getCartProvider

        protected CartProvider getCartProvider()
      • getAuthenticationUtils

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

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