Welcome to Zuora Product Documentation

Explore our rich library of product information

Multi Subscription Quoting overview

Learn the feature Multi-Subscription Quoting (MSQ) , which allows seamless management of multiple subscriptions with a single quote.

Note: The Multi-Subscription Quoting (MSQ) feature is in the Early Availability phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early availability program, contact Zuora Global Support.

Multi-Subscription Quoting (MSQ) is a comprehensive approach to subscription management that allows you to create, amend, and renew multiple subscriptions to your customers in a seamless and efficient manner with a single quote. It goes beyond traditional single-subscription models, enabling you to tailor subscriptions based on your customer preferences, market trends, and changing needs.

Multi-Subscription Quoting can be compared to the concept of child quotes nested within a parent quote. This concept broadens to include an array of subscription plans, with each plan acting as a distinct child quote integrated into the larger context

Using Parent and Child Quotes

A quote can have child quotes.

  • A quote that has child quotes is referred to as a parent quote.

    • A parent quote can have multiple sub-quotes.

    • Products cannot be added to a parent quote.

  • A child quote is referred to as a sub-quote.

    • One or more products can be added to a sub-quote.

Considerations for using MSQ

  • For a New quote, you can create 60 child quotes.
  • For Amend and Renew quotes, you can create 49 child quotes.
  • In Quote Studio, only up to 200 products can be added to a single child quote at a time.
  • There is a limit of 300 as the total order actions allowed in a single MSQ per the Asynchronous Order API limits.
  • Canceling multiple subscriptions in one quote is not supported.
  • Creating Pending subscriptions within MSQ is not supported.
  • Rules will only work for a single active child quote when the quote is loaded (Initial Load event), navigated to another child quote (Save/Submit event), or any change made on the active child quote (every time event).When you navigate from child 1 to child 2 quote, the MSQ Rules Engine executes twice:
    • Child 1 - For active child quote (Save/Submit event)
    • Child 2 - For to be activated child quote (Load event).
  • Creating Order Line Items within MSQ is not supported.
  • Cloning existing MSQs is not supported.
  • The "updatequote" event within the Extensibility Framework can only be used to update Parent Quotes and Active Quotes.

Additional considerations for using MSQ

If you are utilizing custom components in the Extensibility Framework, use the following approach to retrieve the product timeline from the quote state:

New WAY to get Product timelines in the Extensibility Framework:

1const productTimelinesProxy = JSON.parse(JSON.stringify( this.quoteState.subscription.productTimelines));

Previously, you might have utilized the below approach to get Product timelines in the Extensibility Framework:

1const productTimelinesProxy = JSON.parse(JSON.stringify(Object.values(this.quoteState.subscriptions)[0].productTimelines));

For MSQ, you need two additional @API properties, masterQuoteStateand parentQuoteState, to support extensibility framework components.