Подписки Discourse — изменение цены во время регулярной подписки

Продолжение обсуждения из Подписки Discourse:

Предположим, у меня есть ежегодная подписка стоимостью 100 фунтов стерлингов, действующая с 21 января 2022 года по 20 января 2023 года, но я хочу изменить её стоимость до 110 фунтов стерлингов при следующем продлении. Я знаю из Subscriptions: Change User's Plan - #2 by pfaffman, что решение заключается в отмене текущей подписки и предложении пользователю оформить новую подписку на тот же продукт, но уже по новому тарифному плану. На странице /admin/plugins/discourse-subscriptions/subscriptions я вижу кнопку «x отменить».

Я ещё не продумал всё до конца, но у меня есть несколько вопросов по этому сценарию:

  1. Что произойдёт, если я отменю текущую подписку? Я полагаю, что это немедленно прекратит действие подписки, и появится возможность полностью вернуть последнюю оплату. Но это не то, что нужно.

  2. Есть ли способ сохранить подписку до даты её продления и просто отключить автоматическое продление?

  3. Неужели решение заключается в том, чтобы записывать дату продления для каждого подписчика и отменять подписку за день до неё?

В любом случае, думаю, мне лично придётся напомнить подписчику об отмене и попросить его рассмотреть возможность продления по новому тарифному плану.

Допустим, Stripe не позволит вам этого сделать.

Вы можете сделать это на стороне Stripe, нажав на что-то вроде «Отменить по истечении срока действия».

Вы можете сделать это и надеяться, что ваши подписчики:

  1. заметят, что их подписка истекла;
  2. разберутся, как её продлить;
  3. не будут возражать против повышения цены.

Я думаю, что если ваша цель — заработать больше, то позволить подпискам автоматически продлеваться по старой цене принесёт гораздо больше денег, чем убеждение всех продлить их по более высокой цене. Не зная ничего о вашем сообществе или продукте, я бы поставил на то, что больше людей автоматически продлят подписку за 100 долларов, чем те, кто снова введёт данные своей кредитной карты для продления за 50 долларов.

Просто создайте новую подписку по новой цене и скройте старую.

Я нашёл эту опцию, спасибо. Она позволяет установить любую дату истечения срока и предоставить пропорциональное возмещение (что в настоящее время невозможно через Discourse). Это побочный вопрос, но знаете ли вы, насколько внимательно Discourse следит за такими вещами? С моим тестовым пользователем Discourse узнал, что подписка была отменена, но ещё не удалил пользователя из соответствующей группы — однако знает ли Discourse новую дату окончания и, следовательно, когда удалить пользователя из группы?

Я полностью согласен с этим…

Вы имеете в виду снять галочку с «Активно»? Предположительно, это не повлияет на старых пользователей, но новые будут подписываться на новый план.

Да, но я не помню, как это называется на этом языке.

Я не знаю. Не уверен, что это обрабатывается только через вебхук или есть также задача, которая проверяет такие случаи. Возможно, кто-то другой знает.

Я создал запрос на новую функцию по этой теме: Discourse Subscriptions - clarify "Cancel at end of cycle" Это не решает исходную задачу изменения подписки, но всё равно будет полезно.

Допустим, Stripe разрешит мне :slight_smile: Change the price of existing subscriptions | Stripe Documentation Или, по крайней мере, я не уверен на сто процентов, но похоже, что разрешит. Понимаю, что это может быть открыто для злоупотреблений, но, полагаю, для этого и существуют законы!

Изменение тарифов

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

Допустим, клиент в настоящее время оформил базовую ежемесячную подписку за 10 долларов США в месяц. Следующий код переключает клиента на профессиональную ежемесячную подписку за 30 долларов США в месяц.

Ох! Я ошибался. Спасибо!

Так что, если Stripe позволит вам изменить это без их разрешения, то, думаю, самое простое решение — сделать это на стороне Stripe; я не уверен, как заставить Discourse узнать об этом, но, возможно, он просто обновит эту информацию в следующий раз, когда она ему понадобится (я думаю, так оно и есть).

Кажется, способ сделать это через сайт Stripe заключается в следующем: перейдите к подписке конкретного пользователя, выберите «Обновить подписку», удалите текущий план и добавьте новый, затем сохраните. Система рассчитает следующую счётную сумму пропорционально (я не проверял точность). Когда вы вернётесь в Discourse как пользователь, там будет отображена новая цена за период, как будто она всегда была такой.