Class CartSubscriptionUtils
java.lang.Object
com.broadleafcommerce.cartoperation.service.util.subscription.CartSubscriptionUtils
Utility class for subscription-related operations on a
Cart.- Since:
- Cart Operation Service 2.3.0, Release Train 2.3.0
- Author:
- Sunny Yu
-
Constructor Summary
ConstructorsConstructorDescriptionCartSubscriptionUtils(com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected org.springframework.core.env.EnvironmentgetExistingSubscriptionDetails(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart) Gets the existing subscription details from the cart attributes.getExistingSubscriptionItemDetail(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Gets the existing subscription item detail.getExistingSubscriptionItemDetail(@NonNull ExistingSubscriptionDetails existingSubscriptionDetails, @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) protected Optional<ExistingSubscriptionItemDetail>getExistingSubscriptionItemDetailForCustomFlow(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Hookpoint for customSubscriptionActionFlowswhen determining theExistingSubscriptionItemDetailfor the givenCartItem.protected com.fasterxml.jackson.databind.ObjectMappergetSubscriptionActionFlow(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Retrieves the subscription action flow from the cart.protected com.broadleafcommerce.common.extension.TypeFactorybooleanhasSubscriptionItems(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the cart has subscription items.identifySubscriptionRootItems(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Identifies the cart items that are serving as the root/parent item for a subscription.protected booleanisSeparateFromPrimaryItem(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) booleanWhether or not the subscription is enabled.booleanisSubscriptionItem(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Determines if the givenCartItemis a Broadleaf-managed subscription item.voidsetEnvironment(org.springframework.core.env.Environment environment)
-
Constructor Details
-
CartSubscriptionUtils
public CartSubscriptionUtils(com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
isSubscriptionEnabled
public boolean isSubscriptionEnabled()Whether or not the subscription is enabled.- Returns:
- true if the subscription is enabled, false otherwise
-
getSubscriptionActionFlow
@Nullable public String getSubscriptionActionFlow(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Retrieves the subscription action flow from the cart. If the cart does not have an existing subscription action flow, it will check if the cart has subscription items. If the cart has subscription items, it will returnDefaultSubscriptionActionFlow.CREATE.- Parameters:
cart- the cart whose subscription action flow is being evaluatedcontextInfo- context surrounding sandboxing and multitenant state- Returns:
- the subscription action flow, null if the cart does not have subscription items
- See Also:
-
hasSubscriptionItems
public boolean hasSubscriptionItems(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the cart has subscription items.- Parameters:
cart- the cart whose subscription items are being evaluatedcontextInfo- context surrounding sandboxing and multitenant state- Returns:
- true if the cart has subscription items, false otherwise
-
identifySubscriptionRootItems
public Map<String,com.broadleafcommerce.cart.client.domain.CartItem> identifySubscriptionRootItems(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Identifies the cart items that are serving as the root/parent item for a subscription. Note: each root item may or may not have dependent cart items.- Parameters:
cart- the cart whose subscription item prices are being evaluated & updatedcontextInfo- context surrounding sandboxing and multitenant state- Returns:
- a map of cart item id to subscription root cart item
-
isSubscriptionItem
public boolean isSubscriptionItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Determines if the givenCartItemis a Broadleaf-managed subscription item.Broadleaf-managed subscriptions require Broadleaf's SubscriptionOperation, Billing, and Workflow dependencies.
- Parameters:
cartItem- TheCartItemin question.- Returns:
- Whether
cartItemis a subscription.
-
isSeparateFromPrimaryItem
protected boolean isSeparateFromPrimaryItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) -
getExistingSubscriptionDetails
public ExistingSubscriptionDetails getExistingSubscriptionDetails(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart) Gets the existing subscription details from the cart attributes.This is only relevant for subscriptions in a post-purchase flow, such as
DefaultSubscriptionActionFlow.EDIT.- Parameters:
cart- the cart to get the existing subscription details from- Returns:
- the
ExistingSubscriptionDetailsfrom the cart attributes - See Also:
-
getExistingSubscriptionItemDetail
public Optional<ExistingSubscriptionItemDetail> getExistingSubscriptionItemDetail(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Gets the existing subscription item detail.- Parameters:
cart- the cart to get the existing subscription details fromcartItem- the cart item containing the id of the existing subscription item- Returns:
- the
OptionalofExistingSubscriptionItemDetail - See Also:
-
getExistingSubscriptionItemDetail
public Optional<ExistingSubscriptionItemDetail> getExistingSubscriptionItemDetail(@NonNull @NonNull ExistingSubscriptionDetails existingSubscriptionDetails, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) -
getExistingSubscriptionItemDetailForCustomFlow
protected Optional<ExistingSubscriptionItemDetail> getExistingSubscriptionItemDetailForCustomFlow(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Hookpoint for customSubscriptionActionFlowswhen determining theExistingSubscriptionItemDetailfor the givenCartItem.- Parameters:
cart- the cart to get the existing subscription details fromcartItem- the cart item containing the id of the existing subscription item- Returns:
- the
OptionalofExistingSubscriptionItemDetail - See Also:
-
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper() -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
getEnvironment
protected org.springframework.core.env.Environment getEnvironment() -
setEnvironment
@Autowired public void setEnvironment(org.springframework.core.env.Environment environment)
-