Skip to content

Типы смены тарифа

При смене тарифного плана система автоматически определяет тип операции на основе дневных ставок текущего и нового планов.

ТипОписаниеОплата
ПродлениеПродление текущего тарифа на новый периодДа (полная цена периода)
Повышение с доплатойПереход на более дорогой план — клиент доплачивает за оставшиеся дни, количество дней не меняетсяДа (доплата)
Повышение с уменьшением днейПереход на более дорогой план без доплаты — вместо оплаты уменьшается количество оставшихся днейНет
Понижение тарифаПереход на более дешёвый план — оставшиеся дни конвертируются в большее количество днейНет
Смена на равноценныйЦена за день совпадает — просто переключение без пересчётаНет
Подписка → трафикОставшиеся дни подписки конвертируются в гигабайты трафикаНет
Трафик → подпискаОставшийся трафик конвертируется в дни подпискиНет

Расчёт дневной ставки

Для каждого тарифа вычисляется дневная ставка — это основа всех расчётов. Берётся первая ненулевая цена из доступных периодов (1, 3, 6 или 12 месяцев) и делится на количество дней:

дневная_ставка = первая_ненулевая_цена / (количество_месяцев × 30)

Пример: Тариф стоит 300 ₽ за 1 месяц → 300 / (1 × 30) = 10 ₽/день.

Повышение тарифа с доплатой

При повышении тарифа клиент доплачивает разницу в стоимости за оставшиеся дни. Количество дней не меняется.

разница_в_цене = новая_ставка − текущая_ставка
доплата = оставшиеся_дни × разница_в_цене
Пример расчёта

Текущий тариф: 300 ₽/мес (10 ₽/день), новый: 450 ₽/мес (15 ₽/день), осталось 20 дней.

  • разница = 15 − 10 = 5 ₽/день
  • доплата = 20 × 5 = 100 ₽

Клиент платит 100 ₽, дни остаются 20, план меняется.

Повышение тарифа с уменьшением дней

Клиент может перейти на более дорогой план без доплаты — вместо этого уменьшается количество оставшихся дней.

оставшаяся_стоимость = оставшиеся_дни × текущая_ставка
новые_дни = round(оставшаяся_стоимость / новая_ставка)
Пример расчёта

Текущий тариф: 10 ₽/день, новый: 15 ₽/день, осталось 30 дней.

  • оставшаяся_стоимость = 30 × 10 = 300 ₽
  • новые_дни = round(300 / 15) = 20 дней

Клиент не платит, но получает 20 дней вместо 30.

Понижение тарифа

При понижении тарифа клиент получает больше дней на более дешёвом плане. Формула аналогична:

оставшаяся_стоимость = оставшиеся_дни × текущая_ставка
новые_дни = round(оставшаяся_стоимость / новая_ставка)
Пример расчёта

Текущий тариф: 15 ₽/день, новый: 10 ₽/день, осталось 20 дней.

  • оставшаяся_стоимость = 20 × 15 = 300 ₽
  • новые_дни = round(300 / 10) = 30 дней

Клиент не платит и получает 30 дней вместо 20.

Конвертация между подпиской и трафиком

Система поддерживает переход между подпиской (дни) и трафиком (ГБ), а также между трафиковыми планами. Все такие конвертации всегда бесплатны.

Расчёт ставки за ГБ

Для трафиковых планов вычисляется ставка за ГБ:

  1. Если у тарифа задана цена за ГБ — используется она.
  2. Иначе — берутся все пакеты дополнительного трафика, суммируются их цены и объёмы, и вычисляется средняя цена: ставка_за_ГБ = общая_цена_пакетов / общий_объём_ГБ.

Подписка → трафик

Оставшиеся дни подписки конвертируются в ГБ трафика на новом плане.

оставшаяся_стоимость = оставшиеся_дни × дневная_ставка
новый_трафик_ГБ = round(оставшаяся_стоимость / ставка_за_ГБ)
Пример расчёта

Текущий план: подписка 10 ₽/день, новый: трафик 50 ₽/ГБ, осталось 30 дней.

  • оставшаяся_стоимость = 30 × 10 = 300 ₽
  • новый_трафик = round(300 / 50) = 6 ГБ

Клиент получает 6 ГБ трафика вместо 30 дней подписки.

Трафик → подписка

Оставшийся трафик (лимит минус использованный) конвертируется в дни подписки.

оставшаяся_стоимость = оставшийся_трафик_ГБ × ставка_за_ГБ
новые_дни = round(оставшаяся_стоимость / дневная_ставка)
Пример расчёта

Текущий план: трафик 50 ₽/ГБ, осталось 10 ГБ, новый: подписка 10 ₽/день.

  • оставшаяся_стоимость = 10 × 50 = 500 ₽
  • новые_дни = round(500 / 10) = 50 дней

Клиент получает 50 дней подписки вместо 10 ГБ трафика.

Трафик → трафик

Оставшийся трафик конвертируется в ГБ на новом трафиковом плане.

оставшаяся_стоимость = оставшийся_трафик_ГБ × текущая_ставка_за_ГБ
новый_трафик_ГБ = round(оставшаяся_стоимость / новая_ставка_за_ГБ)
Пример расчёта

Текущий план: 50 ₽/ГБ, осталось 10 ГБ, новый: 25 ₽/ГБ.

  • оставшаяся_стоимость = 10 × 50 = 500 ₽
  • новый_трафик = round(500 / 25) = 20 ГБ

Клиент получает 20 ГБ на новом плане вместо 10 ГБ.

Примечание

Для повышения точности система выполняет промежуточные расчёты в минутах (для подписок) и мегабайтах (для трафика), округляя только финальный результат.

Настройки доступности смены тарифа

У каждого тарифа есть три настройки, которые управляют доступностью смены:

НастройкаЧто означает
Запретить уход с тарифаКлиент не может сменить этот тариф на другой
Запретить переход на тарифТариф не отображается как вариант для смены
Только платный апгрейдРазрешено только повышение с доплатой — понижение и бесплатная конвертация недоступны

Общие настройки смены тарифа

НастройкаЧто означает
Штрафной процентПри бесплатной конвертации от рассчитанных новых дней или ГБ вычитается этот процент. Минимум — 1 день/ГБ. Формула: итого = max(1, новые_дни − новые_дни × процент / 100)
Лимит смен в деньМаксимальное количество смен тарифа в день на одного клиента. Если лимит исчерпан, смена заблокирована до следующего дня

Промокоды при повышении тарифа

WARNING

Промокоды не применяются к сумме доплаты при повышении тарифа. Расчёт доплаты выполняется напрямую, минуя блок применения скидки — итоговая сумма идёт на оплату как есть.

Скидка по промокоду работает только при обычной покупке и продлении тарифа, а также при докупке трафика и устройств.

Доп. устройства при повышении тарифа

При повышении тарифа дополнительные устройства пересчитываются пропорционально оставшимся дням:

стоимость_за_устройство = месячная_цена_устройства × оставшиеся_дни / 30
доплата_за_устройства = стоимость_за_устройство × количество_доп_устройств
итого = доплата_за_план + доплата_за_устройства

Полный порядок смены тарифа

Шаг 1: Выбор нового тарифа

Клиент выбирает новый тариф через Telegram-бота или Mini App. Система рассчитывает варианты смены и показывает доступные опции.

Шаг 2: Расчёт

Система определяет тип операции (повышение, понижение, конвертация) и рассчитывает сумму доплаты или количество новых дней.

Шаг 3: Оплата или конвертация

Если повышение с доплатой:

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

Если понижение или бесплатная конвертация:

  • клиент подтверждает;
  • выполняется конвертация;
  • план и количество дней/ГБ обновляются.

Шаг 4: Обновление данных

  • обновляется подписка;
  • при понижении тарифа сбрасываются дополнительные устройства;
  • обновляется текущий план клиента и план автоплатежа.

Шаг 5: Фиксация результата

  • запись в историю смен тарифов;
  • уведомление клиенту;
  • обработка промокода (если был);
  • выдача чека (если включён «МойНалог»).