Як додати AI чат-бот Asyntai до Sylius
Покрокова інструкція для платформи електронної комерції Sylius
Крок 1: Отримайте код для вставки
Спочатку перейдiть до вашої Панелi керування Asyntai та прокрутiть вниз до роздiлу "Код для вставки". Скопiюйте унiкальний код для вставки, який виглядатиме так:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Примітка: Код вище є лише прикладом. Ви повиннi скопiювати власний унiкальний код для вставки з вашої Панелi керування, оскiльки вiн мiстить ваш особистий ID вiджета.
Крок 2: Додати до шаблону макета Twig (Рекомендовано)
Sylius побудований на Symfony та використовує шаблонізатор Twig. Рекомендований підхід - перевизначити шаблон макета магазину, щоб включити чат-бот на всі сторінки вітрини.
- У вашому проекті Sylius перейдіть до директорії
templates/bundles/SyliusShopBundle/(створіть її, якщо вона не існує) - Створіть або відредагуйте файл layout.html.twig, щоб перевизначити макет магазину за замовчуванням
- Якщо файл вже існує, знайдіть
{% block javascripts %}блок - Додайте код вбудовування Asyntai, розширивши блок javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Замiнiть
YOUR_WIDGET_IDна фактичний ID вiджету з панелi керування - Збережіть файл
Порада: 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 надає потужну систему подій шаблонів, яка дозволяє вставляти контент у певні частини макета без перевизначення цілих шаблонів. Ви можете використовувати це для додавання віджета чат-бота в область футера.
- Створіть новий файл шаблону за адресою
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigз наступним вмістом:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Зареєструйте подію шаблону у вашому конфігураційному файлі
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 - Замініть
YOUR_WIDGET_IDна ваш фактичний ID віджету - Очистіть кеш Symfony (див. Крок 3 нижче)
Примітка: Підхід з подіями шаблонів є найменш інвазивним методом. Він не вимагає перевизначення існуючих шаблонів та чисто інтегрується з архітектурою Sylius. Значення priority контролює порядок рендерингу, якщо кілька блоків зареєстровані для однієї події.
Альтернативний метод 2: Використання Webpack Encore
Якщо ваш проект Sylius використовує Webpack Encore для управління ресурсами, ви можете інтегрувати скрипт чат-бота через ваш конвеєр збірки JavaScript.
- Створіть новий файл 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);
})(); - Імпортуйте цей файл у точку входу вашого магазину (наприклад,
assets/shop/entry.jsабоassets/shop/js/app.js):import './js/asyntai-chatbot'; - Перебудуйте ваші ресурси, виконавши:
yarn encore devАбо для production:
yarn encore production - Замініть
YOUR_WIDGET_IDна ваш фактичний ID віджету
Порада: Використання Webpack Encore забезпечує об'єднання скрипта чат-бота з вашими іншими ресурсами та переваги кешування та оптимізації, що надаються інструментом збірки.
Альтернативний метод 3: Використання Sonata Block Bundle
Якщо ваша інсталяція Sylius використовує Sonata Block Bundle (включений за замовчуванням у деяких конфігураціях Sylius), ви можете створити власний сервіс блоків для рендерингу віджета чат-бота.
- Створіть новий клас сервісу блоків у вашому проекті, наприклад
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);
}
} - Створіть шаблон блоку за адресою
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Зареєструйте сервіс блоків у вашому
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Розмістіть блок у контексті футера через адмінку Sonata або додавши його до конфігурації макета
- Замініть
YOUR_WIDGET_IDна ваш фактичний ID віджету
Важливо: Підхід Sonata Block вимагає більше налаштувань, але забезпечує гнучкість управління блоком чат-бота через інтерфейс адміністратора. Переконайтеся, що Sonata Block Bundle встановлений та налаштований у вашому проекті Sylius перед використанням цього методу.
Крок 3: Очистіть кеш та перевірте
Після внесення змін вам потрібно очистити кеш Symfony та перевірити встановлення:
- Очистіть кеш Symfony, виконавши наступну команду з кореня вашого проекту:
bin/console cache:clear - Якщо ви в середовищі production, також прогрійте кеш:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Відвідайте вітрину Sylius у новій вкладці браузера або у вікні інкогніто
- Ви повинні побачити кнопку віджета чату в правому нижньому куті
- Натисніть на нього, щоб переконатися, що він відкривається та працює коректно
Не бачите віджет? Переконайтеся, що ви очистили кеш Symfony за допомогою bin/console cache:clear. Перевірте, що перевизначення шаблону знаходиться у правильній директорії (templates/bundles/SyliusShopBundle/). Спробуйте очистити кеш браузера або переглянути у вікні інкогніто. Перевірте консоль розробника браузера на наявність помилок JavaScript. Якщо використовуєте Webpack Encore, переконайтеся, що ви перебудували ресурси.
Примітка щодо версії Sylius: Шляхи перевизначення шаблонів можуть дещо відрізнятися між версіями Sylius. У Sylius 1.x шаблони бандлу магазину розташовані в templates/bundles/SyliusShopBundle/. Перевірте документацію Sylius для правильного шляху перевизначення, якщо ви використовуєте іншу версію.
Weebly