Class DefaultCartTransferService
- java.lang.Object
-
- com.broadleafcommerce.cartoperation.service.csr.DefaultCartTransferService
-
- All Implemented Interfaces:
CartTransferService
public class DefaultCartTransferService extends Object implements CartTransferService
-
-
Constructor Summary
Constructors Constructor Description DefaultCartTransferService(CartOperationService cartOperationService, CartProvider cartProvider, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils, com.broadleafcommerce.common.extension.TypeFactory typeFactory, TransferCartTokenEncoder transferCartTokenEncoder, TransferCartTokenDecoder transferCartTokenDecoder, PaymentProvider<PaymentSummary> paymentProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected boolean
accountMatches(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer)
protected com.broadleafcommerce.cart.client.domain.CartActionAudit
buildCartActionAuditForClaimDefaultCart(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer, @NonNull String oldCartStatus)
Builds aCartActionAudit
for claiming default cart.protected UpdateCartRequest
buildUpdateCartRequest(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartActionAudit audit)
protected boolean
cartOwnershipMatchWithCustomerRef(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.order.common.domain.CustomerRef customerRef)
Determines if the givenCart.getCustomerRef()
matches with the givenCustomerRef
.TransferCartToken
createTransferCartToken(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart)
Creates a newTransferCartToken
that can be exchanged for proof of access to transfer a particular cart.protected boolean
customerMatches(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.order.common.domain.CustomerRef customer)
protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils
getAuthenticationUtils()
protected CartOperationService
getCartOperationService()
protected CartProvider
getCartProvider()
protected PaymentProvider<PaymentSummary>
getPaymentProvider()
protected TransferCartTokenDecoder
getTransferCartTokenDecoder()
protected TransferCartTokenEncoder
getTransferCartTokenEncoder()
protected com.broadleafcommerce.common.extension.TypeFactory
getTypeFactory()
protected List<String>
getValidSetDefaultCartStatuses()
Retrieve the list of statuses which are considered valid to set a cart to be the default/implicit cart.protected void
makeCurrentDefaultCartNamed(@NonNull com.broadleafcommerce.order.common.domain.CustomerRef customerRef, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
protected void
makeCurrentDefaultCartNamed(String customerId, String accountId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Make the current defaultCart
for the customer or account named to make way for a CSR transferred cart.protected void
moveCustomerCartForCsrTransfer(String customerId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Deprecated, for removal: This API element is subject to removal in a future version.since 1.8.0, in favor ofmakeCurrentDefaultCartNamed(String, String, ContextInfo)
com.broadleafcommerce.cart.client.domain.Cart
setCartAsDefault(com.broadleafcommerce.cart.client.domain.Cart cartToMakeDefault, com.broadleafcommerce.order.common.domain.CustomerRef customer, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided cart to be the default/implicit cart for the provided customer.protected void
setNewCartOwnership(com.broadleafcommerce.cart.client.domain.Cart cart)
com.broadleafcommerce.cart.client.domain.Cart
transferAnonymousCartOwnership(com.broadleafcommerce.cart.client.domain.Cart anonymousCart, com.broadleafcommerce.cart.client.domain.Cart registeredCustomerCart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided anonymous cart to be in-process for the currently authenticated customer.com.broadleafcommerce.cart.client.domain.Cart
transferAnonymousCartOwnership(com.broadleafcommerce.cart.client.domain.Cart anonymousCart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided anonymous cart to be in-process for the currently authenticated customer.com.broadleafcommerce.cart.client.domain.Cart
transferAnonymousCsrCartToInProcess(com.broadleafcommerce.cart.client.domain.Cart csrCart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided anonymous CSR cart to be in-process for the current customer or anonymous user.com.broadleafcommerce.cart.client.domain.Cart
transferAnonymousCsrCartToInProcess(com.broadleafcommerce.cart.client.domain.Cart csrCart, com.broadleafcommerce.order.common.domain.CustomerRef customer, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided anonymous CSR cart to be in-process for the provided customercom.broadleafcommerce.cart.client.domain.Cart
transferCsrCartToInProcess(com.broadleafcommerce.cart.client.domain.Cart csrCart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Transfer the provided CSR cart to be in-process for its customer.protected com.broadleafcommerce.cart.client.domain.Cart
updateCart(com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
protected com.broadleafcommerce.cart.client.domain.Cart
updateCart(UpdateCartRequest updateCartRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
protected void
updatePaymentManagementStatuses(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Deprecated.TransferCartToken
validateTransferCartToken(String tokenString)
Attempts to decode and validate the provided token string into aTransferCartToken
.
-
-
-
Constructor Detail
-
DefaultCartTransferService
public DefaultCartTransferService(CartOperationService cartOperationService, CartProvider cartProvider, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils, com.broadleafcommerce.common.extension.TypeFactory typeFactory, TransferCartTokenEncoder transferCartTokenEncoder, TransferCartTokenDecoder transferCartTokenDecoder, PaymentProvider<PaymentSummary> paymentProvider)
-
-
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 interfaceCartTransferService
- Parameters:
anonymousCart
- The anonymous cart to transfer ownershipcontextInfo
- 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 interfaceCartTransferService
- Parameters:
anonymousCart
- The anonymous cart to transfer ownershipregisteredCustomerCart
- The pre-existing customer's cartcontextInfo
- 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 interfaceCartTransferService
- Parameters:
csrCart
- The CSR-owned cart to replace the customer's in-process cartcontextInfo
- 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 newTransferCartToken
that can be exchanged for proof of access to transfer a particular cart.- Specified by:
createTransferCartToken
in interfaceCartTransferService
- 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
-
validateTransferCartToken
public TransferCartToken validateTransferCartToken(String tokenString) throws TransferCartTokenParseException
Description copied from interface:CartTransferService
Attempts to decode and validate the provided token string into aTransferCartToken
. This is used to provide a way to check that a token is valid and to extract the contents.- Specified by:
validateTransferCartToken
in interfaceCartTransferService
- Parameters:
tokenString
- the encoded token string- Returns:
- a transfer cart token object
- Throws:
TransferCartTokenParseException
-
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 interfaceCartTransferService
- Parameters:
csrCart
- The anonymous CSR-owned cart to transfercontextInfo
- 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 interfaceCartTransferService
- Parameters:
csrCart
- the CSR cartcustomer
- the customercontextInfo
- 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 interfaceCartTransferService
- Parameters:
cartToMakeDefault
- the cart to make defaultcustomer
- the current authenticated customercontextInfo
- Context information around sandbox and multitenant state.- Returns:
- the cart that is set to default
-
moveCustomerCartForCsrTransfer
@Deprecated(since="1.8.0", forRemoval=true) protected void moveCustomerCartForCsrTransfer(@Nullable String customerId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Deprecated, for removal: This API element is subject to removal in a future version.since 1.8.0, in favor ofmakeCurrentDefaultCartNamed(String, String, ContextInfo)
-
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 defaultCart
for the customer or account named to make way for a CSR transferred cart.- Parameters:
customerId
- the id of the customer who owns the cartaccountId
- the id of the account that the cart belongs tocontextInfo
- 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 givenCart.getCustomerRef()
matches with the givenCustomerRef
.- Parameters:
cart
- theCart
to check the ownershipcustomerRef
- theCustomerRef
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 aCartActionAudit
for claiming default cart.- Parameters:
cart
- theCart
being claimed as default cartcustomer
- theCustomerRef
who owns this cartoldCartStatus
- theCart.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)
- Parameters:
cart
- theCart
being updatedaudit
- theCartActionAudit
to create along with the cart update- Returns:
- a
UpdateCartRequest
from the givenCart
andCartActionAudit
-
updatePaymentManagementStatuses
@Deprecated protected void updatePaymentManagementStatuses(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Deprecated.
-
getCartOperationService
protected CartOperationService getCartOperationService()
-
getCartProvider
protected CartProvider getCartProvider()
-
getAuthenticationUtils
protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils getAuthenticationUtils()
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-
getTransferCartTokenEncoder
protected TransferCartTokenEncoder getTransferCartTokenEncoder()
-
getTransferCartTokenDecoder
protected TransferCartTokenDecoder getTransferCartTokenDecoder()
-
getPaymentProvider
protected PaymentProvider<PaymentSummary> getPaymentProvider()
-
-