Настройка продлений для продуктов через Products API

С помощью продлений вы можете автоматизировать регулярные продажи продуктов с ограниченным сроком действия. В этом случае: 

  • Покупатель приобретает продукт, который действует ограниченный срок.
  • После завершения срока действия покупатель должен приобрести продление, чтобы продолжить использовать продукт.

Products API поддерживает следующие варианты продажи продлений:

  • Подписка с автоматическим продлением (Auto Renewal, AR) -  автоматически создается заказ на продление и инициируется списание оплаты за него.
  • Подписка с автоматическим продлением и бесплатным пробным периодом (AR Trial) – это расширение возможностей подписки автоматическим продлением. Оно позволяет покупателю приобрести продукт бесплатно. Дальнейшая оплата продукта и регулярная покупка продлений выполняются автоматически.
  • Подписка с продлением вручную (Pre-filled Manual Renewal, PMR) - автоматически создается заказ на продление, покупатель получает письмо с предложением оплатить заказ. Оплата продления должна быть сделана покупателем вручную.
  • Письмо с предложением купить продление (Email) - покупатель получает письмо с ссылкой на покупку продления. При переходе по ссылке продление будет добавлено в корзину. Оформление и оплату заказа покупатель выполняет вручную.

Узнайте подробнее о том, как работают эти варианты.

Чтобы настроить продажу продлений, вам может потребоваться создать один или несколько продуктов. Это отличает настройку продлений через от Products API от настройки через Merchant Portal, где все настройки делаются на странице управления одним продуктом.

Продукты, участвующие в продаже продлений:

  • Продукт-инициатор подписки (родительский) – это продукт, покупка которого является триггером для дальнейшей продажи продлений. То есть при оплате этого продукта создается AR/PMR подписка или отслеживается необходимость отправить письмо с предложением купить продление.
  • Продукт, используемый для продления (дочерний) – это продукт, который нужно купить, чтобы продолжать использовать родительский продукт. Дочерним продуктом может быть:
    • Один продукт, предназначенный для продления.
    • Несколько продуктов, которые последовательно продлевают друг друга.
    • Тот же самый продукт, который инициирует подписку.

Последовательность создания продуктов через Products API:

  • Если в сценарии участвует более одного продукта:
    • Создайте все дочерние продукты, участвующие в продлении.
    • Создайте родительский продукт и задайте в нем настройки продления.
  • Если в сценарии участвует только один продукт, который является инициатором и используется для продления:
    • Создайте продукт без настроек продления.
    • Обновите этот продукт, добавив в него настройки продления.

Варианты настройки продлений

  • Участвует один продукт
    • Один и тот же продукт используется для инициации подписки и для ее продления.
    • Подходит для сценариев продления: AR, PMR, Email
  • Участвует два продукта
    • Подписка инициируется одним продуктом, для продления используется второй продукт.
    • Подходит для сценариев продления: AR, AR Trial, PMR, Email

    или

  • Участвует более двух продуктов
    • Подписка инициируется одним продуктом, далее для продления последовательно используется несколько продуктов.
    • Рекомендуется использовать для сценария AR Trial, но может также использоваться для AR и PMR сценариев, если цена на первое продление должна отличаться от последующих продлений.

В этом случае один и тот же продукт используется для инициации подписки и для ее продления.

Обратите внимание, этот вариант предполагает, что покупка продления не отличается от первой покупки продукта. То есть цена, название, срок действия продления такие же, как при первой покупке. Если свойства продления должны отличаться, то используйте сценарий с двумя продуктами.

  • Подходит для сценариев продления: AR, PMR, Email.
  • Не подходит для сценария: AR Trial.

Как это работает:

  • Покупатель приобретает продукт и инициирует подписку.
  • Далее для продления покупатель должен продолжать приобретать этот же самый продукт. Т.е. продукт продлевается сам на себя.

Как настроить через Product API:

  • Отправьте запрос на создание продукта (POST /v1/product).
    При этом:
    • Не передавайте срок действия продукта (licence_term) и настройки продления (renew_settings), их нужно заполнить на следующем шаге.
    • Остальные параметры передайте, как считаете нужным.
{
  "family_name": "Demo Product",
  "name": "1 Pc / 90 days",
  "variants": [{
      "vendor_code": "001",
      "sku": "001",
      "price": {
        "common": {
          "currency": "USD",
          "price": "100"
        }
      }
    }
  ]
}
  • В ответ вернется идентификатор продукта, например, "id":11.
  • Отправьте запрос на изменение созданного продукта (PATCH /v1/product/11) и передайте параметры для настройки продления:
    • Срок действия продукта (licence_term).
      Должен быть больше нуля. Минимально допустимый срок действия продукта зависит от вида продления, подробнее
    • Продукт для продления (renew_settings.product_id_for_renew)
      В значении передайте два раза через запятую идентификатор того же самого продукта, который обновляете. Например, при обновлении продукта с id = 11, должно быть указано "product_id_for_renew":[11,11].
    • Виды продления, которые нужно включить.
      Передайте true для тех типов продления, которые должны быть доступны для продукта: AR (renew_settings.renew_ar.enable), PMR (renew_settings.renew_pmr), Email (renew_settings.renew_email).
      Обратите внимание, вы можете включить все виды продления. В этом случае сработает первый, для которого выполнятся условия. Порядок проверки: AR > PMR > Email.
    • (Необязательно) Тип продукта (license_type).
      Это информационное поле, которое не влияет на работу продления, но используется в различных отчетах и статистике. Вы можете использовать его, чтобы передать для продуктов с подпиской тип, которых будет их отличать от других ваших продуктов без продления, например "license_type": "renew".
    • (Необязательно) Артикул продукта для подписки с автоматическим продлением (variants.sku_ar).
      Этот артикул будет использоваться в дальнейшем вместо обычного артикула, если на продукт будет оформлена AR подписка. Обратите внимание, если вы передаете в запросе на изменение продукта массив цен (variants), то данные цен будут полностью перезаписаны. Вы не можете передать только один артикул в массиве.
    • (Необязательно) Комментарии к продукту, которые нужно показать в зависимости от того, включено согласие с автоматическим продлением (localization_values.comment_for_product_for_AR) или выключено/недоступно (localization_values.comment_for_product_for_MR). 
      Обратите внимание, если вы передаете в запросе на изменение продукта локализованных данных продукта (localization_values), то все локализованные данные продукта будут полностью перезаписаны. Вам нужно передать полный набор данных.

Обратите внимание, для этого варианта настройки вы не можете использовать бесплатный пробный период и передавать признак обязательного автоматического продления (renew_settings.renew_ar.required).

{
  "license_type": "renew",
  "licence_term": "P90D",
  "renew_settings": {
    "product_id_for_renew": [
      11, 11
    ],
    "renew_ar": {
      "enable": true,
      "required": false
    },
    "renew_pmr": true,
    "renew_email": false
  },
  "localization_values": {
    "en_EN": {
      "comment_for_product_for_AR": "The license is renewed automatically.",
      "comment_for_product_for_MR": "You will need to manually renew your license after 1 year."
    }
  },
  "variants": [{
      "vendor_code": "001",
      "sku": "001",
      "sku_ar": "001-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "100"
        }
      }
    }
  ]
}

В этом случае подписка инициируется одним продуктом, для продления используется второй продукт.

Используйте этот вариант, если продление должно отличаться названием, ценой, сроком действия или, если вы хотите добавить бесплатный пробный период.

  • Подходит для сценариев продления: AR, AR Trial, PMR, Email.

или

Как это работает:

  • Покупатель приобретает продукт (A) и инициирует подписку.
  • Далее для продления покупатель должен приобретать только другой продукт (B). Т.е. продукт B продлевается сам на себя.

Примеры использования:

  • Пример 1: Продление должно стоить дешевле покупки начального продукта, инициирующего подписку.
    Или отличаться сроком действия продукта.
    • Начальный продукт за 100 руб. инициирует подписку.
    • Далее для продления покупатель должен приобретать другой продукт (продление) за 90 руб.
  • Пример 2: У продукта есть бесплатный пробный период (триальная версия).
    • Триальный продукт за 0 руб. инициирует подписку.
    • Начальный продукт за 100 руб. используется для перехода с триального на платный период.
    • Для продления подписки используется тот же продукт (начальный), что и для перехода с пробного на платный период.

Как настроить через Product API:

  • Отправьте запрос на создание продукта для продления подписки (POST /v1/product).
    • При этом передайте в запросе:
      • Срок действия продукта продления (licence_term). 
        Должен быть больше нуля. Минимально допустимый срок действия продукта зависит от вида продления, подробнее
      • (Необязательно) Тип продукта (license_type).
        Это информационное поле, которое не влияет на работу продления, но используется в различных отчетах и статистике. Вы можете использовать его, чтобы передать для продуктов с подпиской тип, которых будет их отличать от других ваших продуктов, например "license_type": "renew".
      • (Необязательно) Артикул продукта для подписки с автоматическим продлением (variants.sku_ar).
        Этот артикул будет использоваться в дальнейшем вместо обычного артикула, если на продукт будет оформлена AR подписка. 
      • Остальные параметры передайте, как считаете нужным.
    • Не передавайте настройки продления (renew_settings).
{
  "family_name": "Demo Product for Renew",
  "name": "1 Pc / 1 month",
  "license_type": "renew",
  "licence_term": "P1M",
  "variants": [{
      "vendor_code": "002",
      "sku": "002",
      "sku_ar": "002-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "100"
        }
      }
    }
  ]
}
  • В ответ вернется идентификатор продукта, например, "id":11.
  • Отправьте запрос на создание продукта для иницииации подписки (POST /v1/product). 
    Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то в этом продукте настраиваются свойства бесплатного пробного периода.
    Передайте в запросе:
    • Срок действия продукта-инициатора подписки (licence_term):
      • Должен быть больше нуля.
      • Минимально допустимый срок действия продукта зависит от вида продления, подробнее.
      • Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то в этом параметре передается срок действия пробного периода.
    • Продукт для продления (renew_settings.product_id_for_renew).
      В значении передайте два раза через запятую идентификатор продукта, который будет использоваться для продления. Например, если на предыдущем шаге вы создали продукт с id = 11, должно быть указано "product_id_for_renew":[11,11].
    • Виды продления, которые нужно включить.
      Для этого передайте true для тех типов продления, которые должны быть доступны для продукта: AR (renew_settings.renew_ar.enable), PMR (renew_settings.renew_pmr), Email (renew_settings.renew_email).
      Обратите внимание:
      • Вы можете включить все виды продления (технически ограничений нет).
      • Если это продукт не для бесплатного пробного периода, то при создании подписки сработает первый вид продления, для которого выполнятся условия. Порядок проверки: AR > PMR > Email.
      • Если это продукт для бесплатного пробного периода, то будет учитываться только автоматическое продление (AR).
    • (Необязательно) Тип продукта (license_type).
      Это информационное поле, которое не влияет на работу продления, но используется в различных отчетах и статистике. Вы можете использовать его, чтобы передать для продуктов с подпиской тип, которых будет их отличать от других ваших продуктов без продления, например, для продукта инициатора "license_type": "new".
    • (Необязательно) Артикул продукта для подписки с автоматическим продлением (variants.sku_ar).
      Этот артикул будет использоваться в дальнейшем вместо обычного артикула, если на продукт будет оформлена AR подписка. Обратите внимание, если вы передаете в запросе на изменение продукта массив цен (variants), то данные цен будут полностью перезаписаны. Вы не можете передать только один артикул в массиве.
    • (Необязательно) Комментарии к продукту, которые нужно показать в зависимости от того, включено согласие с автоматическим продлением (localization_values.comment_for_product_for_AR) или выключено/недоступно (localization_values.comment_for_product_for_MR). Обратите внимание, если это продукт для бесплатного пробного периода, то покупатель всегда увидит в корзине комментарий для случая, когда включено согласие автоматическое продление (localization_values.comment_for_product_for_AR), так как подписка с автоматическим продлением является обязательной при покупке продукта с бесплатным пробным периодом. 
    • Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то:
      • Обратите внимание, бесплатный период будет доступен только для продуктов с автоматическим продлением (renew_settings.renew_ar.enable равно true).
      • Передайте признак обязательности автоматического продления (renew_settings.renew_ar.required) равным true. Это обязательное условие для настройки бесплатного пробного периода.
      • Установите цены (variants) на продукт равные нулю (0.00).
    • Остальные параметры передайте, как считаете нужным.
{
  "family_name": "Demo Product",
  "name": "1 Pc / 90 days",
  "license_type": "new",
  "licence_term": "P90D",
  "renew_settings": {
    "product_id_for_renew": [
      11, 11
    ],
    "renew_ar": {
      "enable": true,
      "required": false
    },
    "renew_pmr": true,
    "renew_email": false
  },
  "localization_values": {
    "en_EN": {
      "comment_for_product_for_AR": "The license is renewed automatically.",
      "comment_for_product_for_MR": "You will need to manually renew your license after 1 year."
    }
  },
  "variants": [{
      "vendor_code": "001",
      "sku": "001",
      "sku_ar": "001-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "100"
        }
      }
    }
  ]
}
{
  "family_name": "Trial Demo Product",
  "name": "1 Pc / 5 days",
  "license_type": "new",
  "licence_term": "P5D",
  "renew_settings": {
    "product_id_for_renew": [
      11, 11
    ],
    "renew_ar": {
      "enable": true,
      "required": true
    },
    "renew_pmr": false,
    "renew_email": false
  },
  "localization_values": {
    "en_EN": {
      "comment_for_product_for_AR": "The license is renewed automatically."
    }
  },
  "variants": [{
      "vendor_code": "001",
      "sku": "001",
      "sku_ar": "001-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "0.00"
        }
      }
    }
  ]
}

В этом случае подписка инициируется одним продуктом, далее для продления последовательно используется несколько продуктов.

Используйте этот вариант, если продление должно отличаться названием, ценой, сроком действия или, если вы хотите добавить бесплатный пробный период.

  • Подходит для сценариев продления: AR, AR Trial, PMR.
  • Не подходит для сценария: Email.

Как это работает:

  • Покупатель приобретает продукт (A) и инициирует подписку.
  • Далее для продления покупатель должен приобрести продукт (B), а для продления продукта (B) - продукт (C).
  • Для продления продукта (С) используется только он сам (продлевается сам на себя).

Пример использования:

  • У продукта есть бесплатный пробный период (триальная версия) и переход на платный период должен стоить дороже или дешевле последующих продлений.
    • Триальный продукт за 0 руб. инициирует подписку.
    • Начальный продукт за 100 руб. используется для перехода с триального на платный период.
    • Продукт для продления за 90 руб. используется для продления подписки в дальнейшем.

Как настроить через Product API:

  • Отправьте запросы на создание продуктов для продления подписки (POST /v1/product).
    В предоженном примере нужно создать два продукта, но в цепочке продлений может участвовать и большее количество продуктов.
    • При этом передайте в запросе для каждого продукта:
      • Срок действия продукта продления (licence_term). 
        Должен быть больше нуля. Минимально допустимый срок действия продукта зависит от вида продления, подробнее
      • (Необязательно) Тип продукта (license_type).
        Это информационное поле, которое не влияет на работу продления, но используется в различных отчетах и статистике. Вы можете использовать его, чтобы передать для продуктов с подпиской тип, которых будет их отличать от других ваших продуктов, например "license_type": "new" (для продукта, на который покупатель перейдет после пробного периода) и "license_type": "renew" для дальнейших продлений.
      • (Необязательно) Артикул продукта для подписки с автоматическим продлением (variants.sku_ar).
        Этот артикул будет использоваться в дальнейшем вместо обычного артикула, если на продукт будет оформлена AR подписка. 
      • Остальные параметры передайте, как считаете нужным.
    • Не передавайте настройки продления (renew_settings).
{
  "family_name": "Demo Product (Base version)",
  "name": "1 Pc / 1 month",
  "license_type": "new",
  "licence_term": "P1M",
  "variants": [{
      "vendor_code": "002",
      "sku": "002",
      "sku_ar": "002-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "100"
        }
      }
    }
  ]
}
{
  "family_name": "Demo Product for Renew",
  "name": "1 Pc / 1 month",
  "license_type": "new",
  "licence_term": "P1M",
  "variants": [{
      "vendor_code": "003",
      "sku": "003",
      "sku_ar": "003-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "90"
        }
      }
    }
  ]
}
  • В ответ на каждый из запросов создания вернется идентификатор продукта, например, "id":11 и "id":22.
  • Отправьте запрос на создание продукта для иницииации подписки (POST /v1/product). 
    Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то в этом продукте настраиваются свойства бесплатного пробного периода.
    Передайте в запросе:
    • Срок действия продукта-инициатора подписки (licence_term):
      • Должен быть больше нуля.
      • Минимально допустимый срок действия продукта зависит от вида продления, подробнее.
      • Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то в этом параметре передается срок действия пробного периода.
    • Продукт для продления (renew_settings.product_id_for_renew).
      В значении передайте список идентификаторов продуктов для продления, в том порядке, в котором они должны следовать друг за другом. Последний идентификатор должен быть повторен два раза. Например, если на предыдущем шаге вы создали продукты с id = 11 и id = 22, и подписка должна быть продлена сначала продуктом 11, а затем продуктом 22, то в параметре должно быть указано "product_id_for_renew":[11,22,22].
    • Виды продления, которые нужно включить.
      Для этого передайте true для тех типов продления, которые должны быть доступны для продукта: AR (renew_settings.renew_ar.enable), PMR (renew_settings.renew_pmr), Email (renew_settings.renew_email).
      Обратите внимание:
      • Вы можете включить все виды продления (технически ограничений нет).
      • Если это продукт не для бесплатного пробного периода, то при создании подписки сработает первый вид продления, для которого выполнятся условия. Порядок проверки: AR > PMR > Email.
      • Если это продукт для бесплатного пробного периода, то будет учитываться только автоматическое продление (AR).
    • (Необязательно) Тип продукта (license_type).
      Это информационное поле, которое не влияет на работу продления, но используется в различных отчетах и статистике. Вы можете использовать его, чтобы передать для продуктов с подпиской тип, которых будет их отличать от других ваших продуктов без продления, например, для продукта инициатора "license_type": "new".
    • (Необязательно) Артикул продукта для подписки с автоматическим продлением (variants.sku_ar).
      Этот артикул будет использоваться в дальнейшем вместо обычного артикула, если на продукт будет оформлена AR подписка. Обратите внимание, если вы передаете в запросе на изменение продукта массив цен (variants), то данные цен будут полностью перезаписаны. Вы не можете передать только один артикул в массиве.
    • (Необязательно) Комментарии к продукту, которые нужно показать в зависимости от того, включено согласие с автоматическим продлением (localization_values.comment_for_product_for_AR) или выключено/недоступно (localization_values.comment_for_product_for_MR). Обратите внимание, если это продукт для бесплатного пробного периода, то покупатель всегда увидит в корзине комментарий для случая, когда включено согласие автоматическое продление (localization_values.comment_for_product_for_AR), так как подписка с автоматическим продлением является обязательной при покупке продукта с бесплатным пробным периодом. 
    • Если вы хотите, чтобы подписка начиналась с бесплатного пробного периода, то:
      • Обратите внимание, бесплатный период будет доступен только для продуктов с автоматическим продлением (renew_settings.renew_ar.enable равно true).
      • Передайте признак обязательности автоматического продления (renew_settings.renew_ar.required) равным true. Это обязательное условие для настройки бесплатного пробного периода.
      • Установите цены (variants) на продукт равные нулю (0.00).
    • Остальные параметры передайте, как считаете нужным.
{
  "family_name": "Trial Demo Product",
  "name": "1 Pc / 5 days",
  "license_type": "new",
  "licence_term": "P5D",
  "renew_settings": {
    "product_id_for_renew": [
      11, 22, 22
    ],
    "renew_ar": {
      "enable": true,
      "required": true
    },
    "renew_pmr": false,
    "renew_email": false
  },
  "localization_values": {
    "en_EN": {
      "comment_for_product_for_AR": "The license is renewed automatically."
    }
  },
  "variants": [{
      "vendor_code": "001",
      "sku": "001",
      "sku_ar": "001-renew",
      "price": {
        "common": {
          "currency": "USD",
          "price": "0.00"
        }
      }
    }
  ]
}

Не может быть равен 0 (продукт не может иметь бессрочный срок действия при настройке продлений).

Минимальный срок действия зависит от вида продления:

  • Для AR подписок: минимум 6 дней. Это ограничение зависит от настроек создания заказа на продление и отправки напоминания покупателю. При меньшем сроке действия - заказ на продление не успеет создаться. В случае, если срок действия равен 6 дням, то заказ на продление будет создан на следующий день после покупки родительского продукта и создания подписки.
  • Для PMR подписок: минимальный срок действия зависит от способа оплаты заказа. Уточните ограничения по умолчанию у службы поддержки.
  • Для письма с предложением купить продление: минимальный срок действия зависит от способа оплаты заказа. Для online способов оплаты - минимум 4 дня. Для offline способов оплаты - минимум 11 дней. Обратитесь в службу поддержки, если нужно изменить настройки.
Если вы хотите протестировать работу подписок с автопродлением, то вы можете обратиться в службу поддержки, чтобы моментально инициировать создание и оплату заказа на продление. Вам не нужно создавать продукт с минимальным сроком действия, покупать продукт с подпиской и ожидать продления естественным образом. Служба поддержки поможет вам протестировать создание заказа на продление без ожидания.