Назад к панели управления

Документация

Узнайте, как использовать Asyntai

Возможности
Панель Ask AI Панель AI-поиска ИИ-поиск для WordPress AI Search for Joomla AI Search for Webflow AI Search for Moodle AI Search for TYPO3 AI Search for Craft CMS AI Search for Grav AI Search for October CMS AI Search for ProcessWire AI Search for Odoo AI Search for Bagisto AI Search for OpenCart AI Search for BigCommerce AI Search for Magento Сканирование сайта Пробелы в знаниях Карточки продуктов Динамические карточки товаров Динамические изображения Контекст пользователя Пользовательские инструменты Параметры ссылок Мониторинг в реальном времени Передача живому оператору Эскалация Уведомления ИИ Ежедневный отчёт Поток данных в реальном времени Поток данных в реальном времени Max Участники команды Единый вход Двухфакторная аутентификация Показывать изображения Распознавание изображений Виджет перевода Локализация Прозрачность ИИ Лиды Умный захват лидов Тикеты поддержки Категории чатов Бронирования Встраивания Исключить страницы Заблокированные IP Политика хранения Режим нулевого хранения Маскирование PII Классификатор ответов Access Tags Закрепление версии виджета Журнал аудита Продвинутая модель Включите режим размышления Подсказки для ответа Дополнительные сообщения Распознавание речи Скачать транскрипт Встроенный чат Встраивание через iframe

Как добавить ИИ-чат-бот Asyntai в Sylius

Пошаговое руководство для платформы электронной коммерции Sylius

Получить код встраивания

Шаг 1: Получите код встраивания

Сначала перейдите на Панель управления Asyntai и прокрутите вниз до раздела «Код для встраивания». Скопируйте уникальный код, который выглядит так:

<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>

Примечание: Код выше — всего лишь пример. Вы должны скопировать свой уникальный код для встраивания с вашей Панели управления, так как он содержит ваш персональный идентификатор виджета.

Шаг 2: Добавьте в шаблон макета Twig (рекомендуется)

Sylius построен на Symfony и использует шаблонизатор Twig. Рекомендуемый подход — переопределить шаблон макета магазина, чтобы включить чат-бот на всех страницах витрины.

  1. В вашем проекте Sylius перейдите в директорию templates/bundles/SyliusShopBundle/ (создайте её, если она не существует)
  2. Создайте или отредактируйте файл layout.html.twig, чтобы переопределить стандартный макет магазина
  3. Если файл уже существует, найдите {% block javascripts %} блок
  4. Добавьте код вставки Asyntai, расширив блок javascripts:
    {% block javascripts %} {{ parent() }} <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> {% endblock %}
  5. Замените YOUR_WIDGET_ID на ваш реальный ID виджета из панели управления
  6. Сохраните файл

Совет: By using {{ parent() }} inside the block, you preserve all existing JavaScript includes from the parent template while appending the chatbot script at the end, ensuring it loads after the page content.

Альтернативный метод 1: использование событий шаблонов Sylius

Sylius предоставляет мощную систему событий шаблонов, позволяющую внедрять контент в определённые части макета без переопределения целых шаблонов. Это можно использовать для добавления виджета чат-бота в футер.

  1. Создайте новый файл шаблона по пути templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twig со следующим содержимым:
    <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>
  2. Зарегистрируйте событие шаблона в файле конфигурации config/packages/sylius_ui.yaml:
    sylius_ui:
        events:
            sylius.shop.layout.after_body:
                blocks:
                    asyntai_chatbot:
                        template: "@SyliusShop/Event/asyntai_widget.html.twig"
                        priority: 0
  3. Замените YOUR_WIDGET_ID на ваш реальный ID виджета
  4. Очистить кэш Symfony (см. Шаг 3 ниже)

Примечание: Подход с событиями шаблона — наименее инвазивный метод. Он не требует переопределения существующих шаблонов и чисто интегрируется с архитектурой Sylius. Значение priority управляет порядком рендеринга, если для одного события зарегистрировано несколько блоков.

Альтернативный способ 2: Через Webpack Encore

Если ваш проект Sylius использует Webpack Encore для управления ресурсами, вы можете интегрировать скрипт чат-бота через конвейер сборки JavaScript.

  1. Создайте новый JavaScript-файл по пути assets/shop/js/asyntai-chatbot.js со следующим содержимым:
    (function() {
        var script = document.createElement('script');
        script.async = true;
        script.src = 'https://asyntai.com/static/js/chat-widget.js';
        script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID');
        document.body.appendChild(script);
    })();
  2. Импортируйте этот файл в точку входа вашего магазина (например, assets/shop/entry.js или assets/shop/js/app.js):
    import './js/asyntai-chatbot';
  3. Пересоберите ресурсы, выполнив:
    yarn encore dev

    Или для продакшена:

    yarn encore production
  4. Замените YOUR_WIDGET_ID на ваш реальный ID виджета

Совет: Использование Webpack Encore гарантирует, что скрипт чат-бота будет включён в общий пакет ресурсов и воспользуется кэшированием и оптимизацией инструмента сборки.

Альтернативный способ 3: Через Sonata Block Bundle

Если ваша установка Sylius использует Sonata Block Bundle (входит по умолчанию в некоторые конфигурации Sylius), вы можете создать пользовательский блочный сервис для отображения виджета чат-бота.

  1. Создайте новый класс блок-сервиса в вашем проекте, например src/Block/AsyntaiChatbotBlockService.php:
    <?php

    namespace App\Block;

    use Sonata\BlockBundle\Block\BlockContextInterface;
    use Sonata\BlockBundle\Block\Service\AbstractBlockService;
    use Symfony\Component\HttpFoundation\Response;

    class AsyntaiChatbotBlockService extends AbstractBlockService
    {
        public function execute(BlockContextInterface $blockContext, Response $response = null): Response
        {
            return $this->renderResponse('block/asyntai_chatbot.html.twig', [
                'block' => $blockContext->getBlock(),
            ], $response);
        }
    }
  2. Создайте шаблон блока по пути templates/block/asyntai_chatbot.html.twig:
    <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>
  3. Зарегистрируйте сервис блока в config/services.yaml:
    services:
        app.block.asyntai_chatbot:
            class: App\Block\AsyntaiChatbotBlockService
            arguments:
                - '@twig'
            tags:
                - { name: sonata.block, context: footer }
  4. Разместите блок в контексте футера через панель администратора Sonata или добавив его в конфигурацию макета
  5. Замените YOUR_WIDGET_ID на ваш реальный ID виджета

Важно: Подход с Sonata Block требует более сложной настройки, но обеспечивает гибкость управления блоком чат-бота через административный интерфейс. Перед использованием этого метода убедитесь, что Sonata Block Bundle установлен и настроен в вашем проекте Sylius.

Шаг 3: Очистка кэша и проверка

После внесения изменений необходимо очистить кэш Symfony и проверить установку:

  1. Очистите кэш Symfony, выполнив следующую команду из корневой директории проекта:
    bin/console cache:clear
  2. Если вы в продакшн-среде, также прогрейте кэш:
    bin/console cache:clear --env=prod
    bin/console cache:warmup --env=prod
  3. Откройте витрину Sylius в новой вкладке браузера или режиме инкогнито
  4. Кнопка виджета чата должна появиться в правом нижнем углу
  5. Нажмите на нее, чтобы убедиться, что она открывается и работает корректно

Виджет не отображается? Убедитесь, что вы очистили кэш Symfony с помощью bin/console cache:clear. Проверьте, что переопределение шаблона находится в правильном каталоге (templates/bundles/SyliusShopBundle/). Попробуйте очистить кэш браузера или открыть сайт в режиме инкогнито. Проверьте консоль разработчика браузера на наличие ошибок JavaScript. Если используется Webpack Encore, убедитесь, что активы пересобраны.

Примечание о версии Sylius: Пути переопределения шаблонов могут немного отличаться в зависимости от версии Sylius. В Sylius 1.x шаблоны пакета магазина находятся в templates/bundles/SyliusShopBundle/. Проверьте документацию Sylius для правильного пути переопределения, если вы используете другую версию.