# Set up subscription updates

## Overview

Make sure that your customers use the latest iteration of your products, and that they're able to upgrade to newer versions. The 2Checkout upgrade functionality supports scenarios such as switching to a different subscription plan or to another version of the same product.

## Requirements <a href="#requirements" id="requirements"></a>

* **The upgrade product has the renewal/recurring billing system enabled** (subscriptions are generated): the upgradable products also need to have the renewal/recurring billing system switched on.
* **The upgrade product doesn't use subscriptions** (the renewal/recurring billing system is not enabled): all products are valid upgrade options, whether subscriptions are generated for them or not.

## Upgrade scenarios <a href="#upgrade-scenarios" id="upgrade-scenarios"></a>

<table data-header-hidden><thead><tr><th width="346"></th><th></th></tr></thead><tbody><tr><td><strong>A different product</strong></td><td><strong>Product A</strong> to <strong>Product B</strong></td></tr><tr><td><strong>A different version of the current product</strong></td><td><strong>Product A v1</strong> to <strong>Product A v2</strong></td></tr><tr><td><strong>A different subscription plan</strong></td><td><strong>Product A 1 user</strong> to <strong>Product A 3 users</strong></td></tr><tr><td><strong>An upgraded product</strong></td><td><p><strong>Product A</strong> to <strong>Product B</strong></p><p>and</p><p><strong>Product A</strong> to <strong>Product C</strong></p><p>(set up upgrades for one product to multiple products with different upgrade set-ups)</p></td></tr></tbody></table>

## Set a product upgrade <a href="#set__00a0a-product-upgrade" id="set__00a0a-product-upgrade"></a>

1. Select the products that are eligible.
2. Set the pricing scheme and customize it.
3. Set the subscription details for the upgrade.

{% stepper %}
{% step %}

### Configure upgrade products

**Upgrades** can be set up by configuring the **Upgrade product**.

1. Navigate to [*Products*](https://secure.avangate.com/cpanel/products.php), under *Setup*, and run a search to identify the upgraded product. Click to edit it, and then select the **Upgrade** tab.
2. Choose the upgradable products from the list in the **Edit your upgrade options** area. Multiple selections are possible when holding down the CTRL key.

You can configure multiple products to upgrade to the same offering.&#x20;

The **Available products** area lists only items with subscriptions as valid options for upgrade products with subscriptions.
{% endstep %}

{% step %}

### Choose the pricing scheme

Choose the pricing scheme that you want to apply for the upgrade.

#### Pricing

In addition to defining the pricing strategy for the original and the upgrade products, the 2Checkout upgrade area offers additional controls impacting the costs customers incur during the upgrade process. Shoppers can pay:

* **Option 1.** The full upgrade product price.
* **Option 2.** The difference between the original subscription and the upgraded product.
* **Option 3.** A prorated upgrade price calculated using the most recent costs incurred by the customer (Upgrade costs can differ from product price as they reflect the most recent transaction made for the subscription and reflect the impact of discounts offered, custom charges, on-the-fly pricing, etc.).
* **Option 4.** A prorated upgrade price calculated using the product's pricing set-up at the time of the order (Upgrade costs are not impacted by previous discounts, custom charges, personalized pricing, etc.).

You can also customize the upgrade price by adding or subtracting a specific percent.

#### Prorated upgrade price

2Checkout offers the option of upgrading an ongoing subscription anytime during its lifecycle, except for when it's expired or disabled/canceled. ***Note:*** Expired subscriptions can still be upgraded during the grace period, while their status is **Past due**.

Using this feature together with the Upgrade option will result in a successful calculation of a prorated price for any model. 2Checkout will calculate the period of time that the customer has left from the current subscription cycle and how much he needs to be charged extra.

{% hint style="info" %}
When calculating the subscription period consumed, **seconds** are used as a time unit.
{% endhint %}

#### Ignore subscription past due period when calculating prorated upgrade price

Customers may renew their subscriptions even after they expire, taking advantage of the **Grace Period** you can set in the product Renewal setup. To avoid charging an unnecessary extra amount for the upgrade, you can ignore the previous past due period set on a subscription when computing the prorated price.

On the product upgrade page, mark the option **Ignore grace period when calculating Upgrade** to ignore the grace period set in your Renewal Settings when computing the prorated price for the upgrade.

<div data-with-frame="true"><figure><img src="/files/CkEJQJERA3uIP0va7v5v" alt="" width="521"><figcaption></figcaption></figure></div>

#### Setup examples

1. **Options selected:**
   * The shopper will pay: The full upgrade product price
   * The upgrade does not affect the original subscription duration ***or***
   * Create a new subscription (disable the existing one) ***or***
   * Prolong the subscription from the upgrade purchase date

     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** Irrelevant\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** The shopper will pay $200 for the upgrade, the full price of the upgraded product.
2. **Options selected:**
   * The shopper will pay: The difference between the original subscription and the upgraded product
   * The upgrade does not affect the original subscription duration ***or***
   * Create a new subscription (disable the existing one) ***or***
   * Prolong the subscription from the upgrade purchase date\
     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** $100\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** The shopper will pay $100 for the upgrade, the difference between the cost of Product 2 and the price of Product 1.
3. **Options selected:**
   * The shopper will pay: A prorated upgrade price calculated using the most recent costs incurred by the customer
   * Create a new subscription (disable the existing one) ***or***
   * Prolong the subscription from the upgrade purchase date\
     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** $90\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** Product 2 price - Reference costs for Product 1 \* Lifetime left from Product 1 subscription/ Total lifetime of Product 1 subscription = $140<br>

     <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This scenario is not supported for imported subscriptions, until a charge happens on them.</p></div>
4. **Options selected:**
   * The shopper will pay: A prorated upgrade price calculated using the most recent costs incurred by the customer
   * The upgrade does not affect the original subscription duration\
     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** $90\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** Product 2 price - Reference costs for Product 1 \* Lifetime left from the Product 1 subscription/ Total lifetime of Product 1 subscription - Product 2 price \* (Total lifetime of Product 2 subscription - Lifetime left from the Product 1 subscription) / Total lifetime of Product 2 subscription = $73.4
5. **Options selected:**
   * The shopper will pay: A prorated upgrade price calculated using the product's pricing setup at the time of the order
   * Create a new subscription (disable the existing one) ***or***
   * Prolong the subscription from the upgrade purchase date\
     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** $90\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** Product 2 price -Product 1 price \* Lifetime left from the Product 1 subscription / Total Lifetime of Product 1 subscription = $133.3
6. **Options selected:**
   * The shopper will pay: A prorated upgrade price calculated using the product's pricing setup at the time of the order
   * The upgrade does not affect the original subscription duration\
     \
     **Product 1 price:** $100/30 days\
     **Discounts or special pricing:** $10 or 10%\
     **Days used:** 10\
     **Reference upgrade cost:** $90\
     **Product 2 cost:** $200/30 days\
     **P1 to P2 upgrade price formula:** Product 2 price - Product 1 price \* Lifetime left from the Product 1 subscription/ Total Lifetime of Product 1 subscription - Product 2 price \* (Total lifetime of Product 2 subscription - Lifetime left from the Product 1 subscription) / Total lifetime of Product 2 subscription = $66.8

#### Customize your upgrade price

Available only for the following options:

* The full upgrade product price
* The difference between original subscription and the upgrade product

These options enable you to modify the actual upgrade price by adding or subtracting a specific percentage.

#### Subscription period option for the upgrade

When configuring an upgrade for a product with the renewal/recurring billing system enabled (for which subscriptions are generated), you'll also be able to configure how the upgrade process impacts existing subscriptions.

{% hint style="info" %}
Options are not displayed for products with the subscription renewal system disabled.
{% endhint %}

Three options are available:

* Generate a new subscription for the upgraded product and disable the one created for the upgradable offering;
* Prolong the subscription of the upgradable offering, even though the customer will be using the upgraded product;
* The subscription duration of the upgraded product will not impact the subscription of the upgradable offering.

#### Using product catalog pricing

Enable the **Use product catalog pricing** option to ignore all custom upgrade prices set for a product, using instead its initial price, defined in the product catalog. Removing custom prices also disables any existing retention campaigns for the selected subscriptions.
{% endstep %}

{% step %}

### Subscription verification system

Optionally, you can enable the **subscription verification system,** directing shoppers to a generic product upgrade page and requiring them to provide the subscription activation key before they can see the available upgrade options. The subscription verification system only applies to subscriptions that require an activation code.
{% endstep %}
{% endstepper %}

## Zero value upgrades <a href="#zero-value-upgrades" id="zero-value-upgrades"></a>

When upgrading a subscription to one with a lower value, automatic renewal is kept regardless of the **Collect Payment details for full discount or orders with 'zero' value** option in **Ordering options**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.2checkout.com/subscriptions/subscriptions/packaging-and-pricing/set-up-subscription-updates.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
