Update products in subscriptions
This tutorial demonstrates how to update a product in a subscription by creating an order. See Which product fields can I update? for the product fields you can update.
In this tutorial, you will set the following dates to today's date:
- The date when the order is signed
- The contract effective date of the product update
- The service activation date of the product update
- The customer acceptance date of the product update
Update a rate plan using the Zuora UI
To update a product to a subscription by creating an order in the Zuora application:
-
Navigate to Customers > Orders. The Orders page opens.
-
Click Create New Order at the top right. The Create New Order page opens.
-
In the Account field, enter the name of the account that owns the subscription.
You can enter the account by clicking either Account Name or Account Number.
- If you click Account Name, type part of the account name in the Account field and the filtered accounts can be dynamically listed for your selection.
- If you click Account Number, type the complete account number.
-
Choose what you want to do by clicking Amend Subscription.
-
Select either the Subscription Invoiced or Subscription Owned option from the field to list the respective subscriptions.
This feature is in the Early Adopter phase. We are actively soliciting feedback from a small group of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.
-
In the Select an existing subscription area, locate the target subscription to which you are to add products by using the Search field.
-
On the target subscription line, click Select in the ACTION column.
-
In the Included Products tab of the Associated subscriptions area, find the product to be updated, and then click Update below the rate plan name.
-
Scroll up to the top, and specify appropriate dates in the Contract effective, Service activation, and Customer acceptance fields for the operation. For more information, see Billing Trigger Dates.
-
(Optional): In the Additional information area, enter the reason for updating the rate plan in the Change Reason field.
-
In the Products and charges area, locate the charge to be updated, and then make the changes in the fields. If the View Price in Catalog link is displayed in the Price column in a charge row, click this charge to expand the charge details and select the Catalog Pricing checkbox in the Charge Pricing section to make the price editable.
-
After all the desired changes are done, click Continue to review the order.
-
Click Activate to activate the order.
Update a rate plan using the REST API
You can use the Create an order operation to update a rate plan in a subscription.
Before the Orders feature is enabled, you have to use the "Update subscription", "Amend", or "CRUD: Create amendment" operation.
To update a rate plan in a subscription by creating an order:
-
Determine the values of the following variables:
Variable Description $SubscriptionNum
The number of the subscription to update. For example,
A-S00000001
.To create the order under a new account instead of an existing account, specify the
newAccount
field instead of theexistingAccountNumber
field.$AccountNum
The number of the account that will own the order. For example, A00000001
.$RPId
The ID of the rate plan to update in the subscription. For example, 2c92c0f85d7d53d3015dac494dfc5cbf
.$ChargeNum
The number of the charge to update in the rate plan. For example, C-00000020
.$Today
Today's date. For example, 2017-09-30
. -
Use the "Create an order" operation to create an order under an existing account:
Request POST /v1/orders/
Request Body { "orderDate": "$Today", "existingAccountNumber": "$AccountNum", "subscriptions": [ { "subscriptionNumber": "$SubscriptionNum", "orderActions": [ { "type": "UpdateProduct", "triggerDates": [ { "name": "ContractEffective", "triggerDate": $Today }, { "name": "ServiceActivation", "triggerDate": $Today }, { "name": "CustomerAcceptance", "triggerDate": "$Today" } ], "updateProduct": { "ratePlanId": "$RPId", "chargeUpdates": [ { "chargeNumber": "$ChargeNum", "pricing": { "recurringVolume": { "quantity": 50 } } } ] } } ] } ], "processingOptions": { "runBilling": false, "collectPayment": false } }
To preview invoices for the updated subscription, use the "Preview order" operation.
Update a rate plan with selective charges
You can use the Create an order operation to update a rate plan with selective charges.
To update a rate plan with selective charges:
-
Determine the values of the following variables:
Variable Description productRatePlanChargeId The ID of the product rate plan charge. For example, 402880e78cd84081018cd85d8d32001f.
RatePlanId The ID of the subscription rate plan rate plan. For example, 402880e48d15c3a8018d15cfe49d00ab. -
Use the following code for updating a subscription rate plan by adding selective charges. For example, consider that you want to add one remaining charge with productRatePlanChargeId to an existing subscription rate plan with ratePlanId.
This operation is possible only if this charge hasn’t been added to this subscription rate plan earlier.
Request POST /v1/orders/
Request Body { "orderDate": "2024-01-01", "existingAccountNumber": "AN_acc17031289013921703128901395", "subscriptions": [ { "subscriptionNumber": "A-S00000021", "orderActions": [ { "type": "UpdateProduct", "triggerDates": [ { "triggerDate": "2024-01-01", "name": "ContractEffective" }, { "triggerDate": "2024-01-01", "name": "ServiceActivation" }, { "triggerDate": "2024-01-01", "name": "CustomerAcceptance" } ], "updateProduct": { "ratePlanId": "402880e48d15c3a8018d15cfe49d00ab", "isAddingSubsetCharges": true, "chargeUpdates": [ { "productRatePlanChargeId": "402880e78cd84081018cd85d8d32001f" } ] } } ] }
In the above example, you can mention productRatePlanChargeNumber instead of productRatePlanChargeId to specify the charge.
This feature is in the Early Adopter phase. We are actively soliciting feedback from a small group of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.