These release notes provide a summary of new features, enhancements, and resolved issues in the Zuora Quotes Version 9 releases. Version 9.0 is the major release, after which all the 9.X maintenance releases are based. To see previous release notes, go to Previous Zuora CPQ Releases.
The 9.11 release includes the following new features, enhancements, and resolved issues.
Previously, a NUMBER_OUTSIDE_VALID_RANGE error was reported on the Included Units field in Quote Rate Plan Charge when you tried to load a large usage product to the Quote. The scale of this field is now aligned with the Included Units field in Product Rate Plan Charge and this issue has been fixed.
Previously, when a Billing Account was Tax Exempt, the tax was still calculated on the associated Quote when previewed. This issue has been fixed.
Zuora Quotes Version 9.11 will be pushed to your org automatically if your org is on the latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.9, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Note that the QuoteCharge migration script will no longer be run automatically if you are upgrading from version 6.X to 9.11. You can run the script manually by following the steps described in Run the Script to Migrate Quotes Data.
The 9.10 release includes the following new features, enhancements, and resolved issues.
Prior to 9.10, the storeExistingProductsJob Job could hit the platform limits when a high volume Quote of Amendment or Renewal type was created. As of Quotes 9.10, the Store Existing Products feature is enhanced to support High Volume Quoting. When a Quote is marked as High Volume, an additional Apex job storeExistingProductsBatchable will be run to store QuoteRatePlanCharges and QuoteRatePlanChargeTiers. See Store Existing Products for High Volume Quotes for more information.
Previously, when the List Price was updated on a QCharge, the change was not retained. This issue has been fixed.
Previously, when you set Subscription Name to Auto-Number in Zuora Config > Default Value Settings > Subscription Default Settings, the submitted Subscription still had Quote Name as Subscription Name. This issue has been fixed.
The 9.9 release includes the following new features, enhancements, and resolved issues.
We have added AsyncQuoteSubmit Class and its related classes into CPQ X Utility. If you enable high volume subscription support for your Zuora tenant, you can use these classes to submit large quotes to Zuora with asynchronous requests.
We support a new global method setQuoteRatePlanIds(Set<Id> quoteRatePlanIds)
in the QPlanReader.Settings Class. You can now load QPlans with a set of QuoteRatePlan Ids. See the Sample Code for quick reference.
Previously, when you tried to change the invoice owner while creating a Renewal Quote with Orders Enabled, an "Attempt to de-reference a null object" error occurred. This issue has been fixed.
Previously, when you ramped or renewed a Quote that had many tiers with Orders enabled, the governor limit was hit at a low volume. This issue has been fixed.
Zuora Quotes Version 9.9 will be pushed to your org automatically if your org is on the latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.8, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Note that the QuoteCharge migration script will no longer be run automatically if you are upgrading from version 6.X to 9.9. You can run the script manually by following the steps described in Run the Script to Migrate Quotes Data.
The 9.8 release includes the following new features, enhancements, and resolved issues.
When you upgrade to Quotes 9.8, the Refresh Custom Settings job in the Setup > Jobs > Scheduled Jobs will be deleted. If you still want to start the scheduled job that recurringly refreshes the custom settings, you need to set it up manually. See Review the Scheduled Jobs for Refresh Custom Settings for the details.
Previously, an error was reported by XSS Auditor in the Zuora Hosted Payment Page in Salesforce. This issue has been fixed.
Previously, a Divide by Zero error was returned when you tried to add a product rate plan to a quote so that the charges on the product rate plan have list price as zero. This issue has been fixed.
Zuora Quotes Version 9.8 will be pushed to your org automatically if your org is on the latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.7, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Note that the QuoteCharge migration script will no longer be run automatically if you are upgrading from version 6.X to 9.8. You can run the script manually by following the steps described in Run the Script to Migrate Quotes Data.
The 9.7 release includes the following new features, enhancements, and resolved issues.
You can now read the custom fields from Zuora through the field sets when the Store Existing Products feature is enabled. See Store Custom Fields for Existing Products for more information.
You can now retrieve the custom fields from the stored products by QPlanReader.load()
global method when you enable the Store Existing Products feature. See Querying Custom Fields from Stored Products in QPlanReader class for more information.
When the Amend List Price to Effective Price setting was released in 9.6, overage charges were not supported. This setting now applies to overage charges. Note that this setting is still not effective for tiered charges.
Previously, when you created a new Quote and selected a charge with Discount, if you edited the discount percentage in the discount pop-up window and set it to zero, an "Effective Price invalid" error message would be prompted upon save. This issue has been fixed.
Previously, when you searched for a product in Product Selector with a name containing special characters, you would be prompted an error of unexpected token or the search result was empty. These issues have been fixed.
Previously, the parent billing account of a Quote could not be synced to Zuora with Customer Hierarchy enabled for the Zuora Tenant and Enable Parent Customer Account selected in Quote Configuration Settings. This issue has been fixed.
An error was reported when parsing the bundle structures created on a version of Quotes prior to 9.1. This issue has been fixed.
Zuora Quotes Version 9.7 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.6, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Note that the QuoteCharge migration script will no longer be run automatically if you are upgrading from version 6.X to 9.7. You can run the script manually by following the steps described in Run the Script to Migrate Quotes Data.
The 9.6 release includes the following new features, enhancements, and resolved issues.
The CPQ X API is a set of services that enables you to add a high number of products to a quote in a simple, performant and scalable way. The CPQ X API is based on a new charge framework introduced in the 9.6 release.
Prior to Zuora Quotes 9.6, you could only use the zQuoteUtil methods to interact with quote products through the zChargeGroup model. The CPQ X API provides models and utilities that you can use instead of the zChargeGroup model to write Apex code and interact with the products added to a quote.
See CPQ X for more information.
We have added a new global class called MetricsUtil to provide a set of global methods for programmatically fetching the various metrics of a quote. The global methods getExistingInvoiceItems()
and getPreviewedInvoiceItems()
are now available. See MetricsUtil class for more information.
We have enhanced the ProductSyncUtil global class to enable the sync of different types of SObjects from Salesforce. Before the 9.6 release, only Product objects can be synced. See ProductSyncUtil Class for more information.
We have added the support for updating the tier structure when syncing a product rate plan charge to Zuora. Supported updates include updating a tier's starting and ending units, adding a tier, and deleting a tier. This feature will only be available on Salesforce orgs that use WSDL version 75.0 and above.
You can now enable the Store Existing Products feature on Zuora Quotes without the Orders feature being turned on. See Manage Existing Products on a Subscription for more information.
We have added a new configuration setting called Amend List Price to Effective Price Zuora Quotes to set the list price of the Quote Rate Plan Charge to that of the Subscription Rate Plan Charge on renewal and amendment quotes for non-tiered and non-overage charges. This ensures that the list price will always equal the effective price at a renewal or amendment for the non-tiered and non-overage charges, and so a negative discount is avoided.
Starting from the 9.6 release, if you have enabled the Customer Acceptance Date and Service Activation Date and enabled the Default Trigger Dates setting in the Quote Configuration Settings, Zuora Quotes will:
Previously, the DeltaTCB value was not available on zBillingResults returned by the zQuoteUtil.previewQuotes( ) method. This issue has been fixed.
Zuora Quotes Version 9.6 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.5, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Note that the QuoteCharge migration script will no longer be run automatically if you are upgrading from version 6.X to 9.6. You can run the script manually by following the steps described in Run the Script to Migrate Quotes Data.
The 9.5 release includes the following enhancements and resolved issues.
Zuora Quotes has been enhanced to populate Effective Start Date and Effective End Date on Quote Rate Plan Charge for ramped new subscription quotes to align with the charge segment dates in Zuora.
Zuora Quotes has been enhanced to support overriding the Rating Group field on Rate Plan Charges in Zuora via the same field on Quote Rate Plan Charges in Quotes when you send a quote to Zuora.
Zuora Quotes has been enhanced to support creating subscription owners for new subscription quotes.
A new subscription quote can now be created with a renewal term of zero months, to indicate a non-renewable quote, in line with the Zuora API.
In the previous release, a user with bundling enabled could not sync the product rate plan charges which were set up with a charge type of 'OneTime' instead of 'One-Time'. Both charge type values are now valid.
In the previous release, the Product Selector JavaScript Plugin was not executing correctly for modified Original products and products added through the rules engine. This issue has been fixed.
Zuora Quotes Version 9.5 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.4, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.4 release includes the following enhancement and resolved issues.
Zuora Quotes has been enhanced to support Multi-Entity with the Orders feature enabled.
We have made query optimizations for adding new products.
Previously, the Quotes Rules Engine could not correctly read and recognize a charge's billing period setting in an amendment or renewal quote, when previous period did not match catalog value. This issue has been fixed.
Zuora Quotes Version 9.4 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.3, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.3 release includes the following enhancements and resolved issues.
A new configuration setting: Enable Rule Validation on Quote Creation is introduced to disable the runValidationRules
method in the Quote Rules Engine Plugin being run on the Create Quote page to improve the quoting performance. This setting is by default unselected. Therefore when pushed there is a behavior change in your org if it had been set to use the Quote Rules Engine Plugin. You can enable this setting to revert to the previous behavior.
We have added a new field called RatingGroup to the Salesforce Z Object ProductRatePlanCharge__c to support this field being synced when sending a Product Rate Plan Charge to Zuora.
Previously, when added the effective price in the Volume Pricing charge model with the list price for tiers being zero, the Discount Percent value would not get right. Also, a warning message below would appear and stopped the updated price being saved. This issue has been fixed.
N/A at [line:1, column:12639]
Previously, in the Renewal Quote flow, while going from the Create Quote page to the Edit Product page, the following error message would appear. This issue has been fixed.
System.LimitException: zqu:Too many SOQL queries: 101
We have fixed the question mark image formatting issue on the Create Quote page when using Lightning Experience.
Previously, the updateZCharge() method in the Product Selector Plugin did not get run correctly. This issue has been fixed.
Zuora Quotes Version 9.3 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.3, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.2.1 release includes the following resolved issue.
Previously, the date assistance for the Start Date and the Valid Until fields could not be launched correctly in the UI when using Lightning Experience. This issue has been fixed.
Zuora Quotes Version 9.2.1 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.2, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.2 release includes the following enhancements and resolved issues.
We have implemented changes to improve the performance in loading the Product Selector page.
A new configuration option Hide Original One-Time Charges is available under Quote Configuration Settings on the Zuora Config tab page. This option is introduced for toggling between hiding and showing the existing one-time charges on the amendment/renewal quotes and is by default selected.
Note starting in Quotes Version 9.1, hiding one-time charges on amendment/renewal quotes is set as the default configuration. Now with this option you can revert the configuration back to showing the one-time charges.
Previously, the Period field on the Quote Rate Plan Charge object was not editable via the zQuoteUtil.updateZChargeGroupFromSObject global method. This issue has been fixed.
Previously, clicking on the Maintain Quote button might not be able to launch the Select Billing Account page correctly. This issue has been fixed.
Previously, the Submit button might not be available on the Edit Product page after the charges had been updated. This issue has been fixed.
Previously, the New Quote flow might not work correctly for the Salesforce communities users. This issue has been fixed.
Previously, the cancellation date might not get set correctly on a cancellation quote. This issue has been fixed.
Previously, the one-time charges might not be able to get removed correctly in a renewal quote. This issue has been fixed.
Previously, the bundling sync of the Product Rate Plan Charge from Zuora Quotes to Zuora might fail with the error below. We have added the Recognize revenue without deferral field to the UI and made other relevant changes so that the accounting code settings are consistent with the Zuora side. This issue has been fixed.
zObject:[Id=null, arrayfields={}, fields={Code=INVALID_VALUE, Message=Accounting code does not match the Deferred Revenue accounting code.}, ztype=Error]
The Accounting Code field is now by default hidden from the UI and always set to equal the Recognized Revenue field. If you are to display the field - via including it in the Finance field set, you can leave it empty to avoid the error above. Otherwise, it still needs to match the Deferred Revenue Account field.
Previously, creating a Feature record and then syncing it to Zuora might fail with the error below. This issue has been fixed.
Catalog Sync failed to start. Please check Zuora connection.
Previously, the validation errors page configured as part of the Rules Engine action might hang at the second time being triggered. This may occur when Discount Charge models were used in conjunction with Rules Engine and if the user made further discount changes after the validation page was first triggered. This issue has been fixed.
Previously, you would not be able to create a rule that adds a product, then immediately updates the product in the Rules Engine. This issue has been fixed.
Previously, right-clicking the Opportunity link on the Quote Detail page and selecting open Link in a new tab would open the UI in the Salesforce Classic view. This issue has been fixed.
Zuora Quotes Version 9.2 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.1.3, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The issue with syncing custom fields to Zuora on the catalog has been fixed.
Zuora Quotes Version 9.1.3 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.0, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.1.2 release includes the following resolved issue.
Previously, previewing and sending new subscription Quotes to Zuora would fail in some cases when there were too many Quote Amendment records in the org. This issue has been fixed.
Zuora Quotes Version 9.1.2 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.0, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.1.1 release includes the following resolved issues.
We have fixed the issue with the Tier decimal scale settings. Now the decimal precision for the Quote Charge Tier records correctly reflects the decimal scale settings in the Display Scale Settings configuration.
We have fixed the issue with the Quote Rules Engine Plugin. Now you are able to add a charge and save a quote in your implementation of the plugin in the runValidationRules method.
Zuora Quotes Version 9.1.1 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.0, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
The 9.1 release includes the following enhancements and resolved issues.
Zuora Quotes Version 9.1 will be pushed to your org automatically if your org is on a latest version. You do not have to take any action to upgrade.
If your org is on a version before 9.0, you still need to request the Zuora Quotes package installation link from Zuora Global Support for upgrading to a Version 9 release.
Now you can configure and update the CONTRACT EFFECTIVE DATE field in a ramp segment for your ramp deal. The date you set is restricted to be within the ramp period range of that very ramp segment. Also, the SERVICE ACTIVATION DATE you set must be after or equal to the CONTRACT EFFECTIVE DATE. Similarly, the CUSTOMER ACCEPTANCE DATE you set must be after or equal to the SERVICE ACTIVATION DATE.
In a new subscription quote for a ramp deal, a product set with the following date configuration is sent to Zuora as part of a new Subscription. With the other date configuration, the product is sent as an Order Action.
Now you can submit a new subscription quote or an amendment quote with the discount percentage being updated for a charge. The update will be sent to Zuora as an Order Action.
Starting in this version, existing One Time Charges will no longer be visible in Amendment Quotes and Renewal Quotes.
Starting in this version, a product added from the Rules Engine in a ramp period segment will be cascaded to the future ramp segments.
The Product Catalog sync might report an error message about not being able to delete a product rate plan that had actually been deleted already from Zuora previously. See the error message as below. This issue has been fixed.
zObject:[Id=null, arrayfields={}, fields= {Code=CANNOT_DELETE, Message=invalid id}, ztype=Error]
The issue with Subscription Term End Date in an Amendment Quote not getting calculated correctly per the selected Term Period Type has been fixed.
Starting in this version, inactive features attached to a product will not get displayed in the guided selling flow.
The Lightning Guided Product Selector might report the following error if amendments have been made to products on the Zuora side after Bundling is enabled. This issue has been fixed.
Content cannot be displayed: common.apex.runtime.impl.ExecutionException: List index out of bounds: 0
The Amendment Quote flow page will hang indefinitely if the user clicks Next after selecting a billing account that has suspended subscriptions only - no valid subscription for amendments. This issue has been fixed.
Renewal Quote might fail with the following error when renewing a subscription for the second time after adding a bundle product with product options in the first renewal quote. This issue has been fixed.
09:41:59.590 (13742825908)|METHOD_EXIT|[210]|01p4100000EG7lR|zqu.CpqSelectProductController.initialSelectProductComponent()
09:41:59.590 (13742843007)|SYSTEM_MODE_EXIT|false
09:41:59.590 (13743048114)|FATAL_ERROR|System.ListException: List index out of bounds: 0
Class.zqu.ProductBundleJSONParser.ChargeGroupWrapper.getChargeGroup: line 283, column 1
Class.zqu.ProductBundleJSONParser.createChargeGroupBuilderOption: line 247, column 1
Class.zqu.ProductBundleJSONParser.generateQuoteProduct: line 96, column 1
Class.zqu.ProductBundleJSONParser.generateQuoteProducts: line 89, column 1
Class.zqu.ProductBundleJSONParser.parse: line 59, column 1
Class.zqu.QuoteProductHandler.getProductsFromZuora: line 39, column 1
Class.zqu.AmendmentQuoteProductHandler.getProductsFromZuoraAndSalesforce: line 25, column 1
Class.zqu.AmendmentQuoteProductHandler.initializeQuoteProducts: line 18, column 1
Class.zqu.Quote.initQuoteProducts: line 510, column 1
Class.zqu.Quote.getInstance: line 503, column 1
Class.zqu.CpqSelectProductController.initialSelectProductComponent: line 497, column 1
Class.zqu.CpqSelectProductController.__sfdc_theOptions: line 210, column 1
We have made the following changes to the ZCharge class to support more field updates and improve the user experience.
Support for Field Updates:
Support for Validation:
Support for Setting Value as Null:
The issue with the following fields not respecting Field Level Security settings has been fixed. Now you are able to restrict the access to these fields via Profile settings in Zuora Quotes.
Users might get logged out unexpectedly from Salesforce when clicking on the Save button on the edit product rate plan page or the new product option page. This issue has been fixed.
The following two issues have been fixed with the zqu.zQuoteUtil.PreviewQuotes method.
Child Quote or Parent Quote or Readonly quote cannot be previewed.
Configuring too many objects and fields in the filter conditions on the List Filter Configuration Settings page might cause a page storage size limit error as below. This issue has been fixed with the ability to configure the Z_ListFilterAvailableRelationships fieldset on the potential objects to restrict the objects available in the left list of the condition.
Maximum view state size limit (135KB) exceeded. Actual view state size for this page was 137.734KB.
By default, all field relationships are shown in the left list. By configuring the fieldset on the root object and assigning Lookup fields or ID values of the related object, you can restrict the objects and fields displayed.
Sending an Amendment Quote to Zuora with custom fields in Salesforce on the Quote Rate Plan Charge object set as formula fields might fail with the error below. This issue has been fixed.
Field custom_field__c is not editable
Previously when the ownership of a Quote was changed, the ownership of the Quote Product Features did not get changed to the new owner. This issue has been fixed.
We have made the isListPriceEditable() method public available in the ZCharge class for you to use in your Apex code. See zCharge Class.
Previously a renewal quote might fail with the error below when a Bundle product with product options was removed and then added again. This issue has been fixed. The use case, for example, is when you change the partner of a Bundle product in your business.
List index out of bound
Previously with both Bundling and Multi-Entity enabled, you were not able to generate SKU for your product in Salesforce. This issue has been fixed.
When creating a product you should now think about how to populate and overwrite the SKU field that gets auto-generated by Bundling If the Multi-entity feature is also turned on. Otherwise, the SKU field in Salesforce could no longer be unique.
The issue with cloning and then updating a product rate plan with only discount charges has been fixed.
With the Multi-Entity feature on, saving the Edit Cancellation Details Page for a cancellation quote might fail with the error below. This issue has been fixed.
Visualforce Error: System.AssertException: Assertion Failed: With Multi-Entity enabled, callouts cannot be made without setting an Entity ID.
Previously in the renewal quote, when the picklist values for Date Assistance were translated (not in English), the values could not be selected. This issue has been fixed.
The 9.0 release includes the following new features, enhancements, and resolved issues.
You can manage a ramp deal in a Renewal or Amendment Quote starting from the 9.0 release. See Renew/Amend Quote Flow in Lightning Guided Product Selector for Ramp Deal. For more information on ramp deals see Manage Ramp Deals.
A batch job storeExistingProductsJob and a new Quote Amendment type Original are introduced for retrieving the existing products on a subscription from Zuora and storing the information in Salesforce. See Manage Existing Products on a Subscription.
Starting from the 9.0 release, Zuora Quotes will shift your org to user-based licensing and the user is added to the package as a licensed user. See Add Users to Package License for how to add a user to the package license.
The Quotes List Visualforce page is removed from the Zuora Quotes 9.0 package and replaced by the standard Quote List page. After upgrading to the 9.0 release, you can delete the Quotes List Visualforce page in your org. The deletion does not force deleting it from your orgs or break any existing usage.
The Product Catalog sync might fail due to a SOQL query limitation as shown in the error below. This issue has been fixed.
CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY:zqu.ProductRatePlanChargeUOMTrigger: System.LimitException: zqu:Too many SOQL queries: 101
In your Apex code, you might have received an error when instantiating the zqu.zQuoteUtil.TotalInfo object in test classes. This issue has been fixed.