Update a Product on Subscription with Future-dated Updates

Knowledge Center > Subscriptions > Orders > Orders Tutorials > Update a Product in a Subscription > Update a Product on Subscription with Future-dated Updates

Update a Product on Subscription with Future-dated Updates

This feature is only available if you have the Orders feature enabled. We are actively soliciting feedback from a small set of early adopters. If you wish to have access to the feature, submit a request at Zuora Global Support.

You can create an Update Product order action even if there is already a future-dated Update Product order action on the subscription. 

For example:

  • A customer subscribes to your Basic Service for one year starting on January 1, 2019.
  • In March, the customer wants to upgrade to your Premium Service on a future date, July 1, 2019. So you create a future-dated Update Product amendment by setting the effective date to July 1, 2019.
  • In April, the customer wants to upgrade to your Special Service starting on May 1, 2019. So you create an Update Product amendment by setting the update date to May 1, 2019. 

The following table lists the services your customer has subscribed to:

Service Name Effective Date and End Date Rate Plan Charge

Basic Service

January 1, 2019 - April 30, 2019

$10/seat/month * 10 seat

Special Service

May 1, 2019 - June 30, 2019

$9/seat/month * 15 seat

Premium Service

July 1, 2019 - December 31, 2019

$8/seat/month * 20 seat

You can create an Update Product order action before a future-dated Update Product order action on the subscription in Zuora UI and REST API.

Use the Zuora Application

You can use the Zuora UI to update a product even when future-dated Update Product order actions already exist on the subscription.

To create an Update Product order action on a subscription with future-dated Update Product order action:

  1. Follow step 1-9 in Update a Product in a Subscription to identify the subscription and select the product for updates.

    BasicServiceToUpdate.png

  2. Click more details under the rate plan charge you are to update.
  3. In the Rate Plan Charge Details area apply the Premium Service settings to the selected rate plan charge:
    1. Update Price to 8 and Quantity to 20.
    2. Identify to Trigger Condition, select Upon Contract Effective. You can select the other options as well, as long as the setting reflects your business requirement correctly.

      PremiumService.png

    3. Scroll up to the top of the Order Overview page and specify the Contract Effective DateService Activation Date and Customer Acceptance Date as 2019/7/1.
    4. Click Continue.

      Next, you are to operate another Update Product order action to apply the Special Service settings.

  4. In the Subscription Details area, click the Included Products tab to display the product rate plans.
  5. Click the OptionIcon.png  icon next to the product rate plan to update, then click Update Product.
  6. In the Products and Charges area, click the Advanced Option: Make the update effective before future price changes on the same rate plan link.
  7. In the Specific Update Date window, edit the Specific Update Date field to a proper date. In this example, select a date in May during which you are to apply the Special Service settings, and click Continue.

    SpecificUpdateDate.png

    The Order Overview page opens.

  8. Click the more details link under the product rate plan charge to update.
  9. In the Rate Plan Charge Details area apply the Special Service settings to the selected rate plan charge:
    1. Update Price to 9 and Quantity to 15.
    2. Identify to Trigger Condition, select Upon Contract Effective. You can select the other options as well, as long as the setting reflects your business requirement correctly.
    3. Scroll up to the top of the Order Overview page and specify the Contract Effective DateService Activation Date, and Customer Acceptance Date as 5/1/2019.
    4. Click Continue. The Order Overview page opens.

      Now you can view the update to a subscription with a future-dated update.

  10. In the Subscription Details area, click the Order Actions tab.

    You can see the first Update Product order action addresses the Premium Service update and the second addresses the Premium Service update.

    UpdateBeforeUpdate.png

  11. Click Activate to activate the order.

Use the REST API

You can use the "Create and activate order" operation and the SpecificUpdateDate field to update a product on subscription with future-dated updates.

Prior to the Orders feature being enabled, you would have used the "Update subscription", "Amend", or "CRUD: Create amendment" operation.

To update a product on subscription with future-dated updates by creating an order:

  1. 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 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, 2018-01-17.
    $UpdateDatePremium The Service Activation Date and Customer Acceptance Date for the Premium Service. For example, 2019-07-01.
    $UpdateDateSpecial The Service Activation Date and Customer Acceptance Date for the Special Service. For example, 2019-05-01.
  2. Use the "Create and activate 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": [
                {
                  "triggerDate": "$Today",
                  "name": "ContractEffective"
                },
                {
                  "triggerDate": "$UpdateDatePremium",
                  "name": "ServiceActivation"
                },
                {
                  "triggerDate": "$UpdateDatePremium",
                  "name": "CustomerAcceptance"
                }
              ],
              "updateProduct": {
                "ratePlanId": "$RPId",
                "chargeUpdates": [
                  {
                    "description": null,
                    "chargeNumber": "$ChargeNum",
                    "pricing": {
                      "recurringPerUnit": {
                        "listPrice": 8,
                        "quantity": 20,
                        "priceChangeOption": null,
                        "priceIncreasePercentage": null
                      }
                    },
                    "effectiveDate": {
                      "specificTriggerDate": "$UpdateDatePremium",
                      "triggerEvent": "SpecificDate"
                    },
                    "customFields": {}
                  }
                ],
                "customFields": {}
              }
            },
            {
              "type": "UpdateProduct",
              "triggerDates": [
                {
                  "triggerDate": "$Today",
                  "name": "ContractEffective"
                },
                {
                  "triggerDate": "$UpdateDateSpecial",
                  "name": "ServiceActivation"
                },
                {
                  "triggerDate": "2$UpdateDateSpecial",
                  "name": "CustomerAcceptance"
                }
              ],
              "updateProduct": {
                "ratePlanId": "$RPId",
                "uniqueToken": null,
                "specificUpdateDate": "$UpdateDateSpecial",
                "chargeUpdates": [
                  {
                    "description": null,
                    "chargeNumber": "$ChargeNum",
                    "pricing": {
                      "recurringPerUnit": {
                        "listPrice": 9,
                        "quantity": 15,
                        "priceChangeOption": "NoChange",
                        "priceIncreasePercentage": null
                      }
                    },
                    "effectiveDate": {
                      "specificTriggerDate": "$UpdateDateSpecial",
                      "triggerEvent": "SpecificDate"
                    },
                    "billing": {
                      "billingPeriodAlignment": null
                    },
                    "customFields": {}
                  }
                ]
              }
            }
          ]
        }
      ]
    }
    

    To create the order under a new account instead of an existing account, specify the newAccount field instead of the existingAccountNumber field.

To preview invoices for the updated subscription, use the "Preview order" operation.

Last modified

Tags

This page has no custom tags.

Classifications

(not set)