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 of Tracking information 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 the DefaultSubscriptionPaymentStrategy.POSTPAID strategy.
        • prepaidPolicyDetail
          CancellationPolicyDetail prepaidPolicyDetail
          The policy details for items that are using the DefaultSubscriptionPaymentStrategy.PREPAID strategy.
        • 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
      • Serialized Fields

        • additionalAttributes
          Map<String,Object> additionalAttributes
          Map holding any additional attributes passed in the request not matching any defined properties.
        • products
          org.springframework.data.domain.Page<Product> products
          The first page of Products belonging to the category.
    • Class com.broadleafcommerce.subscriptionoperation.domain.DelayedSubscriptionAction

      class DelayedSubscriptionAction extends Object implements Serializable
      serialVersionUID:
      1L
    • Class com.broadleafcommerce.subscriptionoperation.domain.EstimatedFuturePayment

      class EstimatedFuturePayment extends Object implements Serializable
      serialVersionUID:
      1L
      • Serialized Fields

        • amount
          javax.money.MonetaryAmount amount
        • 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 of SubscriptionPriceItemDetails describing the individual item prices that contributed to the overall EstimatedFuturePayment.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
    • Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionAdjustmentDetail

      class ExistingSubscriptionAdjustmentDetail extends ExistingAdjustmentDetail implements Serializable
      serialVersionUID:
      1L
    • Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionDetails

      class ExistingSubscriptionDetails extends Object implements Serializable
      serialVersionUID:
      1L
    • Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionItemAdjustmentDetail

      class ExistingSubscriptionItemAdjustmentDetail extends ExistingAdjustmentDetail implements Serializable
      serialVersionUID:
      1L
    • Class com.broadleafcommerce.subscriptionoperation.domain.ExistingSubscriptionItemDetail

      class ExistingSubscriptionItemDetail extends Object implements Serializable
      serialVersionUID:
      1L
    • 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
          The Category which the choice will be chosen from by the customer if the ItemChoice.targetType is DefaultItemChoiceTargetType.CATEGORY.
        • choiceKey
          String choiceKey
          The key used during the validation of cart item's configuration to relate this ItemChoice to one of the cart item's dependent items.
        • defaultProduct
          Product defaultProduct
          The default product that can be used when driving customer selections if the ItemChoice.targetType is DefaultItemChoiceTargetType.SPECIFIC_PRODUCTS. Can be null.
        • defaultProductInCategory
          Product defaultProductInCategory
          The default product that can be used when driving customer selections if the ItemChoice.targetType is DefaultItemChoiceTargetType.CATEGORY.
        • defaultVariant
          Variant defaultVariant
          The default variant that can be used when driving customer selections if the ItemChoice.targetType is DefaultItemChoiceTargetType.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 the category will be used.

          If this is a DefaultItemChoiceTargetType.SPECIFIC_PRODUCTS or DefaultItemChoiceTargetType.SPECIFIC_VARIANTS then any price set here will be overridden by the item pricing set on any of the ItemChoice.specificChoices for 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. null means 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. null means 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 the ItemChoice.targetType is DefaultItemChoiceTargetType.SPECIFIC_PRODUCTS or DefaultItemChoiceTargetType.SPECIFIC_VARIANTS this 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 the ItemChoice.targetType is DefaultItemChoiceTargetType.SPECIFIC_PRODUCT or DefaultItemChoiceTargetType.SPECIFIC_VARIANT this 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 the Subscription.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 with PeriodDefinition.getNumberOfDaysInShortenedPeriod() to prorate subscription pricing for the subscription period. PeriodDefinition.numberOfDaysInShortenedPeriod divided by PeriodDefinition.getNumberOfDaysInFullPeriod() gives the proration rate.
        • numberOfDaysInShortenedPeriod
          Long numberOfDaysInShortenedPeriod
          If a period is shortened (typically by the Subscription.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 with PeriodDefinition.getNumberOfDaysInFullPeriod() to prorate subscription pricing for the subscription period. PeriodDefinition.numberOfDaysInShortenedPeriod divided by PeriodDefinition.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
    • 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 of Tracking information 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. null means 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. null means 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 of Tracking information 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 the DefaultProductOptionType.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 type DefaultProductOptionType.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
    • 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 when ItemChoice.getOverridePrice() is null.
        • product
          Product product
          If the SpecificItemChoice.type is DefaultSpecificItemChoiceType.PRODUCT this 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 the SpecificItemChoice.type is DefaultSpecificItemChoiceType.VARIANT this holds the variant for this choice
          See Also:
          • SpecificItemChoice.variantParentProductId
        • variantParentProductId
          String variantParentProductId
          This field contains the id of the parent product of the specified SpecificItemChoice.variant if the type is DefaultSpecificItemChoiceType.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.
          in favor of Subscription.periodType & Subscription.periodFrequency
          Frequency of billing for this subscription
        • cancellationPolicyRef
          String cancellationPolicyRef
          A reference of the CancellationPolicy that 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 of Tracking information 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 a DefaultSubscriptionPaymentStrategy.PREPAID Subscription.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 from Subscription.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 of SubscriptionAdjustment and SubscriptionItemAdjustment
        • 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 with Subscription.periodType of 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:
        • 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:
        • 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 and Subscription.termDurationType is 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 subscription CartItem. If the subscription item has been removed as part of the action, then this value will be null.
        • itemName
          String itemName
        • 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 a DefaultSubscriptionActionFlow.CREATE action, 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
    • 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 of Tracking information 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:
        • 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:
        • 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
    • 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 the SubscriptionItemPriceDetail.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 a MonetaryAmount from 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 to SubscriptionItemPriceDetail.getProratedUnitAmountBetweenActionAndNextBillDate(), this is the SubscriptionItemAdjustmentPriceDetail.existingFullSubscriptionPeriodUnitDiscountAmount prorated 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 to SubscriptionItemPriceDetail.getProratedUnitAmountBetweenPeriodStartAndActionDate(), this is the SubscriptionItemAdjustmentPriceDetail.existingFullSubscriptionPeriodUnitDiscountAmount 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.
        • 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 the SubscriptionItemPriceDetail.getPriorUnbilledUnitAmount().

          Note: This typically only impacts the first period in the estimatedFuturePayments list.

          Similar to SubscriptionItemPriceDetail.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 to SubscriptionItemPriceDetail.getProratedUnitAmountBetweenActionAndNextBillDate(), this is the SubscriptionItemAdjustmentPriceDetail.fullSubscriptionPeriodUnitDiscountAmount prorated 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 to SubscriptionItemPriceDetail.getProratedUnitAmountBetweenPeriodStartAndActionDate(), this is the SubscriptionItemAdjustmentPriceDetail.fullSubscriptionPeriodUnitDiscountAmount prorated 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 to SubscriptionItemPriceDetail.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
        • 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 in SubscriptionItemAdjustmentPriceDetail.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 if the 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 of SubscriptionItemAdjustmentPriceDetail by 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 subscription CartItem. 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 an DefaultSubscriptionPaymentStrategy.PREPAID payment 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
        • 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 in SubscriptionItemPriceDetail.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 in SubscriptionItemPriceDetail.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 if the 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 the Subscription.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 with SubscriptionPeriod.getNumberOfDaysInShortenedPeriod() to prorate subscription pricing for the subscription period. SubscriptionPeriod.numberOfDaysInShortenedPeriod divided by SubscriptionPeriod.getNumberOfDaysInFullPeriod() gives the proration rate.
        • numberOfDaysInShortenedPeriod
          Long numberOfDaysInShortenedPeriod
          If a period is shortened (typically by the Subscription.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 with SubscriptionPeriod.getNumberOfDaysInFullPeriod() to prorate subscription pricing for the subscription period. SubscriptionPeriod.numberOfDaysInShortenedPeriod divided by SubscriptionPeriod.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 of SubscriptionActionPriceDetail objects 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 to SubscriptionPriceResponse.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 an DefaultSubscriptionPaymentStrategy.PREPAID payment 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 of SubscriptionPriceItemDetails describing the individual item prices that contributed to the overall SubscriptionPriceResponse.getAmountDueNow().
        • estimatedFuturePayments
          List<EstimatedFuturePayment> estimatedFuturePayments
          A collection of EstimatedFuturePayment objects 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 with SubscriptionPriceResponse.periodType of 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 a DefaultSubscriptionActionFlow.CREATE action, 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 of Adjustments being removed with additional contextual information.
        • rootCartItemId
          String rootCartItemId
          Reference to the root subscription CartItem
        • 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 full CancellationPolicy for the SubscriptionPricingContext.subscriptionRootItem if any.
        • cancellationPolicyDetail
          CancellationPolicyDetail cancellationPolicyDetail
          The relevant CancellationPolicyDetail for the SubscriptionPricingContext.paymentStrategy from the SubscriptionPricingContext.cancellationPolicy.
        • cart
          com.broadleafcommerce.cart.client.domain.Cart cart
          The Cart containing 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 existing Subscription if any. This is most relevant for subscription action flows that are modifying an existing subscription.
        • existingSubscriptionItemById
          Map<String,SubscriptionItem> existingSubscriptionItemById
          The existing Subscription if any. This is most relevant for subscription action flows that are modifying an existing subscription.
        • existingSubscriptionItemQuantities
          Map<String,Integer> existingSubscriptionItemQuantities
          Map of SubscriptionItem.getId() to the existing SubscriptionItem's quantity.
        • existingSubscriptionItemUnitPrices
          Map<String,javax.money.MonetaryAmount> existingSubscriptionItemUnitPrices
          Map of SubscriptionItem.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 the DefaultSubscriptionPaymentStrategy.POSTPAID vs DefaultSubscriptionPaymentStrategy.PREPAID payment 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 of DefaultSubscriptionPaymentStrategy.PREPAID, the first period represents the next period to be billed. Actions against an DefaultSubscriptionPaymentStrategy.PREPAID subscription 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 with SubscriptionPricingContext.periodType of 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 with SubscriptionPricingContext.periodType of 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 of Adjustments being removed due to the proposed changes.

          For example, an Adjustment could be lost due to the offer requirement no longer matches from the changes against the subscription.

        • removedSubscriptionItems
          List<SubscriptionItem> removedSubscriptionItems
          List of SubscriptionItems that 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 the SubscriptionPricingContext.existingSubscription is within its grace period during a cancellation flow.
        • subscriptionRootItem
          com.broadleafcommerce.cart.client.domain.CartItem subscriptionRootItem
          The CartItem representing the root SubscriptionItem.
    • Class com.broadleafcommerce.subscriptionoperation.domain.SubscriptionWithItems

      class SubscriptionWithItems extends Object implements Serializable
      serialVersionUID:
      1L
    • Class com.broadleafcommerce.subscriptionoperation.domain.UserSubscriptionSummary

      class UserSubscriptionSummary extends Object implements Serializable
      serialVersionUID:
      1L
    • 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 of Tracking information 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 a Variant.salePrice set. 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 to Product#inventoryCheckStrategy.
          See Also:
          • InventoryCheckStrategy
        • inventoryReservationStrategy
          String inventoryReservationStrategy
          Describes when the variant's inventory should be reserved. If not set, defaults to Product#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 to AttributeChoice#attributeName while values correspond to one of the corresponding AttributeChoice#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 are BLC_OFFER or BLC_OFFER_CODE
        • replaceExisting
          boolean replaceExisting
          Indicates whether this request should replace all other adjustments on the subscription.
        • subscriptionId
          String subscriptionId
          The ID of the Subscription to 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 the PriceChangeRequest.appliesTo and PriceChangeRequest.includedSegments values 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

  • Package com.broadleafcommerce.subscriptionoperation.service.exception

  • 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 a CartItem.
        • cartAttributes
          Map<String,Object> cartAttributes
          Attributes that should be copied to the Cart.getAttributes() for this request.
        • currency
          javax.money.CurrencyUnit currency
          The CurrencyUnit of the item to be added to the Cart.
        • dependentCartItems
          List<AddItemRequest> dependentCartItems
          A list of additional AddItemRequests that should be processed as dependent items of the resulting parent item of this current AddItemRequest.
        • itemAttributeChoices
          Map<String,String> itemAttributeChoices
          Attribute choices that should be copied to CartItem.getAttributeChoices() for this request.
        • itemAttributes
          Map<String,Object> itemAttributes
          Miscellaneous attributes that should be copied to the CartItem.getAttributes() for this request.
        • itemChoiceKey
          String itemChoiceKey
          If this AddItemRequest is one within AddItemRequest.getDependentCartItems(), this is the key to use to relate to this CartItem to a configured product item choice.
        • itemInternalAttributes
          Map<String,Object> itemInternalAttributes
          Miscellaneous internal attributes that should be copied to the CartItem.getInternalAttributes() for this request.
        • itemType
          String itemType
          The type of this item (e.g. Standard or Custom Quote Item). Defaults to DefaultCartItemTypes.STANDARD.
        • merchandisingContext
          String merchandisingContext
          The value that should be mapped to CartItem.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 InitiateCancelSubscriptionHandler that is added to the cart which holds subscription cancellation related details.

          See Also:
        • originalSubscriptionItemQuantity
          int originalSubscriptionItemQuantity
          The original quantity of the SubscriptionItem. This is different from AddItemRequest.quantity as AddItemRequest.quantity can 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.quantity to de-scale the quantity in a nested dependent item scenario, as the parent's AddItemRequest.quantity is 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 the Cart.
        • recurringPeriodFrequency
          Integer recurringPeriodFrequency
          The frequency of the recurring period, e.g., if this is 1 and AddItemRequest.recurringPeriodType is 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 (termDurationLength of 36 and AddItemRequest.termDurationType of 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.termDurationLength of 36 and termDurationType of 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 by BulkPriceUpdateSubscriptionRequest.includedSegments. Only applicable when BulkPriceUpdateSubscriptionRequest.priceChangeScopeType is set to DefaultPriceChangeScopeType.SEGMENTS.
        • includedSegments
          Set<String> includedSegments
          The segments that identify the accounts whose subscriptions should be updated. Only applicable when BulkPriceUpdateSubscriptionRequest.priceChangeScopeType is set to DefaultPriceChangeScopeType.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 initial AddItemRequests to populate the cart.
        • cartAttributes
          Map<String,Object> cartAttributes
          Miscellaneous attributes that should be copied to Cart.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 in Cart.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.QUOTE carts 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 initial PriceCartRequest to price the cart.
        • type
          String type
          Allows optionally setting the type of cart to be created. Default is DefaultCartTypes.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 a Subscription.
        • fulfillments
          List<com.broadleafcommerce.order.client.domain.OrderFulfillment> fulfillments
          The Fulfillments created for the CreateSubscriptionFromOrderRequest.order.
        • order
          com.broadleafcommerce.order.client.domain.Order order
          The source order to use to create one or more Subscriptions.
    • Class com.broadleafcommerce.subscriptionoperation.web.domain.IdentifyCancellationPolicyRequest

      class IdentifyCancellationPolicyRequest 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.
        • cartItems
          List<com.broadleafcommerce.cart.client.domain.CartItem> cartItems
          The cart items to identify the cancellation policies for.
    • 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 of CartItem.getId() to the matching CancellationPolicyRef.
    • 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 specified Subscription.
        • 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 change Subscription.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 of add-on choice keys to add-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 by ModifySubscriptionRequest.newItemRefType and ModifySubscriptionRequest.newItemRef which the subscription will be upgraded or downgraded to.
        • product
          Product product
          The Product of the root SubscriptionItem. 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
          The id of the subscription to 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
    • 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 a 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:
        • autoRenewalEnabled
          boolean autoRenewalEnabled
          Whether this subscription automatically renews at the end of the current subscription term.
        • billingFrequency
          String billingFrequency
          Deprecated.
          in favor of SubscriptionCreationRequest.periodType & SubscriptionCreationRequest.periodFrequency
          Frequency 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 with SubscriptionCreationRequest.periodType of 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:
        • 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:
        • 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 and SubscriptionCreationRequest.termDurationType is 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 a SubscriptionItem.
        • 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

        • additionalAttributes
          Map<String,Object> additionalAttributes
          Miscellaneous attributes that can be set to this request to inform business logic
        • requestedStatus
          String requestedStatus
          The new status that's being requested.
        • subscriptionId
          String subscriptionId
          The id of the subscription to modify.