Serialized Form
-
Package com.broadleafcommerce.subscriptionoperation.domain
-
Class com.broadleafcommerce.subscriptionoperation.domain.CancellationPolicy
class CancellationPolicy extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
attributes
Map<String,
Object> attributes The additional attributes. -
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
description
String description
The description of the policy. -
id
String id
The id of the policy. -
name
String name
The name of the policy. -
policyRules
String policyRules
The rules of the policy that are used to matching items. -
postpaidPolicyDetail
CancellationPolicyDetail postpaidPolicyDetail
The policy details for items that are using theDefaultSubscriptionPaymentStrategy.POSTPAIDstrategy. -
prepaidPolicyDetail
CancellationPolicyDetail prepaidPolicyDetail
The policy details for items that are using theDefaultSubscriptionPaymentStrategy.PREPAIDstrategy. -
priority
Integer priority
The priority of the policy/ -
requiresDirectReference
boolean requiresDirectReference
Whether the policy requires direct reference via Product or PriceData references.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.CancellationPolicyDetail
class CancellationPolicyDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
allowCancellation
boolean allowCancellation
Whether the customer can cancel their service before the end of the agreement. -
attributes
Map<String,
Object> attributes The additional attributes. -
cancellationFeeProductId
String cancellationFeeProductId
The product id that holds the cancellation fee. -
cancellationStrategy
String cancellationStrategy
The strategy to use when cancelling a subscription, e.g. IMMEDIATE, CANCEL_AUTO_RENEWAL.- See Also:
-
chargeForPreviouslyReceivedDiscountAmounts
boolean chargeForPreviouslyReceivedDiscountAmounts
Whether the customer would be charged for any discounts he/she received before cancelling the subscription. -
chargeForRemainderOfTerms
boolean chargeForRemainderOfTerms
Whether the customer would be charged for the remainder of the term despite cancelling the subscription. -
chargeFullPriceForRemainderOfTerms
boolean chargeFullPriceForRemainderOfTerms
Whether the customer would be charged the full price for the remainder of the term despite cancelling the subscription. -
chargeStrategy
String chargeStrategy
The strategy to use when charging a customer for cancelling a subscription, e.g. NO_CHARGE, PRORATED.- See Also:
-
gracePeriodCancellationFeeProductId
String gracePeriodCancellationFeeProductId
The product id that holds the cancellation fee for the grace period. -
gracePeriodCancellationStrategy
String gracePeriodCancellationStrategy
The cancellation strategy to use during the grace period.- See Also:
-
gracePeriodChargeStrategy
String gracePeriodChargeStrategy
The charge strategy to use during the grace period.- See Also:
-
gracePeriodDurationInDays
Integer gracePeriodDurationInDays
Duration of the initial grace period in days. -
gracePeriodRecursEachBillingPeriod
boolean gracePeriodRecursEachBillingPeriod
Whether the grace period repeats after each billing period.For “terms”, this would typically be false.
-
gracePeriodSupported
boolean gracePeriodSupported
Whether grace period properties are enabled.The grace period is a time-window (typically ~7 days) in which the cancellation policy can differ from the normal cancellation policy. This period occurs just after the subscription’s Auto Renewal. For products without a contract, the grace period opens at the beginning of each period. For products with a contract, the grace period opens at the beginning of the contract & each contract renewal.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.Category
class Category extends Object implements Serializable- serialVersionUID:
- 1L
-
Class com.broadleafcommerce.subscriptionoperation.domain.DelayedSubscriptionAction
class DelayedSubscriptionAction extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
actionEffectiveType
String actionEffectiveType
The descriptor of when the price change should take effect. -
actionFlow
String actionFlow
The original action flow that led to the creation of this delayed action.- See Also:
-
actionType
String actionType
The type of delayed action that is to be performed.- See Also:
-
applicablePeriod
Integer applicablePeriod
The period number on which the delayed action is due. For example, ifDelayedSubscriptionAction.getActionEffectiveType()isDefaultDelayedSubscriptionActionEffectiveType.NEXT_BILL_DATE, then this will represent the subscription's current period when the original action was requested + 1. -
attributes
Map<String,
Object> attributes Any additional attributes used to describe the delayed action -
orderFulfillmentId
String orderFulfillmentId
The id of the fulfillment that led to the creation of this delayed action. -
orderId
String orderId
The id of the order that led to the creation of this delayed action. -
subscriptionId
String subscriptionId
The id of delayed action's related subscription. -
workflowName
String workflowName
The name of the workflow that created this delayed action.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.EstimatedFuturePayment
class EstimatedFuturePayment extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
amount
javax.money.MonetaryAmount amount
Amount due on the payment schedule date. Equal toEstimatedFuturePayment.getProratedAmount()+EstimatedFuturePayment.getPriorUnbilledAmount()-EstimatedFuturePayment.getCreditedAmount(). -
billDate
Instant billDate
The date on which the customer is expected to be billed. -
creditedAmount
javax.money.MonetaryAmount creditedAmount
For edits, upgrades, and downgrades, the system has partial credits to the prorated amount that the customer already paid. Typically only impacts the first period in the estimatedFuturePaymentsList. For example, consider a customer who is upgrading from 10 to 20 licenses at $1 each half-way through a 30 day month. The user prorated amount would be $10 for 20 licenses. This user has already partially paid for 10 of the licenses, so they will be due a credit of $5 toward the amount. -
itemDetails
List<SubscriptionItemPriceDetail> itemDetails
A list ofSubscriptionPriceItemDetailsdescribing the individual item prices that contributed to the overallEstimatedFuturePayment.getAmount(). -
periodEndDate
Instant periodEndDate
The date describing the end of the billing period that is being billed for. -
periodNumber
Integer periodNumber
The period number of the billing period. -
periodStartDate
Instant periodStartDate
The date describing the beginning of the billing period that is being billed for. -
priorUnbilledAmount
javax.money.MonetaryAmount priorUnbilledAmount
Prior to an upgrade, downgrade, or edit, the system may have prior unbilled charges that will be part of the next invoice. In this case, the user will owe this in addition to the prorated charges for the changes being made. Typically only impacts the first period in the estimatedFuturePaymentsList. -
proratedAmount
javax.money.MonetaryAmount proratedAmount
Prorated amount for this item (for new, this would match the amount)
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ExistingAdjustmentDetail
class ExistingAdjustmentDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
adjustmentName
String adjustmentName
- See Also:
-
adjustmentRef
String adjustmentRef
- See Also:
-
attributes
Map<String,
Object> attributes Additional attributes to include. -
beginPeriod
Integer beginPeriod
- See Also:
-
discountType
String discountType
- See Also:
-
endPeriod
Integer endPeriod
- See Also:
-
freeTrialEndDate
Instant freeTrialEndDate
The end date of the free trial for this subscription, if applicable, null if none applied.This is an easy way to determine if a subscription is in a free trial period without having to calculate from the adjustment.
-
id
String id
-
periodsAlreadyUsed
int periodsAlreadyUsed
Represents the number of periods this adjustment has already been used. This is helpful to determine if the adjustment has any remaining periods.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionAdjustmentDetail
class ExistingSubscriptionAdjustmentDetail extends ExistingAdjustmentDetail implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
subscriptionId
String subscriptionId
Id of theSubscription.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionDetails
class ExistingSubscriptionDetails extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
attributes
Map<String,
Object> attributes Additional attributes to include. -
currentPeriod
Integer currentPeriod
The subscription's current period -
delayedActions
List<DelayedSubscriptionAction> delayedActions
List of delayed actions for this subscription. Often, these delayed actions are related to requested actions against a subscription with aDefaultSubscriptionPaymentStrategy.PREPAIDSubscription.getPaymentStrategy()where instead of refunding the customer, the action is delayed until the end of the period, causing the next period to naturally identify the updated price. -
existingAdjustmentDetails
List<ExistingSubscriptionAdjustmentDetail> existingAdjustmentDetails
-
existingItemDetails
List<ExistingSubscriptionItemDetail> existingItemDetails
-
paymentStrategy
String paymentStrategy
Declares that payments made against a subscription are going towards the goods/services rendered in the previous vs current period.- See Also:
-
periodFrequency
int periodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withExistingSubscriptionDetails.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
ExistingSubscriptionDetails.periodType
-
periodType
String periodType
The period type for the price, e.g. MONTHLY, QUARTERLY, ANNUALLY- See Also:
-
ExistingSubscriptionDetails.periodFrequency
-
rootSubscriptionItemId
String rootSubscriptionItemId
ID of the rootSubscriptionItem. -
subscriptionId
String subscriptionId
- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionItemAdjustmentDetail
class ExistingSubscriptionItemAdjustmentDetail extends ExistingAdjustmentDetail implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
subscriptionItemId
String subscriptionItemId
Id of theSubscriptionItem.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionItemDetail
class ExistingSubscriptionItemDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
addOnKey
String addOnKey
- See Also:
-
attributes
Map<String,
Object> attributes Additional attributes to include. -
existingItemAdjustmentDetails
List<ExistingSubscriptionItemAdjustmentDetail> existingItemAdjustmentDetails
-
itemQuantity
Integer itemQuantity
- See Also:
-
itemRef
String itemRef
- See Also:
-
itemRefType
String itemRefType
- See Also:
-
itemSku
String itemSku
- See Also:
-
subscriptionItemId
String subscriptionItemId
- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ItemChoice
class ItemChoice extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Map holding any additional attributes passed in the request not matching any defined properties. -
allowAddAfterInitialPurchase
boolean allowAddAfterInitialPurchase
Whether the customer is allowed to add an optional item after initial purchase. -
allowEditAfterInitialPurchase
boolean allowEditAfterInitialPurchase
Whether edit is allowed after initial purchase. -
allowQtyEditAfterInitialPurchase
boolean allowQtyEditAfterInitialPurchase
Whether quantity can be edited after initial purchase. -
allowRemoveAfterInitialPurchase
boolean allowRemoveAfterInitialPurchase
Whether the customer is allowed to remove an optional item after initial purchase. -
attributes
Map<String,
Object> attributes Miscellaneous attributes for this tag. -
category
Category category
TheCategorywhich the choice will be chosen from by the customer if theItemChoice.targetTypeisDefaultItemChoiceTargetType.CATEGORY. -
choiceKey
String choiceKey
The key used during the validation of cart item's configuration to relate thisItemChoiceto one of the cart item's dependent items. -
defaultProduct
Product defaultProduct
The default product that can be used when driving customer selections if theItemChoice.targetTypeisDefaultItemChoiceTargetType.SPECIFIC_PRODUCTS. Can be null. -
defaultProductInCategory
Product defaultProductInCategory
The default product that can be used when driving customer selections if theItemChoice.targetTypeisDefaultItemChoiceTargetType.CATEGORY. -
defaultVariant
Variant defaultVariant
The default variant that can be used when driving customer selections if theItemChoice.targetTypeisDefaultItemChoiceTargetType.SPECIFIC_VARIANTS. Can be null. -
discountAllowed
boolean discountAllowed
Dictates whether or not discounts are allowed to be applied to this choice. -
hasPostPurchaseEditRules
boolean hasPostPurchaseEditRules
Whether this has post purchase edit rules. -
isSeparateFromPrimaryItem
boolean isSeparateFromPrimaryItem
Whether this is a sub-item on the main subscription or a separate item. -
isSubscription
boolean isSubscription
Whether this addon is a subscription addon. -
maximumQuantity
Integer maximumQuantity
The maximum amount of this item that a customer can purchase at a time. If null, this would allow a customer to specify their own quantity for how many of these items they can add to the cart. -
minimumQuantity
Integer minimumQuantity
The minimum amount of the item that a customer must purchase. -
overridePrice
javax.money.MonetaryAmount overridePrice
The price of this choice. If no pricing is specified here, the price of the target
product,ItemChoice.getDefaultVariant()() variant}, or selected product from thecategorywill be used.If this is a
DefaultItemChoiceTargetType.SPECIFIC_PRODUCTSorDefaultItemChoiceTargetType.SPECIFIC_VARIANTSthen any price set here will be overridden by the item pricing set on any of theItemChoice.specificChoicesfor that choice. -
pricingKey
String pricingKey
System-wide unique identifier to configure specific pricing for the choice. Relevant if pricing data is managed in a separate system or data store, like the Broadleaf pricing services. -
restrictQtyDecreaseAfterDays
Integer restrictQtyDecreaseAfterDays
The number of days after which a quantity decrease is not allowed until the window re-opens at the next billing cycle.nullmeans no restriction. -
restrictRemovalAfterDays
Integer restrictRemovalAfterDays
The number of days after which an item can't be removed from the subscription, until the window re-opens at the next billing cycle.nullmeans no restriction. -
selectionType
String selectionType
Describes restrictions placed on the customer's ability to select items from the targeted set. Generally, this is a restriction on how many choices can be selected for a single add-to-cart request and, potentially, how quantity is distributed among multiple selected choices.- See Also:
-
specificChoices
List<SpecificItemChoice> specificChoices
If theItemChoice.targetTypeisDefaultItemChoiceTargetType.SPECIFIC_PRODUCTSorDefaultItemChoiceTargetType.SPECIFIC_VARIANTSthis holds the manually-curated options that the customer can choose from. This also allows for specific override pricing on an item-by-item basis -
specificItemChoice
SpecificItemChoice specificItemChoice
If theItemChoice.targetTypeisDefaultItemChoiceTargetType.SPECIFIC_PRODUCTorDefaultItemChoiceTargetType.SPECIFIC_VARIANTthis holds the manually selected option that the customer can choose to add on. This also allows for specific override pricing. -
targetType
String targetType
Identifies the type of items that a customer can choose from, whether specific products, specific variants, or products from a specific category.- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.NonCatalogItemDetails
class NonCatalogItemDetails extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set on this item. -
discountable
boolean discountable
Whether this non-catalog item can receive discounts. Default is false. -
itemName
String itemName
The name of the non-catalog-item. -
price
javax.money.MonetaryAmount price
The price of the non-catalog-item. -
taxable
boolean taxable
Whether this non-catalog item is taxable. Default is false.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.PeriodDefinition
class PeriodDefinition extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
billDate
Instant billDate
The date on which the customer is expected to be billed. -
numberOfDaysInFullPeriod
Long numberOfDaysInFullPeriod
If a period is shortened (typically by theSubscription.getEndOfTermDate()occurring before the end of the period), then this value will describe the number of days in the full period - i.e. the length of the period if it had not been shortened. Otherwise, this value will be null. If the period is shortened, this value should be used in combination withPeriodDefinition.getNumberOfDaysInShortenedPeriod()to prorate subscription pricing for the subscription period.PeriodDefinition.numberOfDaysInShortenedPerioddivided byPeriodDefinition.getNumberOfDaysInFullPeriod()gives the proration rate. -
numberOfDaysInShortenedPeriod
Long numberOfDaysInShortenedPeriod
If a period is shortened (typically by theSubscription.getEndOfTermDate()occurring before the end of the period), then this value will describe the number of days in the shortened period. Otherwise, this value will be null. If the period is shortened, this value should be used in combination withPeriodDefinition.getNumberOfDaysInFullPeriod()to prorate subscription pricing for the subscription period.PeriodDefinition.numberOfDaysInShortenedPerioddivided byPeriodDefinition.getNumberOfDaysInFullPeriod()gives the proration rate. -
periodEndDate
Instant periodEndDate
The date describing the end of the billing period that is being billed for. -
periodNumber
int periodNumber
The period number of the billing period. -
periodStartDate
Instant periodStartDate
The date describing the beginning of the billing period that is being billed for. -
shortenedPeriodReason
String shortenedPeriodReason
Describes the reason that the period was shortened.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.PriceDataChange
class PriceDataChange extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalProperties
Map<String,
Object> additionalProperties Any additional information related to the price change. -
afterRecurringPrice
BigDecimal afterRecurringPrice
The price after the change -
beforeRecurringPrice
BigDecimal beforeRecurringPrice
The price before the change -
id
String id
An identifying label for this change. Generally relates back to an idempotent reference for the source of the change. This is a measure to allow repeat execution of the source flow without introducing duplicate price data change records on the subscription, since the equals and hashcode will be influenced by this field. -
priceChangeEffectiveType
String priceChangeEffectiveType
The descriptor of when the price change should take effect. -
priceDataId
String priceDataId
The ID of the price data that is changed
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.PriceDataChangeRequest
class PriceDataChangeRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
priceDataChange
PriceDataChange priceDataChange
-
subscriptionsByApplication
Map<String,
Set<String>> subscriptionsByApplication
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.Product
class Product extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
allowChangingBillingFrequency
boolean allowChangingBillingFrequency
Whether the billing frequency can be changed after initial purchase. -
allowQtyEditAfterInitialPurchase
boolean allowQtyEditAfterInitialPurchase
Whether quantity can be edited after initial purchase. -
attributes
Map<String,
Object> attributes Map holding any additional attributes passed in the request not matching any defined properties. -
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
currency
javax.money.CurrencyUnit currency
Currency for all of the prices on this product -
downgradeProductIds
List<String> downgradeProductIds
The list of ids of the product that this product can downgrade to. -
id
String id
The id of the product. -
maximumThreshold
Integer maximumThreshold
The maximum count of this product that must be added in a cart. -
maxNumberOfActiveSubscriptions
Integer maxNumberOfActiveSubscriptions
The max number of active subscriptions that can be created for this product.nullmeans no restriction. -
minimumThreshold
Integer minimumThreshold
The minimum count of this product that must be added in a cart. -
name
String name
Name of this product. -
options
List<ProductOption> options
Drives additional information that the customer should enter when purchasing this product. This can be in the form of additional variations, additional items that can be bundled with this product or simply more information that the customer needs to enter about what they are purchasing (like a personalized message). -
restrictDowngradeAfterDays
Integer restrictDowngradeAfterDays
The number of days after which a downgrade is not allowed, until the window re-opens at the next billing cycle.nullmeans no restriction. -
upgradeProductIds
List<String> upgradeProductIds
The list of ids of the product that this product can upgrade to.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.ProductOption
class ProductOption extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Map holding any additional attributes passed in the request not matching any defined properties. -
attributes
Map<String,
Object> attributes Miscellaneous attributes for this tag. -
contextState
com.broadleafcommerce.data.tracking.core.EmbeddedContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
displayOrder
Integer displayOrder
The ordering of this option in relation to other options on the page. Can be null which indicates ordered last.- See Also:
-
id
String id
-
itemChoice
ItemChoice itemChoice
Configuration for theDefaultProductOptionType.ITEM_CHOICE. Drives customer selection of an additional item to add to their cart -
label
String label
The label shown to customers when displaying this option. This helps communicate to customers how they should fill out the input -
searchOnOption
Boolean searchOnOption
If the product option is of typeDefaultProductOptionType.VARIANT_DISTINGUISHING, this allows searching based on this product option. For example, if the product were a T-Shirt with three colors, three documents for each color would be indexed. -
type
String type
Controls both how the customer should be inputting values to fill out this option as well as storage of where the value will go once added to the cart.- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.RemovedAdjustment
class RemovedAdjustment extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
adjustmentAmountTotal
BigDecimal adjustmentAmountTotal
Cumulative total of all instances of anAdjustment. -
adjustmentCartLabel
String adjustmentCartLabel
- See Also:
-
adjustmentCodeRef
String adjustmentCodeRef
- See Also:
-
adjustmentDescription
String adjustmentDescription
- See Also:
-
adjustmentName
String adjustmentName
- See Also:
-
adjustmentProrationType
String adjustmentProrationType
- See Also:
-
adjustmentRef
String adjustmentRef
- See Also:
-
adjustmentUnitAmount
BigDecimal adjustmentUnitAmount
The unit discount of anAdjustment. -
attributes
Map<String,
Object> attributes Additional information to include with this removal DTO. -
beginPeriod
Integer beginPeriod
- See Also:
-
campaignTrackingId
String campaignTrackingId
- See Also:
-
codeUsed
String codeUsed
- See Also:
-
discountType
String discountType
- See Also:
-
endPeriod
Integer endPeriod
- See Also:
-
freeTrialLength
Integer freeTrialLength
- See Also:
-
freeTrialLengthUnits
String freeTrialLengthUnits
- See Also:
-
itemAdjustmentQuantity
Integer itemAdjustmentQuantity
If it's an item adjustment, it represents the quantity this adjustment applies to. If null, then the full quantity of the item is targeted. -
reasonCode
String reasonCode
A system code used to identify the reason for the removal of the adjustment. -
reasonMessage
String reasonMessage
A message to the customer specifying why the adjustment is being removed. -
subscriptionAdjustmentType
String subscriptionAdjustmentType
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SpecificItemChoice
class SpecificItemChoice extends Object implements Serializable-
Serialized Fields
-
discountAllowed
boolean discountAllowed
Dictates whether or not discounts are allowed to be applied to this add-on. -
nameOverride
String nameOverride
When displaying this choice to a customer, an optional override for the display the customer should see. If {@link null}, the product or variant name is used for display -
pricingKey
String pricingKey
System-wide unique identifier to configure specific pricing for the choice. Relevant if pricing data is managed in a separate system or data store, like the Broadleaf pricing services. Only relevant whenItemChoice.getOverridePrice()is null. -
product
Product product
If theSpecificItemChoice.typeisDefaultSpecificItemChoiceType.PRODUCTthis holds the product for this choice -
type
String type
Whether or not this item holds a product or a variant that the customer can select from- See Also:
-
variant
Variant variant
If theSpecificItemChoice.typeisDefaultSpecificItemChoiceType.VARIANTthis holds the variant for this choice- See Also:
-
SpecificItemChoice.variantParentProductId
-
variantParentProductId
String variantParentProductId
This field contains the id of the parent product of the specifiedSpecificItemChoice.variantif thetypeisDefaultSpecificItemChoiceType.VARIANT.This field is necessary because variants are a sub-resource of product and thus API callers cannot fetch them purely by variant id alone.
- See Also:
-
SpecificItemChoice.variant
-
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.Subscription
class Subscription extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
allowAutoRenewalModification
boolean allowAutoRenewalModification
This flag indicates whether this subscription's auto-renewability can be modified after declaration on the subscription. -
alternateUserRef
String alternateUserRef
Alternate reference to the user. Useful for third-party authentication system identifiers -
alternateUserRefType
String alternateUserRefType
Type of the alternative user reference- See Also:
-
attributes
Map<String,
Object> attributes Miscellaneous attributes for this subscription. -
autoRenewalEnabled
boolean autoRenewalEnabled
Whether this subscription automatically renews at the end of the current subscription term. -
billingFrequency
String billingFrequency
Deprecated.Frequency of billing for this subscription -
cancellationPolicyRef
String cancellationPolicyRef
A reference of theCancellationPolicythat governs how this subscription would be cancelled. -
chargeback
boolean chargeback
Whether this subscription is being cancelled due to a chargeback -
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
createdDate
Date createdDate
Date this subscription was created. This field should not be updated or set by a request. -
currency
javax.money.CurrencyUnit currency
Currency of this subscription -
customerTimezone
String customerTimezone
The customer's timezone. It's an optional field used to truncate the dates to the beginning of the day in customer's timezone. If null, UTC time is used. -
delayedActions
List<DelayedSubscriptionAction> delayedActions
List of delayed actions for this subscription. Often, these delayed actions are related to requested actions against a subscription with aDefaultSubscriptionPaymentStrategy.PREPAIDSubscription.getPaymentStrategy()where instead of refunding the customer, the action is delayed until the end of the period, causing the next period to naturally identify the updated price. -
endOfTermDate
Instant endOfTermDate
The end of term date for this subscription. -
fulfillmentWorkflow
String fulfillmentWorkflow
A reference to the workflow used to fulfill the creation of, & modifications to, this subscription. -
id
String id
-
internalAttributes
Map<String,
Object> internalAttributes Miscellaneous internal attributes for this subscription. Distinguished fromSubscription.getAttributes()in that this map is used for attributes that assist in the internal working of Broadleaf. -
lastBillingBatchId
String lastBillingBatchId
The batch id of the last billing job run for this subscription -
lastBillingOperationStatus
String lastBillingOperationStatus
The most current status of the last billing event for this subscription -
lastBillingSuccessDate
Date lastBillingSuccessDate
Last date this that the Billing Job succeeded billing this subscription -
name
String name
Name of this subscription -
needGrantEntitlements
boolean needGrantEntitlements
Whether the system has outstanding entitlements to grant on this subscription -
nextBillDate
Date nextBillDate
Next date this subscription will be billed -
nextPeriod
Integer nextPeriod
The next period this subscription will cover. This value is related to 'beginPeriod' and 'endPeriod' fields ofSubscriptionAdjustmentandSubscriptionItemAdjustment -
nextStatusChangeDate
Date nextStatusChangeDate
Date when the next status should begin- See Also:
-
Subscription.subscriptionNextStatus
-
nextStatusChangeReason
String nextStatusChangeReason
Reason for the update to the next status- See Also:
-
Subscription.subscriptionNextStatus
-
nextSubscription
String nextSubscription
If this subscription was upgraded or downgraded, holds the reference to the subscription replacing this one -
paymentStrategy
String paymentStrategy
Declares that payments made against a subscription are going towards the goods/services rendered in the previous vs current period.- See Also:
-
periodFrequency
int periodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withSubscription.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
Subscription.periodType
-
periods
List<SubscriptionPeriod> periods
List tracking the Subscription's periods. Typically, this correlates to the set of periods for which a BillingEvent has been created. -
periodType
String periodType
The period type for the price, e.g. MONTHLY, QUARTERLY, ANNUALLY- See Also:
-
Subscription.periodFrequency
-
preferredPaymentAccountId
String preferredPaymentAccountId
References an identifier of a PaymentAccount that is considered preferred for this subscription. -
priceDataChanges
List<PriceDataChange> priceDataChanges
List of price data changes for this subscription -
priorBillDate
Date priorBillDate
The bill date for the previous period -
resumeDate
Date resumeDate
Date this subscription will or did continue. This is likely to be used only after a subscription was paused or stopped. -
rootItemRef
String rootItemRef
Reference to the item id for which this subscription was provision -
rootItemRefType
String rootItemRefType
Type of the item for which this subscription was provisioned -
secondarySourceRef
String secondarySourceRef
The secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
Subscription.secondarySourceType
-
secondarySourceType
String secondarySourceType
The type of the secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
Subscription.secondarySourceRefDefaultSubscriptionSourceType
-
siteIdentifier
String siteIdentifier
Multi-tenancy support -
startOfTermDate
Instant startOfTermDate
The start of term date for this subscription. -
subscriptionAdjustments
List<SubscriptionAdjustment> subscriptionAdjustments
Adjustments for this subscription. This field is used for creation from an API request and is not persisted with the object -
subscriptionNextStatus
String subscriptionNextStatus
Next status for this subscription- See Also:
-
subscriptionSource
String subscriptionSource
This field shows from which process or user action this subscription originated.- See Also:
-
Subscription.subscriptionSourceRefDefaultSubscriptionSourceType
-
subscriptionSourceRef
String subscriptionSourceRef
This field shows the identifier of the process or user action this subscription originated.- See Also:
-
Subscription.subscriptionSource
-
subscriptionStatus
String subscriptionStatus
Current status of this subscription- See Also:
-
termDurationLength
Integer termDurationLength
The length of the terms, e.g., if this is 36 andSubscription.termDurationTypeis MONTHS, then the user should be billed for 36 months.- See Also:
-
Subscription.termDurationType
-
termDurationType
String termDurationType
The term duration type, e.g. DAYS, WEEKS, MONTHS, YEARS.- See Also:
-
Subscription.termDurationLength
-
userRef
String userRef
Reference to the user to whom this subscription belongs -
userRefType
String userRefType
Type of user owning this subscription- See Also:
-
version
Integer version
The version of this subscription. Used for checking if the requested version of the subscription is up-to-date before saving changes. This should never be manually decremented/incremented.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionAction
class SubscriptionAction extends Object implements Serializable- serialVersionUID:
- 1L
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionActionPriceDetail
class SubscriptionActionPriceDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
cartItemId
String cartItemId
Reference to the subscriptionCartItem. If the subscription item has been removed as part of the action, then this value will be null. -
itemName
String itemName
Name of the item identified bySubscriptionActionPriceDetail.getItemRefType()&SubscriptionActionPriceDetail.getItemRef(). -
itemRef
String itemRef
Reference to the id of the item represented by this object. For example, the product id. -
itemRefType
String itemRefType
Type of item that this object represents. For example, BLC_PRODUCT. -
parentItemRef
String parentItemRef
Reference of the parent subscription item's backing item if this is a child subscription item. -
parentItemRefType
String parentItemRefType
Type of the parent subscription item's backing item if this is a child subscription item. -
postActionSubtotal
javax.money.MonetaryAmount postActionSubtotal
The subscription item subtotal after to the action being taken, reflecting the typical recurring price for the item. If the subscription item has been removed as part of the action, then this value will be null.This subtotal does include the recurring discounts, however it only includes the discounts applicable to the current period. For example, if you have a discountA that is applicable from period 1-3 and a discountB that is applicable from period 4-6 (although rare), then only discountA will be included in this subtotal if you are modifying the subscription in period 2.
-
preActionSubtotal
javax.money.MonetaryAmount preActionSubtotal
The subscription item subtotal prior to the action being taken, reflecting the typical recurring price for the item. For aDefaultSubscriptionActionFlow.CREATEaction, this value will be null since there was no prior subscription.This subtotal does include the recurring discounts, however it only includes the discounts applicable to the current period. For example, if you have a discountA that is applicable from period 1-3 and a discountB that is applicable from period 4-6 (although rare), then only discountA will be included in this subtotal if you are modifying the subscription in period 2.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionAdjustment
class SubscriptionAdjustment extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
adjustmentAmount
BigDecimal adjustmentAmount
- See Also:
-
adjustmentCartLabel
String adjustmentCartLabel
- See Also:
-
adjustmentCodeRef
String adjustmentCodeRef
- See Also:
-
adjustmentDescription
String adjustmentDescription
- See Also:
-
adjustmentDiscountFactor
BigDecimal adjustmentDiscountFactor
- See Also:
-
adjustmentDiscountMethodType
String adjustmentDiscountMethodType
-
adjustmentName
String adjustmentName
- See Also:
-
adjustmentProrationType
String adjustmentProrationType
- See Also:
-
adjustmentRef
String adjustmentRef
- See Also:
-
beginPeriod
Integer beginPeriod
- See Also:
-
campaignTrackingId
String campaignTrackingId
- See Also:
-
codeUsed
String codeUsed
- See Also:
-
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
discountType
String discountType
- See Also:
-
endPeriod
Integer endPeriod
- See Also:
-
freeTrialLength
Integer freeTrialLength
- See Also:
-
freeTrialLengthUnits
String freeTrialLengthUnits
- See Also:
-
id
String id
-
subscriptionAdjustmentType
String subscriptionAdjustmentType
-
subscriptionId
String subscriptionId
Reference to theSubscriptionwhose price this adjusts
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionItem
class SubscriptionItem extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
addOnKey
String addOnKey
If this item was the result of an add-on, then this stores the key of the add-on in the context of its parent. This is important when editing a subscription in order to recreate the original cart item. -
archived
boolean archived
Whether this item is archived -
archiveReason
String archiveReason
Why this item was archived -
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
id
String id
-
internalAttributes
Map<String,
Object> internalAttributes Miscellaneous internal attributes for this subscription item. -
itemDetails
Map<String,
String> itemDetails Additional details about the item -
itemName
String itemName
Item name -
itemRef
String itemRef
Reference to the id of the item represented by this object. For example, the product id. -
itemRefType
String itemRefType
Type of item that this object represents. For example, BLC_PRODUCT. -
itemSku
String itemSku
SKU of the item represented by this object. -
itemSourceRef
String itemSourceRef
This field shows the identifier of the process or user action this subscription item originated.- See Also:
-
SubscriptionItem.itemSourceType
-
itemSourceType
String itemSourceType
This field shows from which process or user action this subscription item originated.- See Also:
-
SubscriptionItem.itemSourceRefDefaultSubscriptionSourceType
-
itemUnitPrice
BigDecimal itemUnitPrice
Unit price of the item (price of a single unit) -
parentItemRef
String parentItemRef
Reference of the parent subscription item's backing item if this is a child subscription item -
parentItemRefType
String parentItemRefType
Type of the parent subscription item's backing item if this is a child subscription item -
priceDataId
String priceDataId
The id of the price data associated with this item. -
priceListId
String priceListId
The id of the price list associated with this item. -
quantity
int quantity
Quantity purchased. Note: this value is scaled by parent item quantity. -
secondarySourceRef
String secondarySourceRef
The secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
SubscriptionItem.secondarySourceType
-
secondarySourceType
String secondarySourceType
The type of the secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
SubscriptionItem.secondarySourceRefDefaultSubscriptionSourceType
-
subscriptionId
String subscriptionId
Reference the subscription for this item -
subscriptionItemAdjustments
List<SubscriptionItemAdjustment> subscriptionItemAdjustments
Adjustments for this subscription. This field is used for creation from an API request and is not persisted with the object -
taxable
boolean taxable
Whether this item is taxable -
taxCategory
String taxCategory
Tax category of the item -
taxNexus
String taxNexus
Comma-separated nexus codes
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionItemAdjustment
class SubscriptionItemAdjustment extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
adjustmentAmount
BigDecimal adjustmentAmount
- See Also:
-
adjustmentCartLabel
String adjustmentCartLabel
- See Also:
-
adjustmentCodeRef
String adjustmentCodeRef
- See Also:
-
adjustmentDescription
String adjustmentDescription
- See Also:
-
adjustmentDiscountFactor
BigDecimal adjustmentDiscountFactor
- See Also:
-
adjustmentDiscountMethodType
String adjustmentDiscountMethodType
-
adjustmentName
String adjustmentName
- See Also:
-
adjustmentProrationType
String adjustmentProrationType
- See Also:
-
adjustmentRef
String adjustmentRef
- See Also:
-
attributes
Map<String,
Object> attributes Miscellaneous attributes for this subscription item adjustment. -
beginPeriod
Integer beginPeriod
- See Also:
-
campaignTrackingId
String campaignTrackingId
- See Also:
-
codeUsed
String codeUsed
- See Also:
-
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
currencyConversionDetail
com.broadleafcommerce.order.common.domain.CurrencyConversionDetail currencyConversionDetail
Represents the details of the exchange rate used to convert aMonetaryAmountfrom one currency to another. This is used to describe the amount of the adjustment if it was converted from a base currency. This is done when the target item was in a different currency from the offer and was also converted, that is, the item's original currency was the same as that which the offer targets but its price was converted to another currency. -
discountType
String discountType
- See Also:
-
endPeriod
Integer endPeriod
- See Also:
-
freeTrialLength
Integer freeTrialLength
- See Also:
-
freeTrialLengthUnits
String freeTrialLengthUnits
- See Also:
-
id
String id
-
itemAdjustmentQuantity
Integer itemAdjustmentQuantity
The quantity of theSubscriptionItemthe adjustment applies to. If null, then the full quantity of the item is targeted. -
qualifierDetails
List<com.broadleafcommerce.order.common.domain.OfferItemDetail> qualifierDetails
A list ofOfferItemDetailsrepresenting the qualifier items where this adjustment was from.For example, ItemA and ItemB qualify for a free gift offer, which results Item_FG to be added as a free gift item. These details are used to identify ItemA and ItemB from free gift item Item_FG using its adjustment.
Take another example, ItemA qualifies for a Buy 1 itemA Get 1 itemB free offer. These details are used to identity the qualifier item ItemA from target item ItemB.
-
subscriptionAdjustmentType
String subscriptionAdjustmentType
-
subscriptionItemId
String subscriptionItemId
Reference to theSubscriptionItemwhose price this adjusts
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionItemAdjustmentPriceDetail
class SubscriptionItemAdjustmentPriceDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic -
adjustmentQuantity
Integer adjustmentQuantity
The quantity of the item impacted by the adjustment after the subscription modification.For
DefaultSubscriptionActionFlow.CREATE, this is just the item adjustment's quantity. -
adjustmentRef
String adjustmentRef
- See Also:
-
applicableForThisPeriod
boolean applicableForThisPeriod
Whether this adjustment is applicable for the period that this detail is built for. This is useful for downstream services to determine whether the adjustment detail need to be considered for a certain period. -
attributes
Map<String,
Object> attributes Map holding any additional attributes passed in the request not matching any defined properties. -
creditedUnitDiscountAmount
javax.money.MonetaryAmount creditedUnitDiscountAmount
The subscription item discount per unit to be deducted from theSubscriptionItemPriceDetail.getCreditedUnitAmount().Similar to
SubscriptionItemPriceDetail.getCreditedUnitAmount(), the customer had the full discount applied in their previous payment, so when it needs to be credited due to an edit, upgrade, or downgrade, the discount amount needs to be prorated and deducted from the credited amount. -
currencyConversionDetail
com.broadleafcommerce.order.common.domain.CurrencyConversionDetail currencyConversionDetail
Represents the details of the exchange rate used to convert aMonetaryAmountfrom one currency to another. This is used to describe the amount of the adjustment if it was converted from a base currency. This is done when the target item was in a different currency from the offer and was also converted, that is, the item's original currency was the same as that which the offer targets but its price was converted to another currency. -
existingFullSubscriptionPeriodUnitDiscountAmount
javax.money.MonetaryAmount existingFullSubscriptionPeriodUnitDiscountAmount
The existing, un-prorated unit discount amount prior to the subscription modification. This is only relevant for adjustments that were applied prior to the modification, and can be helpful to determine whether the discount has changed due to the modification.This serves an informational purpose for downstream services.
-
existingItemAdjustmentQuantity
Integer existingItemAdjustmentQuantity
The quantity of the item impacted by the adjustment prior to the subscription modification.It is important to keep track because the impacted quantity may change after the modification, and this is used to calculate the credited and prior unbilled amounts. For example, if the quantity is reduced from 10 to 5 from the modification, the discount amount to deduct from the credited amount should be calculated based on the original quantity of 10, whereas the discount amount to deduct from the prorated amount should be calculated based on the new quantity of 5.
This is only relevant for
subscription modification flows. -
existingProratedUnitAmountBetweenActionAndNextBillDate
javax.money.MonetaryAmount existingProratedUnitAmountBetweenActionAndNextBillDate
Similar toSubscriptionItemPriceDetail.getProratedUnitAmountBetweenActionAndNextBillDate(), this is theSubscriptionItemAdjustmentPriceDetail.existingFullSubscriptionPeriodUnitDiscountAmountprorated for the period between the action date and the next bill date and the regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. -
existingProratedUnitAmountBetweenPeriodStartAndActionDate
javax.money.MonetaryAmount existingProratedUnitAmountBetweenPeriodStartAndActionDate
Similar toSubscriptionItemPriceDetail.getProratedUnitAmountBetweenPeriodStartAndActionDate(), this is theSubscriptionItemAdjustmentPriceDetail.existingFullSubscriptionPeriodUnitDiscountAmountprorated for the period between the period start date and the action date and the regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. -
fullSubscriptionPeriodUnitDiscountAmount
javax.money.MonetaryAmount fullSubscriptionPeriodUnitDiscountAmount
The unit adjustment amount for this event item for the length of a full subscription period. This serves an informational purpose for downstream services.For
DefaultSubscriptionActionFlow.CREATE, this is just the non-prorated unit discount amount for the applied adjustment. -
priorUnbilledUnitDiscountAmount
javax.money.MonetaryAmount priorUnbilledUnitDiscountAmount
The subscription item discount per unit to be deducted from theSubscriptionItemPriceDetail.getPriorUnbilledUnitAmount(). Note: This typically only impacts the first period in the estimatedFuturePayments list. Similar toSubscriptionItemPriceDetail.getPriorUnbilledUnitAmount(), the discount amount also needs to be prorated and deducted from the prior unbilled amount, since the discount was applied prior to the edit, upgrade, or downgrade. -
proratedUnitAmountBetweenActionAndNextBillDate
javax.money.MonetaryAmount proratedUnitAmountBetweenActionAndNextBillDate
Similar toSubscriptionItemPriceDetail.getProratedUnitAmountBetweenActionAndNextBillDate(), this is theSubscriptionItemAdjustmentPriceDetail.fullSubscriptionPeriodUnitDiscountAmountprorated for the period between the action date and the next bill date after subscription action, regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. -
proratedUnitAmountBetweenPeriodStartAndActionDate
javax.money.MonetaryAmount proratedUnitAmountBetweenPeriodStartAndActionDate
Similar toSubscriptionItemPriceDetail.getProratedUnitAmountBetweenPeriodStartAndActionDate(), this is theSubscriptionItemAdjustmentPriceDetail.fullSubscriptionPeriodUnitDiscountAmountprorated for the period between the period start date and the action date after subscription action, regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. -
proratedUnitDiscountAmount
javax.money.MonetaryAmount proratedUnitDiscountAmount
Similar toSubscriptionItemPriceDetail.getProratedUnitAmount(), this is the original discount amount prorated relative to the next invoice date. For a new purchase, this reflects the full date range. For edits, upgrades, & downgrades, this reflects the prorated price between the action & the end of the billing period. -
subscriptionItemAdjustmentRef
String subscriptionItemAdjustmentRef
Reference to theSubscriptionItemAdjustment -
unitChargeForPreviouslyDiscountedPeriods
javax.money.MonetaryAmount unitChargeForPreviouslyDiscountedPeriods
The unit discount amount to charge for previously discounted periods. Note that this does not include the amount to charge for the current period. Rather, the amount to charge for the current period is included inSubscriptionItemAdjustmentPriceDetail.getPriorUnbilledUnitDiscountAmount()and is negative to represent a charge. -
unitDiscountAmountForRemainderOfTerms
javax.money.MonetaryAmount unitDiscountAmountForRemainderOfTerms
The unit discount amount that is to be applied for the remainder of terms ifthe remainder of terms is being charged.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionItemPriceDetail
class SubscriptionItemPriceDetail extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
adjustmentPriceDetailsByAdjustmentRef
Map<String,
SubscriptionItemAdjustmentPriceDetail> adjustmentPriceDetailsByAdjustmentRef The map ofSubscriptionItemAdjustmentPriceDetailby adjustment reference, containing the details about how the discount affects the prorated unit amount, credited amount, and prior unbilled amount. -
attributes
Map<String,
Object> attributes Map holding any additional attributes passed in the request not matching any defined properties. -
cartItemId
String cartItemId
Reference to the subscriptionCartItem. If the subscription item has been removed as part of the action, then this value will be null. -
creditedUnitAmount
javax.money.MonetaryAmount creditedUnitAmount
For edits, upgrades, and downgrades on a subscription that’s using anDefaultSubscriptionPaymentStrategy.PREPAIDpayment strategy, the customer has already paid the full amount for this billing cycle at the previous rate. For example, consider a customer who is upgrading from 10 to 20 licenses at $1 each half-way through a 30-day month. The user prorated amount would be $10 for 20 licenses. This user has already partially paid for 10 of the licenses, so they will be due a credit of $5 toward the second-half-of-the-month amount. Note: This typically only impacts the first period in the estimatedFuturePayments list.Note that this is the price per unit not including discounts, discounts are recorded in
SubscriptionItemPriceDetail.getAdjustmentPriceDetailsByAdjustmentRef() -
currency
javax.money.CurrencyUnit currency
Currency of this subscription -
dueNowQuantityOverride
Integer dueNowQuantityOverride
An item's quantity override value used for "due now" price calculations where the item's quantity decreased due to the subscription action. -
existingSubscriptionItemId
String existingSubscriptionItemId
The existing subscription item's id prior the subscription action (e.g. edit, upgrade, downgrade, etc.). -
existingSubscriptionItemQuantity
Integer existingSubscriptionItemQuantity
The existing subscription item's quantity prior the subscription action (e.g. edit, upgrade, downgrade, etc.). -
existingSubscriptionItemUnitPrice
javax.money.MonetaryAmount existingSubscriptionItemUnitPrice
The existing subscription item's unit price prior the subscription action (e.g. edit, upgrade, downgrade, etc.). -
fullSubscriptionPeriodUnitAmount
javax.money.MonetaryAmount fullSubscriptionPeriodUnitAmount
The unit price of the item (price of one) for the length of a full subscription period. This serves an informational purpose for downstream services. For net new signups, it's just the typical recurring price. -
itemName
String itemName
Name of the item identified bySubscriptionItemPriceDetail.getItemRefType()&SubscriptionItemPriceDetail.getItemRef(). -
itemRef
String itemRef
Reference to the id of the item represented by this object. For example, the product id. -
itemRefType
String itemRefType
Type of item that this object represents. For example, BLC_PRODUCT. -
parentExistingQuantity
Integer parentExistingQuantity
The item's parent existing quantity prior to the subscription action (e.g. create, edit, upgrade, downgrade, etc.). This is typically used to scale a dependent item's quantity based on its parent for calculating subtotals. -
parentItemRef
String parentItemRef
Reference of the parent subscription item's backing item if this is a child subscription item -
parentItemRefType
String parentItemRefType
Type of the parent subscription item's backing item if this is a child subscription item -
parentQuantity
Integer parentQuantity
The item's parent quantity following the subscription action (e.g. create, edit, upgrade, downgrade, etc.). This is typically used to scale a dependent item's quantity based on its parent for calculating subtotals. -
priorUnbilledUnitAmount
javax.money.MonetaryAmount priorUnbilledUnitAmount
Prior to an edit, upgrade, or downgrade on a subscription that’s using a Postpaid payment strategy, the system will have prior unbilled charges that will be part of the next invoice. In this case, the user will owe this in addition to the prorated charges for the changes being made. For example, consider a customer who is upgrading from 10 to 20 licenses at $1 each half-way through a 30-day month. The user prorated amount would be $10 for 20 licenses. This user also owes $5 for access to the 10 licenses in the first half of the month. Note: This typically only impacts the first period in the estimatedFuturePayments list.Note that this is the price per unit not including discounts, discounts are recorded in
SubscriptionItemPriceDetail.getAdjustmentPriceDetailsByAdjustmentRef() -
proratedUnitAmount
javax.money.MonetaryAmount proratedUnitAmount
The subscription item price per unit, prorated relative to the next invoice date. For a new purchase, this reflects the full date range. For edits, upgrades, & downgrades, this reflects the prorated price between the action & the end of the billing period.Note that this is the price per unit not including discounts, discounts are recorded in
SubscriptionItemPriceDetail.getAdjustmentPriceDetailsByAdjustmentRef() -
proratedUnitAmountBetweenActionAndNextBillDate
javax.money.MonetaryAmount proratedUnitAmountBetweenActionAndNextBillDate
The subscription item price per unit prorated for the period between the action date and the next invoice date regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. For example, if a subscription's typical recurring price is $30/month and the subscription sign up date is on 4/1, the action date is on 4/11, and the next bill date is on 5/1, the prorated unit amount between the action date and the next bill date would be $20. Note that this is the price per unit not including discounts, discounts are recorded inSubscriptionItemPriceDetail.getAdjustmentPriceDetailsByAdjustmentRef() -
proratedUnitAmountBetweenPeriodStartAndActionDate
javax.money.MonetaryAmount proratedUnitAmountBetweenPeriodStartAndActionDate
The subscription item price per unit prorated for the period between the period start date and the action date and the regardless of the subscription action being taken or the payment strategy. This serves as informational purposes for downstream services. For example, if a subscription's typical recurring price is $30/month and the subscription sign up date is on 4/1, the action date is on 4/11, and the next bill date is on 5/1, the prorated unit amount between the period start date and the action date would be $10. Note that this is the price per unit not including discounts, discounts are recorded inSubscriptionItemPriceDetail.getAdjustmentPriceDetailsByAdjustmentRef() -
quantity
Integer quantity
The item's quantity following the subscription action (e.g. create, edit, upgrade, downgrade, etc.). -
remainderOfTermsUnitAmount
javax.money.MonetaryAmount remainderOfTermsUnitAmount
The unit amount to charge for the remainder of terms ifthe remainder of terms is being charged. Note: This typically only impacts the first period in the estimatedFuturePayments list.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionPeriod
class SubscriptionPeriod extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
attributes
Map<String,
Object> attributes Any additional attributes used to describe the period -
billDate
Date billDate
The bill date of the period -
isFreeTrial
boolean isFreeTrial
Whether this period represents a free trial period. When this is true, the periodStartDate and periodEndDate represents the start and end dates of the free trial, and the period number will be 0. -
numberOfDaysInFullPeriod
Long numberOfDaysInFullPeriod
If a period is shortened (typically by theSubscription.getEndOfTermDate()occurring before the end of the period), then this value will describe the number of days in the full period - i.e. the length of the period if it had not been shortened. Otherwise, this value will be null. If the period is shortened, this value should be used in combination withSubscriptionPeriod.getNumberOfDaysInShortenedPeriod()to prorate subscription pricing for the subscription period.SubscriptionPeriod.numberOfDaysInShortenedPerioddivided bySubscriptionPeriod.getNumberOfDaysInFullPeriod()gives the proration rate. -
numberOfDaysInShortenedPeriod
Long numberOfDaysInShortenedPeriod
If a period is shortened (typically by theSubscription.getEndOfTermDate()occurring before the end of the period), then this value will describe the number of days in the shortened period. Otherwise, this value will be null. If the period is shortened, this value should be used in combination withSubscriptionPeriod.getNumberOfDaysInFullPeriod()to prorate subscription pricing for the subscription period.SubscriptionPeriod.numberOfDaysInShortenedPerioddivided bySubscriptionPeriod.getNumberOfDaysInFullPeriod()gives the proration rate. -
period
Integer period
The period number -
periodEndDate
Date periodEndDate
The end date of the period -
periodStartDate
Date periodStartDate
The start date of the period -
shortenedPeriodReason
String shortenedPeriodReason
Describes the reason that the period was shortened.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionPriceResponse
class SubscriptionPriceResponse extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
actionPriceDetails
List<SubscriptionActionPriceDetail> actionPriceDetails
A collection ofSubscriptionActionPriceDetailobjects describing the price before & after the action for each item. -
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be added to the response in order to provide more information. -
amountDueNow
javax.money.MonetaryAmount amountDueNow
Amount due today, which is typically captured immediately. Equal toSubscriptionPriceResponse.getProratedAmount()+SubscriptionPriceResponse.getPriorUnbilledAmount()-SubscriptionPriceResponse.getCreditedAmount(). Note: This value is allowed to be negative, representing a required refund. -
attributes
Map<String,
Object> attributes Map holding any additional attributes passed in the request not matching any defined properties. -
creditedAmount
javax.money.MonetaryAmount creditedAmount
For edits, upgrades, and downgrades on a subscription that’s using anDefaultSubscriptionPaymentStrategy.PREPAIDpayment strategy, the customer has already paid the full amount for this billing cycle at the previous rate. For example, consider a customer who is upgrading from 10 to 20 licenses at $1 each half-way through a 30-day month. The user prorated amount would be $10 for 20 licenses. This user has already partially paid for 10 of the licenses, so they will be due a credit of $5 toward the second-half-of-the-month amount. Note: This typically only impacts the first period in the estimatedFuturePayments list. -
dueNowItemDetails
List<SubscriptionItemPriceDetail> dueNowItemDetails
A list ofSubscriptionPriceItemDetailsdescribing the individual item prices that contributed to the overallSubscriptionPriceResponse.getAmountDueNow(). -
estimatedFuturePayments
List<EstimatedFuturePayment> estimatedFuturePayments
A collection ofEstimatedFuturePaymentobjects describing the timing & amount of future subscription payments. -
flow
String flow
Describes the subscription action flow that is being executed.- See Also:
-
paymentStrategy
String paymentStrategy
The payment strategy of the subscription, e.g. PREPAID vs POSTPAID- See Also:
-
periodFrequency
int periodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withSubscriptionPriceResponse.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
SubscriptionPriceResponse.periodType
-
periodType
String periodType
The period type for the price, e.g. DAY, MONTH, YEAR- See Also:
-
SubscriptionPriceResponse.periodFrequency
-
postActionSubtotal
javax.money.MonetaryAmount postActionSubtotal
The subscription subtotal after to the action being taken, reflecting the typical recurring price for the subscription. -
preActionSubtotal
javax.money.MonetaryAmount preActionSubtotal
The subscription subtotal prior to the action being taken, reflecting the typical recurring price for the subscription. For aDefaultSubscriptionActionFlow.CREATEaction, this value will be null since there was no prior subscription. -
priorUnbilledAmount
javax.money.MonetaryAmount priorUnbilledAmount
Prior to an edit, upgrade, or downgrade on a subscription that’s using a Postpaid payment strategy, the system will have prior unbilled charges that will be part of the next invoice. In this case, the user will owe this in addition to the prorated charges for the changes being made. For example, consider a customer who is upgrading from 10 to 20 licenses at $1 each half-way through a 30-day month. The user prorated amount would be $10 for 20 licenses. This user also owes $5 for access to the 10 licenses in the first half of the month. Note: This typically only impacts the first period in the estimatedFuturePayments list. -
proratedAmount
javax.money.MonetaryAmount proratedAmount
The subscription price, prorated relative to the next invoice date. For a new purchase, this reflects the full date range. For edits, upgrades, & downgrades, this reflects the prorated price between the action & the end of the billing period. -
removedAdjustments
List<RemovedAdjustment> removedAdjustments
The list ofAdjustmentsbeing removed with additional contextual information. -
rootCartItemId
String rootCartItemId
Reference to the root subscriptionCartItem -
rootItemRef
String rootItemRef
Reference to the id of the item represented by this object. For example, the product id. -
rootItemRefType
String rootItemRefType
Type of item that this object represents. For example, BLC_PRODUCT. -
subscriptionActionDate
Instant subscriptionActionDate
The timestamp at which the subscription action was taken. In most pricing contexts, the action has not been formally submitted, so we'll use today's date for making pricing calculations.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionPricingContext
class SubscriptionPricingContext extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be added to the context in order to provide more information. -
cancellationPolicy
CancellationPolicy cancellationPolicy
The fullCancellationPolicyfor theSubscriptionPricingContext.subscriptionRootItemif any. -
cancellationPolicyDetail
CancellationPolicyDetail cancellationPolicyDetail
The relevantCancellationPolicyDetailfor theSubscriptionPricingContext.paymentStrategyfrom theSubscriptionPricingContext.cancellationPolicy. -
cart
com.broadleafcommerce.cart.client.domain.Cart cart
TheCartcontaining subscriptions. -
currency
@NotNull javax.money.CurrencyUnit currency
Currency of this subscription -
customerTimezone
String customerTimezone
The customer's timezone. It's an optional field used to truncate the dates to the beginning of the day in customer's timezone. If null, UTC time is used. -
endOfTermDate
Instant endOfTermDate
The date at which the subscription's terms will expire. -
existingSubscription
Subscription existingSubscription
The existingSubscriptionif any. This is most relevant for subscription action flows that are modifying an existing subscription. -
existingSubscriptionItemById
Map<String,
SubscriptionItem> existingSubscriptionItemById The existingSubscriptionif any. This is most relevant for subscription action flows that are modifying an existing subscription. -
existingSubscriptionItemQuantities
Map<String,
Integer> existingSubscriptionItemQuantities Map ofSubscriptionItem.getId()to the existing SubscriptionItem's quantity. -
existingSubscriptionItemUnitPrices
Map<String,
javax.money.MonetaryAmount> existingSubscriptionItemUnitPrices Map ofSubscriptionItem.getId()to the existing SubscriptionItem's unit price. -
flow
String flow
Describes the subscription action flow that is being executed.- See Also:
-
freeTrialEndDate
Instant freeTrialEndDate
The end date of the free trial for this subscription, if applicable, null if none applied.For
create flow, this is from the applied free trial offer.For
subscription modification flows, this is from the existing free trial already applied to the existing subscription. -
nextBillDate
Instant nextBillDate
Describes the next time that the customer will be billed. -
numberOfPeriodsLeftInTerm
Long numberOfPeriodsLeftInTerm
The number of billing periods left in a term beyond the current period, if there are terms. If changing billing frequency, then the current period is shortened, so this may include a shortened final period in the terms. -
paymentStrategy
String paymentStrategy
Declares that payments made against a subscription are going towards the goods/services rendered in the previous vs current period.- See Also:
-
periodDefinitions
Map<Integer,
PeriodDefinition> periodDefinitions Describes upcoming subscription billing periods, including the start date, end date, & when the customer will be billed. Map keys are upcoming period numbers, with 1 being the first period. For creation flows, the first period represents the first time that subscription billing will be engaged (i.e. the first bill following the initial purchase). For other flows that act upon the subscription in the middle of a period, the first period definition reflects when the next subscription billing will take place. A key nuance is that this differs for theDefaultSubscriptionPaymentStrategy.POSTPAIDvsDefaultSubscriptionPaymentStrategy.PREPAIDpayment strategies. In the case of Postpaid, the first period includes the active period. The action may include a due now amount, but billing for the subscription itself won't happen until the period has ended. In the case ofDefaultSubscriptionPaymentStrategy.PREPAID, the first period represents the next period to be billed. Actions against anDefaultSubscriptionPaymentStrategy.PREPAIDsubscription can expect to have a due now amount. For example, in the case of an upgrade, the customer has paid for the period at a lower amount, then increases the amount along with the upgrade. This difference in price should be due now. -
periodFrequency
int periodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withSubscriptionPricingContext.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
SubscriptionPricingContext.periodType
-
periodType
String periodType
The period type for the price, e.g. MONTHLY, QUARTERLY, ANNUALLY- See Also:
-
SubscriptionPricingContext.periodFrequency
-
priorPeriodFrequency
Integer priorPeriodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withSubscriptionPricingContext.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
SubscriptionPricingContext.priorPeriodType
-
priorPeriodType
String priorPeriodType
The period type for the price, e.g. MONTHLY, QUARTERLY, ANNUALLY- See Also:
-
SubscriptionPricingContext.priorPeriodFrequency
-
removedAdjustments
List<RemovedAdjustment> removedAdjustments
The list ofAdjustmentsbeing removed due to the proposed changes.For example, an
Adjustmentcould be lost due to the offer requirement no longer matches from the changes against the subscription. -
removedSubscriptionItems
List<SubscriptionItem> removedSubscriptionItems
List ofSubscriptionItemsthat are not on the cart. -
startOfTermDate
Instant startOfTermDate
The date at which the subscription's terms will begin. -
subscriptionActionDate
Instant subscriptionActionDate
The timestamp at which the subscription action was taken. In most pricing contexts, the action has not been formally submitted, so we'll use today's date for making pricing calculations. -
subscriptionInGracePeriod
boolean subscriptionInGracePeriod
Whether theSubscriptionPricingContext.existingSubscriptionis within itsgrace periodduring acancellation flow. -
subscriptionRootItem
com.broadleafcommerce.cart.client.domain.CartItem subscriptionRootItem
TheCartItemrepresenting the rootSubscriptionItem.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionWithItems
class SubscriptionWithItems extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Map holding any additional attributes passed in the request not matching any defined properties. -
availableActions
List<SubscriptionAction> availableActions
The availableSubscriptionActionsthat may be possible for this subscription. -
subscription
Subscription subscription
-
subscriptionItems
List<SubscriptionItem> subscriptionItems
-
unavailableReasonsByActionType
Map<String,
List<String>> unavailableReasonsByActionType The unavailableSubscriptionActionTypesalong with unavailable reasons for this subscription.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.UserSubscriptionSummary
class UserSubscriptionSummary extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
activeSubscriptions
List<ExistingSubscriptionDetails> activeSubscriptions
ExistingSubscriptionDetailsof the active subscriptions purchased by the user. -
attributes
Map<String,
Object> attributes Additional attributes to include. -
formerSubscriptions
List<ExistingSubscriptionDetails> formerSubscriptions
ExistingSubscriptionDetailsof the former subscriptions purchased by the user.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.Variant
class Variant extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
activeEndDate
Instant activeEndDate
When this Variant should no longer be active. Unset to mark this variant as never inactive- See Also:
-
activeStartDate
Instant activeStartDate
When this Variant should start to become active. Unset to mark this Variant as always active- See Also:
-
contextState
com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState
A subset ofTrackinginformation to expose the context state for this object. -
cost
javax.money.MonetaryAmount cost
Can be used in display or as apart of more complex pricing algorithms -
defaultPrice
javax.money.MonetaryAmount defaultPrice
The default price that should be used if there is not aVariant.salePriceset. This price can also be maintained at the Product level -
description
String description
Description of the Variant that can include HTML in implementations where a WYSIWYG editor manages this field. -
discountable
boolean discountable
Whether or not this variant can participate in offers or promotions -
externalId
String externalId
This is an arbitrary ID, typically assigned by or used by 1st or 3rd party systems that are not Broadleaf. -
id
String id
The unique identifier for this variant. -
inventoryCheckStrategy
String inventoryCheckStrategy
Describes when the variant's inventory should be checked for availability. If not set, defaults toProduct#inventoryCheckStrategy.- See Also:
-
InventoryCheckStrategy
-
inventoryReservationStrategy
String inventoryReservationStrategy
Describes when the variant's inventory should be reserved. If not set, defaults toProduct#inventoryReservationStrategy.- See Also:
-
InventoryReservationStrategy
-
maximumThreshold
Integer maximumThreshold
The maximum count of this variant can be added in a cart. -
minimumThreshold
Integer minimumThreshold
The minimum count of this variant that must be added in a cart. -
name
String name
The name of this particular variant of the product. Generally serves as an overridable field from a product. During option selection when narrowing the specific Sku to order -
online
boolean online
Whether or not this variant should be visible at all in the store. A variant that is offline is not searchable, visible, or purchasable. A variant that is offline behaves as if it falls outside the active date range. It is not returned from storefront requests by default.
Defaults to
true -
optionValues
Map<String,
String> optionValues Helper to make this particular variant uniquely identifiable across multiple variants for the same product. Keys correspond toAttributeChoice#attributeNamewhile values correspond to one of the correspondingAttributeChoice#allowedValues. -
productId
String productId
The link to the product that this variant is a part of -
salePrice
javax.money.MonetaryAmount salePrice
Indicates that this product is on sale. This should take priority over the default price if the default price is lower -
sku
String sku
Sku code for this particular variant. Overrides the main Product Sku that is set, if any -
taxCode
String taxCode
The tax code for this variant. -
upc
String upc
Universal product code that defines this particular variant of the product
-
-
-
Package com.broadleafcommerce.subscriptionoperation.domain.offer
-
Class com.broadleafcommerce.subscriptionoperation.domain.offer.AddAdjustmentRequest
class AddAdjustmentRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
applicationDateType
String applicationDateType
Indicates when the adjustment should be applied onto the subscription.- See Also:
-
applyToDependentItems
boolean applyToDependentItems
Indicates whether the Offer should also be applied to the dependent items. -
attributes
Map<String,
Object> attributes Additional, miscellaneous attributes. -
offerRef
String offerRef
The ID that refers to the offer / offer code being added. -
offerRefType
String offerRefType
The type of adjustment to be added. Expected values areBLC_OFFERorBLC_OFFER_CODE -
replaceExisting
boolean replaceExisting
Indicates whether this request should replace all other adjustments on the subscription. -
subscriptionId
String subscriptionId
The ID of theSubscriptionto add the offer to.
-
-
Class com.broadleafcommerce.subscriptionoperation.domain.offer.PendingSubscriptionItemAdjustmentRemoval
class PendingSubscriptionItemAdjustmentRemoval extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes -
adjustmentAmount
BigDecimal adjustmentAmount
The amount of the adjustment that will be removed. -
adjustmentCartLabel
String adjustmentCartLabel
The cart label of the adjustment that will be removed. -
adjustmentCurrency
javax.money.CurrencyUnit adjustmentCurrency
The currency of the adjustment that will be removed. -
adjustmentDescription
String adjustmentDescription
The description of the adjustment that will be removed. -
adjustmentName
String adjustmentName
The name of the adjustment that will be removed. -
adjustmentRef
String adjustmentRef
The reference of the adjustment that will be removed. -
subscriptionId
String subscriptionId
The id of the subscription of which the adjustment going to be removed belongs to. -
subscriptionItemAdjustmentId
String subscriptionItemAdjustmentId
The id of the subscription item adjustment that will actually be removed. -
subscriptionItemId
String subscriptionItemId
The id of the subscription item of which the adjustment going to be removed belongs to. -
subscriptionItemName
String subscriptionItemName
The id of the subscription item of which the adjustment going to be removed belongs to. -
subscriptionName
String subscriptionName
The id of the subscription of which the adjustment going to be removed belongs to.
-
-
-
Package com.broadleafcommerce.subscriptionoperation.domain.pricing
-
Class com.broadleafcommerce.subscriptionoperation.domain.pricing.PriceChangeRequest
class PriceChangeRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Map holding any additional attributes passed in the request not matching any defined properties. -
applicationDateType
String applicationDateType
Indicates when the price data should be applied onto the subscription.- See Also:
-
appliesTo
String appliesTo
Whether the Price Data applies to all customers or identifies users to via customer segments.- See Also:
-
excludedSegments
List<String> excludedSegments
List of excluded customer segments — overrides thePriceChangeRequest.appliesToandPriceChangeRequest.includedSegmentsvalues to exclude users based on these customer segments. -
id
String id
-
includedSegments
List<String> includedSegments
List of included customer segments. -
price
javax.money.MonetaryAmount price
The one-time price. This is typically used during checkout. -
priceChangeEffectiveDate
Instant priceChangeEffectiveDate
The date and time when the price data change is to be taken into effect. -
priceListId
String priceListId
The contextId of the parent price list. -
recurringPrice
javax.money.MonetaryAmount recurringPrice
The amount of the recurring price. -
usagePrice
javax.money.MonetaryAmount usagePrice
The amount of the usage price.
-
-
-
Package com.broadleafcommerce.subscriptionoperation.exception
-
Exception com.broadleafcommerce.subscriptionoperation.exception.ProviderApiException
class ProviderApiException extends RuntimeException implements Serializable-
Serialized Fields
-
receivedException
org.springframework.web.reactive.function.client.WebClientResponseException receivedException
The received error.
-
-
-
-
Package com.broadleafcommerce.subscriptionoperation.service.exception
-
Exception com.broadleafcommerce.subscriptionoperation.service.exception.IllegalResponseException
class IllegalResponseException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.IllegalSubscriptionPricingStateException
class IllegalSubscriptionPricingStateException extends RuntimeException implements Serializable-
Serialized Fields
-
friendlyMessage
String friendlyMessage
Message to return to the caller that is more suitable for display purposes.
-
-
-
Exception com.broadleafcommerce.subscriptionoperation.service.exception.InsufficientSubscriptionAccessException
class InsufficientSubscriptionAccessException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.InvalidSubscriptionCreationRequestException
class InvalidSubscriptionCreationRequestException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.InvalidSubscriptionModificationRequestException
class InvalidSubscriptionModificationRequestException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.InvalidSubscriptionStatusChangeRequestException
class InvalidSubscriptionStatusChangeRequestException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.SubscriptionLockException
class SubscriptionLockException extends RuntimeException implements Serializable -
Exception com.broadleafcommerce.subscriptionoperation.service.exception.UnsupportedSubscriptionModificationRequestException
class UnsupportedSubscriptionModificationRequestException extends RuntimeException implements Serializable-
Serialized Fields
-
request
ModifySubscriptionRequest request
-
-
-
-
Package com.broadleafcommerce.subscriptionoperation.web.domain
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.AddItemRequest
class AddItemRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic for adding aCartItem. -
cartAttributes
Map<String,
Object> cartAttributes Attributes that should be copied to theCart.getAttributes()for this request. -
currency
javax.money.CurrencyUnit currency
TheCurrencyUnitof the item to be added to theCart. -
dependentCartItems
List<AddItemRequest> dependentCartItems
A list of additionalAddItemRequeststhat should be processed as dependent items of the resulting parent item of this currentAddItemRequest. -
itemAttributeChoices
Map<String,
String> itemAttributeChoices Attribute choices that should be copied toCartItem.getAttributeChoices()for this request. -
itemAttributes
Map<String,
Object> itemAttributes Miscellaneous attributes that should be copied to theCartItem.getAttributes()for this request. -
itemChoiceKey
String itemChoiceKey
If thisAddItemRequestis one withinAddItemRequest.getDependentCartItems(), this is the key to use to relate to thisCartItemto a configured product item choice. -
itemInternalAttributes
Map<String,
Object> itemInternalAttributes Miscellaneous internal attributes that should be copied to theCartItem.getInternalAttributes()for this request. -
itemType
String itemType
Thetypeof this item (e.g. Standard or Custom Quote Item). Defaults toDefaultCartItemTypes.STANDARD. -
merchandisingContext
String merchandisingContext
The value that should be mapped toCartItem.getMerchandisingContext(). This holds the selector or merchandising product's id. -
nonCatalogItemDetails
NonCatalogItemDetails nonCatalogItemDetails
Details of the item not present in a catalog.This is used as the cartItem in the
InitiateCancelSubscriptionHandlerthat is added to the cart which holds subscription cancellation related details. -
originalSubscriptionItemQuantity
int originalSubscriptionItemQuantity
The original quantity of the SubscriptionItem. This is different fromAddItemRequest.quantityasAddItemRequest.quantitycan be updated to "revert" the scaling based on the parent item quantity, while this field is the original SubscriptionItem quantity that is never changed.This field is used to revert the quantity scaling based on the parent item for the dependent item, particularly important for nested dependent item scenarios. For example, let's say we have the following nested dependent item scenario:
In cart, we have the following cart item structure:
- RootCartItem, quantity = 3
- DepCartItem, quantity = 2
- DepCartItemOfDepCartItem, quantity = 1
Since each dependent item's quantity is scaled based on the quantity of its parent. When converted into SubscriptionItems, the quantities becomes:
- RootItem, quantity = 3
- DepItem, quantity = 6
- DepItemOfDepItem, quantity = 6
So when we are converting the SubscriptionItems into AddItemRequests, we need to revert the scaling of quantities, which can be problematic if we use
AddItemRequest.quantityto de-scale the quantity in a nested dependent item scenario, as the parent'sAddItemRequest.quantityis already reverted by the time it's used to revert its dependent item's quantity.This field is only relevant for the internal working of the system and is therefore marked with
JsonIgnore. -
paymentStrategy
String paymentStrategy
Declares that payments made against a subscription are going towards the goods/services rendered in the previous vs current period. -
productId
String productId
The id of the product for this add item request. Used to retrieve product information for the cart item. -
quantity
int quantity
The quantity of this item to be added to theCart. -
recurringPeriodFrequency
Integer recurringPeriodFrequency
The frequency of the recurring period, e.g., if this is 1 andAddItemRequest.recurringPeriodTypeis MONTHLY, then the recurring price should be charged every 1 month.- See Also:
-
AddItemRequest.recurringPeriodType
-
recurringPeriodType
String recurringPeriodType
The period type for the recurring price, e.g. MONTHLY, QUARTERLY, ANNUALLY.- See Also:
-
AddItemRequest.recurringPeriodFrequency
-
sku
String sku
The SKU code for the item (e.g., Product or Variant). -
termDurationLength
Integer termDurationLength
The length of the term duration selected for the item, if any. Some items may have terms to allow certain pricing for the user. This indicates the length of duration for the selected term. For example, choosing between paying the full price for a device (no terms) vs splitting payment over 36 months (termDurationLengthof 36 andAddItemRequest.termDurationTypeof MONTHS).- See Also:
-
AddItemRequest.termDurationType
-
termDurationType
String termDurationType
The type of the term duration selected for the item, if any. Some items may have terms to allow certain pricing for the user. This indicates the type of duration, e.g., DAYS, WEEKS, MONTHS, YEARS, for the selected term. For example, choosing between paying the full price for a device (no terms) vs splitting payment over 36 months (AddItemRequest.termDurationLengthof 36 andtermDurationTypeof MONTHS).- See Also:
-
AddItemRequest.termDurationLength
-
variantId
String variantId
The id of the variant for this add item request. Used to retrieve variant information for the cart item. -
version
Integer version
The version of the cart being modified. Not needed for creation requests.
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.BulkPriceUpdateSubscriptionRequest
class BulkPriceUpdateSubscriptionRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
afterRecurringPrice
BigDecimal afterRecurringPrice
The PriceData recurringPrice after the price change. -
beforeRecurringPrice
BigDecimal beforeRecurringPrice
The PriceData recurringPrice before the price change. -
excludedSegments
Set<String> excludedSegments
The segments that identify the accounts whose subscriptions should be excluded from those identified byBulkPriceUpdateSubscriptionRequest.includedSegments. Only applicable whenBulkPriceUpdateSubscriptionRequest.priceChangeScopeTypeis set toDefaultPriceChangeScopeType.SEGMENTS. -
includedSegments
Set<String> includedSegments
The segments that identify the accounts whose subscriptions should be updated. Only applicable whenBulkPriceUpdateSubscriptionRequest.priceChangeScopeTypeis set toDefaultPriceChangeScopeType.SEGMENTS. -
priceChangeEffectiveDate
Instant priceChangeEffectiveDate
The effective date of the price change. Reserved for future use. -
priceChangeEffectiveType
String priceChangeEffectiveType
Describes how the effective date of a subscription price change should be determined.- See Also:
-
priceChangeScopeType
String priceChangeScopeType
Represents the default types of customer scope for which subscription bulk price changes can be applied.- See Also:
-
priceDataId
String priceDataId
The id of the updated price data tied to one or more subscriptions. -
reference
String reference
An idempotency key that can be used to identify repeated requests
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.CreateCartRequest
class CreateCartRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
addItemRequests
List<AddItemRequest> addItemRequests
The initialAddItemRequeststo populate the cart. -
cartAttributes
Map<String,
Object> cartAttributes Miscellaneous attributes that should be copied toCart.getAttributes() -
cartInternalAttributes
Map<String,
Object> cartInternalAttributes Miscellaneous internal attributes for this item. It is used for attributes that assist in the internal working of Broadleaf MicroServices. For example, attributes to help with processing the cart's checkout. -
customerTimezone
String customerTimezone
The customer's timezone, which gets stored inCart.getInternalAttributes()to be used by downstream services.If this is present in subscription scenarios, then it will be used to adjust subscription dates to describe the beginning/end of days relative to the customer's timezone.
- See Also:
-
expirationDate
Instant expirationDate
DefaultCartTypes.QUOTEcarts can have an expiration date. -
name
String name
Allows optionally setting a cart name. This is typically blank for standard, in-process carts, and may be set when creating a Quote or Named cart directly. -
priceCartRequest
PriceCartRequest priceCartRequest
The initialPriceCartRequestto price the cart. -
type
String type
Allows optionally setting the type of cart to be created. Default isDefaultCartTypes.STANDARD.- See Also:
-
DefaultCartTypes
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.CreateSubscriptionFromOrderRequest
class CreateSubscriptionFromOrderRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic for adding aSubscription. -
fulfillments
List<com.broadleafcommerce.order.client.domain.OrderFulfillment> fulfillments
TheFulfillmentscreated for theCreateSubscriptionFromOrderRequest.order. -
order
com.broadleafcommerce.order.client.domain.Order order
The source order to use to create one or moreSubscriptions.
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.IdentifyCancellationPolicyRequest
class IdentifyCancellationPolicyRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.IdentifyCancellationPolicyResponse
class IdentifyCancellationPolicyResponse extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be added to the response in order to provide more information. -
policyByCartItemId
Map<String,
com.broadleafcommerce.order.common.domain.subscription.CancellationPolicyRef> policyByCartItemId A map ofCartItem.getId()to the matchingCancellationPolicyRef.
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.ModifySubscriptionRequest
class ModifySubscriptionRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
action
SubscriptionAction action
The action to be performed on the specifiedSubscription. -
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic -
autoRenewalEnabled
boolean autoRenewalEnabled
The value to changeSubscription.isAutoRenewalEnabled()to. -
cancellationPolicy
CancellationPolicy cancellationPolicy
Describes details for access & charges in the current period in which the cancellation of this subscription is being requested/executed. It should not be serialized. -
cancellationPolicyDetail
CancellationPolicyDetail cancellationPolicyDetail
Describes details of the applicable cancellation policy for this subscription. It should not be serialized. -
immediateCancellation
boolean immediateCancellation
Should this subscription be cancelled immediately? -
itemChoiceByChoiceKey
Map<String,
ItemChoice> itemChoiceByChoiceKey Mapping ofadd-on choice keystoadd-ons. Used in the edit flow. -
newItemRef
String newItemRef
Reference to the id (productId) of the item to upgrade or downgrade to. -
newItemRefType
String newItemRefType
Type of newItemRef that this item is to be upgraded or downgraded to. e.g. BLC_PRODUCT.- See Also:
-
nextRootItem
SubscriptionReferencedItem nextRootItem
The hydrated item identified byModifySubscriptionRequest.newItemRefTypeandModifySubscriptionRequest.newItemRefwhich the subscription will be upgraded or downgraded to. -
product
Product product
TheProductof the rootSubscriptionItem. Used in the edit flow. -
reason
String reason
The reason for modifying the subscription. -
rootItem
SubscriptionReferencedItem rootItem
The hydrated original root item of the subscription to be modified. -
subscriptionId
String subscriptionId
Theid of the subscriptionto modify. -
userRef
String userRef
The reference to the user requesting to perform the modification. -
userRefType
String userRefType
The type of user requesting to preform the modification.- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.ModifySubscriptionResponse
class ModifySubscriptionResponse extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
cart
com.broadleafcommerce.cart.client.domain.Cart cart
-
subscriptionWithItems
SubscriptionWithItems subscriptionWithItems
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.PriceCartRequest
class PriceCartRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
currency
javax.money.CurrencyUnit currency
The currency to price the cart against. -
locale
Locale locale
The locale to price the cart against. -
updateCatalogPricing
boolean updateCatalogPricing
Declares if catalog prices should also be gathered as part of the repricing process.
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.SubscriptionActionRequest
class SubscriptionActionRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
requestAttributes
Map<String,
Object> requestAttributes Additional request attributes. -
subscriptionId
String subscriptionId
The id of the subscription to get the available actions for. -
userRef
String userRef
The reference to the user making the request. -
userRefType
String userRefType
The type of the user making the request.- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.SubscriptionActionResponse
class SubscriptionActionResponse extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
availableActions
List<SubscriptionAction> availableActions
The availableSubscriptionActionsthat may be possible for this subscription. -
unavailableReasonsByActionType
Map<String,
List<String>> unavailableReasonsByActionType The unavailableSubscriptionActionTypesalong with unavailable reasons for this subscription.
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.SubscriptionCreationRequest
class SubscriptionCreationRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic for adding aSubscription. -
alternateUserRef
String alternateUserRef
Alternate reference to the user. Useful for third-party authentication system identifiers -
alternateUserRefType
String alternateUserRefType
Type of the alternative user reference- See Also:
-
autoRenewalEnabled
boolean autoRenewalEnabled
Whether this subscription automatically renews at the end of the current subscription term. -
billingFrequency
String billingFrequency
Deprecated.in favor ofSubscriptionCreationRequest.periodType&SubscriptionCreationRequest.periodFrequencyFrequency of billing for this subscription -
currency
javax.money.CurrencyUnit currency
Currency of this subscription -
endOfTermDate
Instant endOfTermDate
The end of term date for this subscription. -
itemCreationRequests
List<SubscriptionItemCreationRequest> itemCreationRequests
-
name
String name
Name of this subscription -
needGrantEntitlements
boolean needGrantEntitlements
Whether the system has outstanding entitlements to grant for this subscription -
nextBillDate
Date nextBillDate
Next date this subscription will be billed -
nextStatusChangeDate
Date nextStatusChangeDate
Date when the next status should begin- See Also:
-
SubscriptionCreationRequest.subscriptionNextStatus
-
nextStatusChangeReason
String nextStatusChangeReason
Reason for the update to the next status- See Also:
-
SubscriptionCreationRequest.subscriptionNextStatus
-
paymentStrategy
String paymentStrategy
Declares that payments made against a subscription are going towards the goods/services rendered in the previous vs current period. -
periodFrequency
Integer periodFrequency
The frequency with which the recurring price should be charged., e.g., a value of 1 combined withSubscriptionCreationRequest.periodTypeof MONTH would indicate to a subscription service that the price should be charged every 1 month.- See Also:
-
SubscriptionCreationRequest.periodType
-
periodType
String periodType
The period type for the price, e.g. MONTHLY, QUARTERLY, ANNUALLY- See Also:
-
SubscriptionCreationRequest.periodFrequency
-
preferredPaymentAccountId
String preferredPaymentAccountId
References an identifier of a BillingServices PaymentAccount that is considered preferred for this subscription. -
rootItemRef
String rootItemRef
Reference to the item id for which this subscription was provision -
rootItemRefType
String rootItemRefType
Type of the item for which this subscription was provisioned -
secondarySourceRef
String secondarySourceRef
The secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
SubscriptionCreationRequest.secondarySourceType
-
secondarySourceType
String secondarySourceType
The type of the secondary source to reference, e.g, an Order Item on an Order. Optional.- See Also:
-
SubscriptionCreationRequest.secondarySourceRefDefaultSubscriptionSourceType
-
subscriptionAdjustments
List<SubscriptionAdjustment> subscriptionAdjustments
Adjustments for this subscription. This field is used for creation from an API request and is not persisted with the object -
subscriptionNextStatus
String subscriptionNextStatus
Next status for this subscription- See Also:
-
subscriptionSource
String subscriptionSource
This field shows from which process or user action this subscription originated.- See Also:
-
SubscriptionCreationRequest.subscriptionSourceRefDefaultSubscriptionSourceType
-
subscriptionSourceRef
String subscriptionSourceRef
This field shows the identifier of the process or user action this subscription originated.- See Also:
-
SubscriptionCreationRequest.subscriptionSource
-
subscriptionStatus
String subscriptionStatus
Current status of this subscription- See Also:
-
termDurationLength
Integer termDurationLength
The length of the terms, e.g., if this is 36 andSubscriptionCreationRequest.termDurationTypeis MONTHS, then the user should be billed for 36 months.- See Also:
-
SubscriptionCreationRequest.termDurationType
-
termDurationType
String termDurationType
The term duration type, e.g. DAYS, WEEKS, MONTHS, YEARS.- See Also:
-
SubscriptionCreationRequest.termDurationLength
-
userRef
String userRef
Reference to the user to whom this subscription belongs -
userRefType
String userRefType
Type of user owning this subscription- See Also:
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.SubscriptionItemCreationRequest
class SubscriptionItemCreationRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
additionalAttributes
Map<String,
Object> additionalAttributes Miscellaneous attributes that can be set to this request in order to inform business logic for adding aSubscriptionItem. -
addOnKey
String addOnKey
If this item was the result of an add-on, then this stores the key of the add-on in the context of its parent. This is important when editing a subscription in order to recreate the original cart item. -
itemName
String itemName
Item name -
itemRef
String itemRef
Reference to the item ID -
itemRefType
String itemRefType
Type of item that this object represents -
itemUnitPrice
BigDecimal itemUnitPrice
Unit price of the item (price of a single unit) -
parentItemRef
String parentItemRef
Reference to the item underlying the parent subscription item if this is a child subscription item -
parentItemRefType
String parentItemRefType
Type of the parent subscription item's backing item if this is a child subscription item -
quantity
int quantity
Quantity purchased -
subscriptionItemAdjustments
List<SubscriptionItemAdjustment> subscriptionItemAdjustments
Adjustments for this subscription. This field is used for creation from an API request and is not persisted with the object -
taxable
boolean taxable
Whether this item is taxable -
taxCategory
String taxCategory
Tax category of the item
-
-
Class com.broadleafcommerce.subscriptionoperation.web.domain.UpdateSubscriptionStatusRequest
class UpdateSubscriptionStatusRequest extends Object implements Serializable- serialVersionUID:
- 1L
-
Serialized Fields
-
Subscription.periodType&Subscription.periodFrequency