# Домен WebApp Telegram

Чтобы покупатель мог открывать интернет-магазин или онлайн-запись прямо внутри Telegram, необходимо настроить WebApp. Для этого в Меркурии предусмотрен готовый URL, а в Telegram нужно привязать к боту домен и указать адрес мини-приложения. Эта инструкция объясняет, где взять URL, что именно вводить в @BotFather и как проверить результат.

Раздел: [Дисконтная программа](loyalty.md).

## Что подготовить в Меркурии

Перед настройкой Telegram убедитесь, что бот уже подключён к Меркурию. Откройте **Розница → Дисконтная программа → Боты**.

### 1. Подключите Telegram-бота

В блоке «Telegram-бот» должен быть указан статус подключения и ссылка на вашего бота. Если бот ещё не подключён, сначала получите токен через @BotFather и подключите его в Меркурии.

Инструкция: [«Токен Telegram-бота»](loyalty-bot-telegram.md).

### 2. Выберите режим WebApp

В верхней части подвкладки находится переключатель режима WebApp. Он определяет, что именно будет открываться покупателю из Telegram:

- **«Интернет-витрина (магазин)»** — покупатель открывает каталог товаров и оформляет заказ.
- **«Запись клиентов»** — покупатель открывает интерфейс онлайн-записи.

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

### 3. Скопируйте URL WebApp

После подключения Telegram в блоке появляется поле **«WebApp для Telegram (@BotFather)»**. В нём находится готовый адрес мини-приложения, сформированный Меркурием.

Поле предназначено для просмотра и копирования, а не для редактирования. Нажмите **«Копировать»** и сохраните адрес в буфере обмена. Он понадобится на следующем этапе.

### 4. Синхронизируйте Menu Button

Кнопка **«Синхронизировать Menu Button»** обновляет кнопку меню Telegram-бота с учётом выбранного режима WebApp.

Если вы переключили режим магазина на запись или наоборот, после сохранения настроек выполните синхронизацию. Это позволит привести кнопку меню Telegram в соответствие с текущим назначением мини-приложения.

Таким образом, в Меркурии нужно подготовить две вещи: подключённого Telegram-бота и скопированный URL WebApp. Теперь можно переходить к настройкам Telegram.

## Как привязать домен в BotFather

Telegram должен знать, какой домен разрешён для работы мини-приложения вашего бота. Эта привязка выполняется через официального бота **@BotFather**.

### Шаг 1. Откройте @BotFather

Перейдите в Telegram по ссылке **t.me/BotFather**. Откройте чат с официальным BotFather.

### Шаг 2. Запустите настройку домена

Отправьте команду:

`/setdomain`

Также к этой настройке можно перейти через меню:

**/mybots → выберите своего бота → Bot Settings → Domain.**

### Шаг 3. Выберите нужного бота

BotFather предложит выбрать бота, для которого нужно настроить домен.

**Выберите именно того бота, чей токен вы указали в Меркурии.** Если у магазина несколько ботов, не перепутайте их. Привязка домена выполняется для конкретного бота, а не для всего аккаунта Telegram.

### Шаг 4. Введите домен

Для облачной версии Меркурий-ИИ укажите:

`mercury-ai.ru`

Вводить нужно только доменное имя. Не добавляйте протокол `https://`, путь к странице или дополнительные параметры.

Правильно:

`mercury-ai.ru`

Неправильно:

- `https://mercury-ai.ru` — не нужно указывать протокол.
- `mercury-ai.ru/vitrina` — не нужно добавлять путь.
- `www.mercury-ai.ru` — используйте указанный домен без добавления `www`.

### Шаг 5. Подтвердите настройку

Следуйте указаниям BotFather и подтвердите привязку домена. После успешного выполнения домен будет связан с выбранным ботом.

**Обратите внимание:** привязка домена и указание URL мини-приложения — два разных действия. На этом этапе вы разрешили использование домена. Теперь нужно указать Telegram конкретный адрес WebApp, который вы скопировали из Меркурия.

## Как настроить Menu Button и Mini App

После привязки домена нужно указать, какое мини-приложение открывать покупателю. Для этого используется URL WebApp из Меркурия.

### Настройка кнопки меню через /setmenubutton

1. Откройте чат с @BotFather.
2. Отправьте команду `/setmenubutton`.
3. Выберите бота, который подключён к Меркурии.
4. Выберите тип кнопки Web App, если BotFather предложит выбор типа.
5. Вставьте URL, скопированный из поля «WebApp для Telegram (@BotFather)» в Меркурии.
6. Завершите настройку по подсказкам BotFather.

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

### Настройка через /newapp

Другой предусмотренный вариант — создать Mini App через команду:

`/newapp`

BotFather предложит выбрать бота и выполнить настройку мини-приложения. В результате у приложения появится ссылка, которая может выглядеть примерно так:

`https://t.me/имя_бота/shop`

Это пример формата ссылки, а не адрес вашего магазина. Для настройки используйте URL, который Меркурий показывает в поле «WebApp для Telegram (@BotFather)».

### Зачем нужны обе настройки?

- **/setdomain** — привязывает домен к конкретному боту.
- **/setmenubutton** — настраивает кнопку меню, которая открывает WebApp.
- **/newapp** — используется для создания Mini App.

Не путайте эти команды: одна настройка не заменяет другую. Если вы используете Menu Button или Mini App, домен должен быть привязан к тому же боту, для которого настраивается WebApp.

### Если вы сменили бота или токен

Настройка домена привязана к конкретному боту. Если вместо прежнего бота вы подключили новый, проверьте настройки через @BotFather ещё раз: новый бот должен иметь собственную привязку домена и настроенный адрес WebApp.

## Как проверить работу

После настройки не ограничивайтесь тем, что мини-приложение просто открылось. Важно проверить, что Telegram передаёт данные покупателя и Меркурий может связать заказ с его ботом.

1. Полностью закройте ранее открытое мини-приложение в Telegram.
2. Откройте чат с вашим ботом.
3. Если необходимо, отправьте команду `/start`.
4. Откройте магазин кнопкой **«Заказать»** или через настроенную кнопку меню.
5. Оформите тестовый заказ.
6. Откройте в Меркурии журнал **Расходы → Заявки покупателей** и найдите созданную заявку.
7. Проверьте, появилась ли в заявке возможность переписки с покупателем.

При корректной настройке Telegram передаёт данные, позволяющие связать заказ с пользователем бота. В заявке должна быть доступна переписка с покупателем. Это основной признак того, что связь с Telegram работает не только на уровне открытия витрины.

Если в Меркурии не появилась переписка, проверьте домен, выбранного бота и URL WebApp. После изменения настроек полностью закройте мини-приложение и откройте его заново.

## Если покупатель не определяется

Если интернет-витрина открывается, но в заявке нет переписки с покупателем или уведомления в бот не приходят, проверьте настройки последовательно.

1. **Проверьте подключение бота в Меркурии.** На вкладке «Боты» должна отображаться ссылка на подключённого Telegram-бота.
2. **Проверьте, что выбрали того же бота в BotFather.** Домен должен быть привязан к боту, токен которого указан в Меркурии.
3. **Проверьте домен.** Для облачной версии указывается `mercury-ai.ru`, без протокола, пути и дополнительных частей адреса.
4. **Проверьте URL WebApp.** В Telegram должен быть указан адрес, скопированный из Меркурия, а не произвольная ссылка на сайт.
5. **Проверьте Menu Button.** Если вы меняли режим WebApp, сохраните настройки программы и выполните синхронизацию кнопки меню.
6. **Перезапустите мини-приложение.** Закройте его полностью и откройте заново из чата с ботом.
7. **Создайте тестовую заявку.** Проверьте результат в журнале заявок покупателей.

Если после проверки проблема сохраняется, обратите внимание на сообщения об ошибках в Меркурии и на результат выполнения команд в BotFather. Не создавайте новый бот и не меняйте токен без необходимости: сначала убедитесь, что правильно настроены домен и URL уже подключённого бота.

## Смежные разделы

- [Токен Telegram](loyalty-bot-telegram.md) — создание бота и получение токена.
- [Боты](loyalty-bots.md) — подключение Telegram и MAX в Меркурии.
- [WebApp MAX](loyalty-webapp-max.md) — настройка мини-приложения в MAX.
- [Интернет-витрина](vitrina.md) — настройка и публикация магазина.
- [Дисконтная программа](loyalty.md) — обзор раздела.
