🛒 Интернет-магазин «Пентод»
Что это. Демо-сайт вымышленного магазина электроники: главная, «Каталог», «Покупателям» и «Где заказ». Адрес: https://examples.fixorix.ru/ru/shop.
Что показывает. Переход от «бот пересказывает статью» к «бот отвечает про конкретную сущность из вашей системы». Сценарий делает HTTP-запрос в собственный API магазина и собирает ответ из заказа, а не из статьи базы знаний. Второй механизм этого демо — AI-классификация: недовольные обращения AI помечает как срочные, дальше их разбирает человек.
Что настроено в Fixorix
| Что | Значение |
|---|---|
| Каналы | «Виджет» и Telegram |
| База знаний | 13 статей: доставка, оплата, гарантия, возврат, каталог |
| Сценарий | Ответ по базе знаний плюс блок «HTTP запрос» к API заказов |
| AI | Классификация обращения: недовольные обращения помечаются как срочные |
| Модуль «Тикеты» | Не используется в этом примере |
Блок «HTTP запрос» ходит по адресу вида /api/orders/{id}, где id — номер заказа, который клиент назвал в переписке. Ответ уже готов к показу: он плоский и на русском, статусы приходят готовыми подписями, а не кодами. Неизвестный номер возвращает 404 и found: false: ответ с кодом 4xx блок «HTTP запрос» отправляет в выход «Ошибка», так что сценарию не нужно разбирать тело.
| Что приходит в ответе | Что с этим делает сценарий |
|---|---|
| Подпись статуса и пояснение, что он означает | Отдаёт клиенту как есть — переписывать статус в сценарии не нужно |
| Состав заказа, сумма товаров, доставка, итог | Помогает клиенту опознать свой заказ |
| Способ доставки, интервал, пункт выдачи, когда приедет или приехал, признак опоздания | Отвечает на вопрос «когда и куда приедет»; при опоздании сценарий уходит в отдельную ветку |
| Пояснение к заказу | Объясняет, что случилось, если с заказом что-то пошло не так |
Все заказы вымышлены, поэтому эндпоинт открыт. Для настоящего магазина так делать нельзя: в реальном проекте API заказов должен требовать ключ, а сценарий — передавать его заголовком.
Ограничения блока. Ответ — не больше 1 МиБ, не больше 100 HTTP-вызовов на один запуск сценария. Запросы к приватным адресам и служебным хостам блокируются, поэтому API демо должен быть доступен по публичному адресу.
Что попробовать
- Откройте страницу «Где заказ», введите в поле «Номер заказа» значение
1042и нажмите «Найти». - Не закрывая страницу, спросите в чате: «Где мой заказ 1042?»
- Сравните: сценарий сходит в тот же API и ответит теми же полями, что показаны на экране, — статус «Передан курьеру» и интервал доставки.
| Вопрос в чат | Какой ответ ждать |
|---|---|
| «Где мой заказ 1042?» | Статус, состав, сумма и интервал доставки — собранные из заказа, а не из статьи |
| «Заказ 9999, где он?» | API отвечает 404, бот честно говорит, что не смог найти заказ, и зовёт человека |
| «Где заказ 1048?» | Бот извинится за опоздание, пообещает перенос на ближайший интервал и возврат стоимости доставки и позовёт человека |
| «До скольких нужно оформить, чтобы уехало сегодня?» | Ответ по базе знаний: отсечка — до 14:00 по московскому времени |
| «Сколько заказ лежит в пункте выдачи?» | 5 дней — ответ из статьи базы знаний. Сколько дней осталось у конкретного заказа, показывает только страница «Где заказ» (строка «Хранится ещё»); бот про такой заказ скажет, когда он приехал и в какой пункт |
Страница «Где заказ» говорит об этом прямо: ответ собирается из заказа, а не из статьи в базе знаний.
📷 Скриншот: страница «Где заказ» с найденным заказом 1042 (будет добавлен).
Опоздавший заказ
Чтобы увидеть ветку опоздавшего заказа, спросите про заказ 1048: он у курьера и должен был приехать вчера. API отдаёт его с пометкой «просрочен на 1 день» и пояснением «Курьер не приехал в выбранный интервал…». Бот извинится, пообещает перенос на ближайший интервал и возврат стоимости доставки и передаст разговор человеку.
Доехавшие заказы — например, 1044 в пункте выдачи — просроченными не считаются: и страница, и API показывают, сколько дней назад заказ приехал.
Что есть на сайте
Каталог. Телефоны, ноутбуки и мониторы, звук — с характеристиками, ценой, наличием и сроком гарантии (12, 24 или 36 месяцев). Отдельным блоком — «Как выбрать».
«Покупателям». Доставка с тарифами, бесплатная доставка от 15 000 ₽ и от 20 000 ₽ по разным тарифам, отсечка «до 14:00 по московскому времени», пункты выдачи и хранение 5 дней. Дальше — оплата, гарантия, возврат, блок «Чего мы не делаем» и частые вопросы.
«Где заказ». Восемь демонстрационных номеров — с 1041 по 1048, каждый в своём статусе: «Принят», «Собирается», «Передан курьеру», «Ждёт в пункте выдачи», «Доставлен», «Возврат оформлен», «Отменён».
Как это устроено
Каталог, тарифы доставки и правила возврата лежат в одном объекте данных. Из него рендерится сайт и генерируются 13 статей базы знаний — поэтому условия в чате совпадают со страницей «Покупателям».
А вот заказы в базу знаний намеренно не попадают: они отдаются по HTTP в момент вопроса. Загрузи их в базу знаний — и поиск возвращал бы вчерашний замороженный статус, а клиенту нужен сегодняшний.
Правило простое: правила — в базу знаний, состояния — по HTTP.
Ограничения
- Заказ через чат не оформляется и не отменяется: сценарий только читает состояние заказа.
- Восемь демонстрационных номеров зафиксированы в данных. По любому другому номеру бот скажет, что не смог посмотреть заказ, и позовёт человека — это не ошибка, а поведение демо.
- API демо открыт без ключа. Повторять эту схему в реальном проекте нельзя.
- Тикеты в этом демо не используются: обращение из чата остаётся обращением, и его разбирает оператор.
→ Примеры · Блоки сценариев · AI-классификация · Telegram · База знаний