Skip to main content

ARCHIVE - Create a Ramp Deal

Zuora

ARCHIVE - Create a Ramp Deal

Orders is now generally available as of Zuora Billing Release 284 (August 2019). You can access all the new capabilities in the Sandbox environment starting August 31, 2020. The Production deployment is September 10, 2020.

If you are an existing Zuora Subscribe and Amend customer and want to adopt Orders, see What is Orders Harmonization and join the Orders Harmonization community group for more information. If you want to enable Orders, submit a request at Zuora Global Support.

This tutorial demonstrates how to create a ramp deal by creating an order.

A ramp deal is a set of time-based periods where products or pricing can change. In this tutorial you will subscribe a customer to a product for 3 years, starting today. At the beginning of the second year, the price will change to $1,200. At the beginning of the third year, the price will change to $1,400. You will specify the price changes in the order using product updates.

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 subscription
  • The service activation date of the subscription
  • The customer acceptance date of the subscription
  • The start date of the first term of the subscription

Use the Zuora application

To create a ramp deal by creating an order in the Zuora application:

  1. Navigate to Customers > Orders. The Orders page opens.

  2. Click the Create New Order icon CreateOrderIcon.png at the top right. The Create New Order page opens.

  3. In the Account field, enter the name of the account that owns the subscription. By default, the account that owns the order will also own the subscription.

    You can enter the account by clicking either Search by Account Name or Specify complete Account Number.

    • If you click Search by 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 Specify complete Account Number, type the exact account number.
  4. In the Order date field, enter the order date you are to assign to the order.

  5. Click Create New Subscription.

  6. In the Create New Subscription area, fill in the information for the following sections:

    • In the Terms and Conditions section, in the Initial Term field, enter 36 for the three-year subscription. In the Renewal Term field, enter 12.

    • In the Trigger dates section, specify the date of today in the Contract effective, Service activation, and Customer acceptance fields. For more information, see Billing Trigger Dates.

  7. Click Continue.

  8. In the Products and charges area, search and locate the product to be added. You can choose to search by product name or by product SKU. The displayed products will dynamically change as you type in the Search field.

    products-and-charges.png

  9. To display the product rate plans, click the right arrow ( > ) next to the product name, and then click Add to select a rate plan.

  10. At the bottom of the page, click Add Product.

  11. Click Continue.

  12. Update the added product to change the price for the second year.

    1. Click the menu icon menu-icon.png in front of the product name and then click Update Product.

    2. In the Terms and Conditions section, specify the beginning date of the second year in the Contract effective Date, Service activation Date, and Customer acceptance fields.

    3. Change the price for the second year. In this tutorial, change the PRICE value to 1200.

    4. Click Continue.

  13. Update the product again to change the price for the third year.

    1. Click the menu icon menu-icon.png in front of the product name and then click Update Product.

    2. In the Terms and Conditions section, specify the beginning date of the second year in the Contract effective Date, Service activation Date, and Customer acceptance fields.

    3. Change the price for the third year. In this tutorial, change the PRICE value to 1400.

    4. Click Continue.

  14. To view and confirm the three ramp periods and the corresponding triggering dates, at the top of the Subscription details area, click the Order Actions tab.

  15. To activate the subscription, click Activate.

Use the REST API

You can use the "Create and activate order" operation to create a ramp deal.

Prior to the Orders feature being enabled, you would have used:

  • the "Create subscription", "Subscribe", or "Create account" operation; then
  • the "Update subscription", "Amend", or "CRUD: Create amendment" operation.

To create a ramp deal by creating an order:

  1. Determine the values of the following variables:

    Variable Description
    $AccountNum The number of the account that will own the order and the subscription. For example, A00000001.
    $ProductRPId The ID of the product rate plan to subscribe to. For example, 2c92c0f85e5019d7015e513826e650f7.
    $ProductRPChargeId The ID of the product rate plan charge to use when subscribing to the product rate plan. For example, 2c92c0f85e5019d7015e5138b0395347.
    $Today Today's date. For example, 2017-09-30.
    $YearTwo The start of the second year of the ramp deal. For example, 2018-09-30.
    $YearThree The start of the third year of the ramp deal. For example, 2019-09-30.

    You will also need to provide two unique tokens for use in the API call. In the CreateSubscription order action you will assign the unique tokens to the rate plan and rate plan charge, respectively. This will enable you to identify the same rate plan and rate plan charge in the UpdateProduct order actions.

    In this tutorial, you will use "newsub_rp_Ybt80k" as the unique token for the rate plan and "newsub_rpcharge_BE7FHe" as the unique token for the rate plan charge.

  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": [
        {
          "orderActions": [
            {
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$Today"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$Today"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$Today"
                }
              ],
              "type": "CreateSubscription",
              "createSubscription": {
                "terms": {
                  "initialTerm": {
                    "startDate": "$Today",
                    "period": 36,
                    "periodType": "Month",
                    "termType": "TERMED"
                  },
                  "renewalTerms": [
                    {
                      "period": 12,
                      "periodType": "Month"
                    }
                  ],
                  "renewalSetting": "RENEW_WITH_SPECIFIC_TERM",
                  "autoRenew": true
                },
                "subscribeToRatePlans": [
                  {
                    "productRatePlanId": "$ProductRPId",
                    "uniqueToken": "newsub_rp_Ybt80k",
                    "chargeOverrides": [
                      {
                        "productRatePlanChargeId": "$ProductRPChargeId",
                        "uniqueToken": "newsub_rpcharge_BE7FHe"
                      }
                    ]
                  }
                ]
              }
            },
            {
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$YearTwo"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$YearTwo"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$YearTwo"
                }
              ],
              "type": "UpdateProduct",
              "updateProduct": {
                "uniqueToken": "newsub_rp_Ybt80k",
                "chargeUpdates": [
                  {
                    "uniqueToken": "newsub_rpcharge_BE7FHe",
                    "description": "test_description_regular",
                    "pricing": {
                      "recurringPerUnit": {
                        "listPrice": 1200
                      }
                    }
                  }
                ]
              }
            },
            {
              "triggerDates": [
                {
                  "name": "ContractEffective",
                  "triggerDate": "$YearThree"
                },
                {
                  "name": "ServiceActivation",
                  "triggerDate": "$YearThree"
                },
                {
                  "name": "CustomerAcceptance",
                  "triggerDate": "$YearThree"
                }
              ],
              "type": "UpdateProduct",
              "updateProduct": {
                "uniqueToken": "newsub_rp_Ybt80k",
                "chargeUpdates": [
                  {
                    "uniqueToken": "newsub_rpcharge_BE7FHe",
                    "description": "test_description_regular",
                    "pricing": {
                      "recurringPerUnit": {
                        "listPrice": 1400
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ],
      "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 new 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.