Skip to content

Nexora Shop ​

Nexora Shop — официальное дополнение, которое продаёт клиентам тарифы вашей панели: товары, заказы, кошелёк, оплата переводом с карты на карту и через платёжные шлюзы, Telegram-бот, веб-приложение, коды скидок и подарочные коды, рефералы и агенты. Эта страница описывает установку Shop и его админку; следующие страницы подробно разбирают каждую часть.

Как Shop работает с панелью ​

Shop — отдельная программа со своей базой. Деньги хранятся в базе Shop, а учётные записи — в базе панели:

  • Клиент покупает в боте или веб-приложении и пополняет свой кошелёк.
  • Shop просит панель создать, продлить или пополнить учётную запись через токен, который вы одобрили при установке.
  • Клиент получает ссылку подписки от Shop.

Shop не проверяет никакой собственной лицензии; это делает панель. Когда панель отказывается создать новую учётную запись, потому что её лицензия заполнена, Shop сразу возвращает деньги заказа в кошелёк клиента, объясняет клиенту причину, сообщает в тему ваших администраторов в Telegram и на час приостанавливает новые подписки и пробные периоды. Продления и докупка трафика продолжают работать. Расширьте лицензию или освободите место, затем нажмите Открыть продажи на обзоре Shop.

Установка ​

Рекомендуемый способ — из панели: Дополнения → Каталог, выберите Nexora Shop, ответьте на его вопросы и дайте панели установить его на свой сервер, по SSH или выдать вам команду для запуска. Панель регистрирует Shop, как только он ответит. Все способы установки описаны в Каталог дополнений.

Вручную, на Linux-сервере, от root:

bash
curl -fsSLO https://raw.githubusercontent.com/nexora-vpn/shop/main/install.sh
sh install.sh --method script --opt port=8095 \
  --panel-url https://panel.example.com --claim-code XXXX-XXXX-XXXX-XXXX

--method script запускает бинарный файл под юнитом systemd nexora-addon-shop; --method docker запускает стек compose Shop. Всё лежит в /opt/nexora-addons/shop: ответы — в .env, данные — в data/.

Вопросы установки ​

ПараметрПо умолчаниюЧто задаёт
port8095Порт, который слушает Shop. С включённым HTTPS — его единственный порт.
databasesqlitesqlite хранит всё в data/; postgres использует ваш сервер.
database_dsnПодключение к PostgreSQL, спрашивается только для postgres.
admin_usernameadminСобственная учётная запись администратора Shop.
admin_passwordЕё пароль, от 10 символов до 72 байт. Потом смените его в Shop.
base_pathвыбирается случайноПуть, под которым находятся админка и API Shop. Страницы клиентов (/app/, /pay/) остаются в корне и никогда его не показывают. Пусто — админка в корне.
public_urlАдрес, по которому клиенты попадают в Shop, https://<host>:<port>. С включённым HTTPS он называет порт Shop (443, если порт не указан).
httpspanel в форме панели, off вручнуюКак Shop отдаёт HTTPS: panel, acme, acme-http, self-signed или off. См. Shop: портал для клиентов.

Дайте Shop собственный адрес, никогда не используйте адрес рядом с адресом панели. Telegram открывает мини-приложение только по HTTPS.

Обновление и удаление ​

  • Обновление: снова выполните sh install.sh или нажмите Обновить на сервере в панели. Ответы и данные сохраняются.
  • Удаление: sh install.sh --uninstall, а с --purge удаляются и данные. Сначала сделайте резервную копию.

Настройка ​

Откройте админку Shop по его адресу с базовым путём: его печатает install.sh, а панель открывает его из строки Shop. Настройка — это список дел самого Shop, и порядок их никто не навязывает:

  1. Telegram-бот: создайте бота через BotFather и вставьте его токен. Используйте отдельного бота для Shop, а не бота панели или уведомителя.
  2. Ваш Telegram как администратор: откройте ссылку или отсканируйте QR-код и нажмите Start.
  3. Группа для квитанций: добавьте бота в группу администраторов и отправьте /receipts в теме, куда должны приходить квитанции.
  4. Карты для переводов, если вы их принимаете (Shop: платежи).
  5. Товары, выбранные из тарифов панели.
  6. Вход по email или SMS, по желанию (Shop: портал для клиентов).
  7. Адрес подписки клиентов.

То, что сделала установка из панели — регистрация и публичный адрес с HTTPS, — появляется в списке, только если что-то не так.

Админка ​

Админка Shop доступна на английском, персидском, русском и китайском. Всё, что делает Shop, управляется из неё.

СтраницаДля чего
ОбзорПродажи за сегодня и за последние 30 дней, квитанции, ждущие проверки человеком, неудачные заказы, клиенты и сколько в их кошельках, приостановленные продажи, учётные записи, которые больше не совпадают с панелью.
ЗаказыВсе покупки. Верните неудавшийся или выполненный заказ в кошелёк, отмените неоплаченный или нажмите Отправить снова для оплаченного заказа, чей вызов панели прервался.
КвитанцииКвитанции переводов с карты на карту, которые нужно одобрить или отклонить, — та же очередь, что и в теме Telegram.
КлиентыПоиск клиента по имени, Telegram id, почте или телефону; правка данных, зачисление на кошелёк или выплата из него, выписка, подписки клиента, оформление заказа за него.
АгентыУровни и агенты (Shop: агенты).
ОтчётыПродажи по периодам и валютам, новые против продлений, доля продлений, лучшие товары и агенты, во что обошлись акции и возвраты, сколько лежит в кошельках.
ТоварыНовые подписки на основе тарифа панели, продления (по дням или календарным месяцам, с необязательным трафиком и сбросом цикла), докупка трафика; цены в каждой валюте; снятие с продажи.
Способы оплатыКарты, шлюзы и их состояние, настройки оплаты, адрес и секрет для банковских SMS, курсы валют (Shop: платежи).
КодыКоды скидок, подарочные коды, реферальное вознаграждение (Shop: акции).
Тексты ботаВсе сообщения бота вашими словами.
НастройкиБот (валюта, пробный период, канал, на который нужно подписаться сначала, суммы пополнения, поддержка, напоминания, автопродление), языки клиентов, напоминания, рассылки, вход по почте и SMS.
НастройкаСписок дел, описанный выше.
БезопасностьВаш пароль и двухэтапный вход.
Резервные копииРасписание, архивы, ключ и проверка после восстановления панели (Shop: резервные копии).

Ссылки подписки и путь админки

Обзор предупреждает, если панель выдаёт клиентам ссылки подписки на пути админки панели. Задайте Базовый путь подписок в настройках панели, чтобы клиенты его никогда не видели (Подписки и страница подписки).

Тексты бота ​

Каждое сообщение и каждую кнопку бота можно переформулировать на каждом включённом языке. Текст может использовать значения, которые предлагает его шаг; они показаны метками под редактором ({{.Name}}, {{.Amount}} и так далее). Редактор показывает предпросмотр с образцами значений, а Shop проверяет текст перед сохранением, поэтому ошибка никогда не дойдёт до клиента. Сообщения используют HTML Telegram: <b>, <i>, <code>, <a href="…">. Вернуть встроенный возвращает исходную формулировку Shop.

Отчёты ​

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

Языки клиентов ​

Shop говорит на персидском, английском, русском и китайском. В Настройки включите языки, которыми пользуются ваши клиенты. Каждого клиента обслуживают на его языке (языке его Telegram или выбранном им), если этот язык включён, иначе на английском или первом включённом языке. Товар требует название на каждом включённом языке.

Напоминания Shop или уведомитель ​

По умолчанию Shop сообщает клиентам об их учётных записях: напоминания перед окончанием срока и предупреждения панели, когда учётная запись истекает, исчерпывает трафик, продлевается или удаляется. Если у вас работает уведомитель, который делает это для всех учётных записей панели, выключите в Настройки параметр Магазин сообщает клиентам об окончании срока, трафике, продлении и удалении, чтобы никто не получал это дважды. О том, что делает сам Shop, он по-прежнему сообщает: покупки, квитанции, кошелёк, автопродление, которое кошелёк не смог оплатить.

Текст и изображения — CC BY 4.0.