Remove rate plans from subscriptions before future-dated removals
You can create a Remove Product order action even if there is already a future-dated Remove Product order action on the subscription. The feature is supported through the Orders UI and REST API.
Once a rate plan charge has been removed from a certain effective date, if you are going to perform another Remove product order action on the same charge, the system has the following behaviors based on the effective date of the second removal:
- If the effective date of the second removal is earlier than that of the first removal, the system supports it as described in this article.
- If the effective date of the second removal is the same as or later than that of the first removal, the system behaves in the following manner:
- A new subscription version will be created as a result of the second removal.
- The second removal will take no effect and the end date of the rate plan charge is still set as the effective date of the first removal.
For example:
- A customer subscribes to your monthly service for one year starting on January 1, 2022.
- In March, the customer wants to remove the service on a future date, July 1, 2022. So you create a future-dated Remove Product amendment by setting the effective date to July 1, 2022.
- In April, the customer wants to remove the service starting on May 1, 2022. So you create a Remove Product amendment by setting the removal date to May 1, 2022.
The following table lists the order actions your customer has applied:
Order Action | Effective Date and End Date |
---|---|
Create Subscription |
January 1, 2022 - December 31, 2022 |
Remove Product before a future-dated Remove Product |
May 1, 2022 - June 30, 2022 |
Remove Product |
July 1, 2022 - December 31, 2022 |
Use the Zuora application
You can use the Zuora UI to remove a product even when future-dated Remove Product order actions already exist on the subscription.
- Follow the steps 1 - 8 in Remove a Product in a Subscription to remove the product starting on July 1, 2022.
- On the Included Products tab of the Review Order page, click the Display Removed Products toggle button to display the previously removed product.
- Click Remove under the target product so that you can remove it from a date that is earlier than the future-dated removal date - July 1, 2022.
- In the remove rate plan dialog box, set the dates in the Contract effective, Service activation, and Customer acceptance fields to be May 1, 2022.
- Click Continue.
- Click Activate to the order.
Use the REST API
You can use the "Create order" operation to remove a product from a subscription even if there is a future-dated removal.
To remove a product from a subscription future-dated removal 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
.$AccountNum
The number of the account that will own the order. For example, A00000001
.$RPId
The ID of the rate plan to remove from the subscription. For example, 402892c42ce80787012ce80ea2310019
.$Future-dated_removal_date
The future-dated removal date, 2021-07-01
.$Removal_date
The current removal date, 2021-05-01
. -
Use the "Create order" operation to create an order under an existing account:
Request POST /v1/orders/
Request Body { "orderDate": "$Removal_date", "existingAccountNumber": "$AccountNum", "subscriptions": [ { "subscriptionNumber": "$SubscriptionNum", "orderActions": [ { "type": "RemoveProduct", "triggerDates": [ { "name": "ContractEffective", "triggerDate": "$Future-dated_removal_date" }, { "name": "ServiceActivation", "triggerDate": "$Future-dated_removal_date" }, { "name": "CustomerAcceptance", "triggerDate": "$Future-dated_removal_date" } ], "removeProduct": { "ratePlanId": "$RPId" }, }, { "type": "RemoveProduct", "triggerDates": [ { "name": "ContractEffective", "triggerDate": "$Removal_date" }, { "name": "ServiceActivation", "triggerDate": "$Removal_date" }, { "name": "CustomerAcceptance", "triggerDate": "$Removal_date" } ], "removeProduct": { "ratePlanId": "$RPId" }, } ] } ], "processingOptions": { "runBilling": false, "collectPayment": false } }
To create the order under a new account instead of an existing account, specify the
newAccount
field instead of theexistingAccountNumber
field.
To preview invoices for the subscription, use the "Preview order" operation.