Knowledge Center

Knowledge Center > Subscriptions > Orders > Orders Tutorials > Renew a Subscription and Upgrade a Product

Renew a Subscription and Upgrade a Product

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.

This tutorial demonstrates how to renew a subscription and upgrade a product by creating an order. To upgrade the product, you will remove the product then add a replacement product on the same date.

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 renewal
  • The service activation date of the renewal
  • The customer acceptance date of the renewal

You will set the following dates to a specific upgrade date:

  • The contract effective date of the product upgrade (addition and removal)
  • The service activation date of the product upgrade (addition and removal)
  • The customer acceptance date of the product upgrade (addition and removal)

Use the REST API

You can use the "Create and activate order" operation to renew a subscription and upgrade a product.

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

To renew a subscription and upgrade a product 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.
    $RPIdRemove The ID of the rate plan to remove from the subscription. For example, 8a8081085e0d4b70015e4b844495058d.
    $ProductRPId The ID of the product rate plan to add to the subscription. For example, 8a8081085d834928015d9ce60ef41acf.
    $ProductRPChargeId The ID of the product rate plan charge to use when adding the product rate plan. For example, 8a8081085d834928015d9ce6ae821ad1.
    $Today Today's date. For example, 2017-09-30.
    $UpgradeDate The date to upgrade the product in the subscription. For example, 2018-01-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": "RenewSubscription",
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$Today"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$Today"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$Today"
                }
              ]
            },
            {
              "type": "RemoveProduct",
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$UpgradeDate"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$UpgradeDate"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$UpgradeDate"
                }
              ],
              "removeProduct": {
                "ratePlanId": "$RPIdRemove"
              }
            },
            {
              "type": "AddProduct",
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$UpgradeDate"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$UpgradeDate"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$UpgradeDate"
                }
              ],
              "addProduct": {
                "productRatePlanId": "$ProductRPId",
                "chargeOverrides": [
                  {
                    "productRatePlanChargeId": "$ProductRPChargeId",
                    "pricing": {
                      "recurringVolume": {
                        "quantity": 20
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ],
      "processingOptions": {
        "runBilling": false,
        "collectPayment": false
      }
    }
    

    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.

SOAP Migration Guidance

When the Orders feature is enabled in your Zuora tenant, the SOAP API is not available. You must migrate any SOAP integrations to use the REST API instead. See Migrating From the SOAP API for the SOAP equivalent of this tutorial.

Last modified

Tags

This page has no custom tags.

Classifications

(not set)