Skip to content

Тарифы и цены

Раздел «Тарифы и цены» определяет, что именно продаёт бот: готовые планы или конструктор, по каким ценам и с какими лимитами.

Режимы продаж

Переключатель «Бот продаёт» вверху экрана — это настройка SALES_MODE (меняется без рестарта):

РежимЧто видит покупатель
plans (по умолчанию)Каталог готовых планов: выбрал план → выбрал период → оплатил
constructorСборка подписки: период + пакет трафика + доп. устройства

Как выглядит воронка покупки в боте — на странице /bot/purchase.

Готовые планы

У плана есть:

  • название и описание (код плана генерится из названия, дубликаты отбиваются);
  • лимит трафика в ГБ (0 или пусто — безлимит);
  • лимит устройств (1–100, пусто — без лимита);
  • сквады панели (internal_squads) — на какие ноды попадает юзер, см. /cabinet/servers;
  • сетка длительностей: каждая строка — количество дней и цена (пока в рублях, хранится в копейках);
  • флаг активности и счётчик продаж.

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

Удаление плана

План, на который ссылается хотя бы одна подписка, удалить нельзя — кабинет вернёт конфликт. Это защита от осиротевших подписок: вместо удаления деактивируйте план.

Конструктор цен

Конструктор

Для режима constructor настраиваются две сетки:

  • Периоды — дни + цена (например 30 дней / 199 ₽, 90 дней / 499 ₽);
  • Пакеты трафика — ГБ + цена, 0 ГБ означает безлимитный пакет.

Итоговая цена = период + пакет. Доп. устройства оплачиваются отдельно, параметры берутся из настроек:

НастройкаПо умолчаниюСмысл
CONSTRUCTOR_EXTRA_DEVICE_PRICE5000 коп. (50 ₽)Цена одного доп. устройства за 30 дней
CONSTRUCTOR_MAX_DEVICES10Потолок устройств в конструкторе

Покупки конструктора бронируются под скрытый служебный план «Конструктор» — он специально неактивен и в каталоге не показывается, а имя подписки собирается из выбора юзера (например «Конструктор · 100 ГБ»).

Как считается итоговая цена

Порядок расчёта фиксированный: базовая цена (план + период или период + пакет) → процентные скидки → кап.

Складываются четыре источника скидок:

  1. Промогруппа юзера — серверный % плюс % за конкретную длительность (у группы с наибольшим приоритетом), см. /cabinet/promos;
  2. Персональная скидка — постоянная, живёт на юзере;
  3. Одноразовая скидка — сгорает после первой покупки;
  4. Активная акция — если идёт лимитированная распродажа.

Сумма скидок ограничена 100%: цена 0 — это легальная бесплатная покупка, она проводится без платёжки. При смене плана неиспользованные дни текущего периода превращаются в кредит — по цене, которую юзер фактически заплатил, а не по прайсу.

Снапшоты цен и параметров

В момент покупки к транзакции и к подписке замораживается снапшот плана: plan_id, имя, лимиты трафика и устройств, сквады. Подписка живёт по этому снапшоту, а не по «живому» плану.

Почему смена цены ничего не ломает

Можно свободно менять цены, лимиты и описания планов — это влияет только на новые покупки. Уже проданные подписки продолжают работать с теми параметрами, за которые заплатили: карточка юзера, панель и расчёт кредита при смене плана читают снапшот, а не текущий тариф.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов