Como Adicionar o Chatbot IA Asyntai ao Sylius
Guia passo a passo para a plataforma de e-commerce Sylius
Passo 1: Obtenha Seu Código de Incorporação
Primeiro, acesse seu Dashboard Asyntai e role para baixo até a seção "Embed Code". Copie seu código de incorporação exclusivo que se parecerá com isto:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Nota: O código acima é apenas um exemplo. Você deve copiar seu próprio código de incorporação exclusivo do seu Dashboard, pois ele contém seu ID de widget pessoal.
Passo 2: Adicionar ao Template de Layout Twig (Recomendado)
O Sylius é construído sobre o Symfony e usa o motor de templates Twig. A abordagem recomendada é sobrescrever o template de layout da loja para incluir o chatbot em todas as páginas da vitrine.
- No seu projeto Sylius, navegue até o diretório
templates/bundles/SyliusShopBundle/(crie-o se não existir) - Crie ou edite o arquivo layout.html.twig para sobrescrever o layout padrão da loja
- Se o arquivo já existir, encontre o
{% block javascripts %}bloco - Adicione o código de incorporação Asyntai estendendo o bloco javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Substitua
YOUR_WIDGET_IDpelo ID real do seu widget no painel - Salve o arquivo
Dica: 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.
Método Alternativo 1: Usando Eventos de Template do Sylius
O Sylius oferece um poderoso sistema de eventos de template que permite injetar conteúdo em partes específicas do layout sem sobrescrever templates inteiros. Você pode usar isso para adicionar o widget de chatbot à área do rodapé.
- Crie um novo arquivo de template em
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigcom o seguinte conteúdo:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registre o evento de template no seu arquivo de configuração
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 - Substitua
YOUR_WIDGET_IDpelo seu ID de widget real - Limpe o cache do Symfony (veja o Passo 3 abaixo)
Nota: A abordagem de eventos de template é o método menos invasivo. Não requer a sobrescrita de nenhum template existente e se integra de forma limpa com a arquitetura do Sylius. O valor priority controla a ordem de renderização se múltiplos blocos forem registrados para o mesmo evento.
Método Alternativo 2: Usando Webpack Encore
Se seu projeto Sylius usa Webpack Encore para gerenciamento de assets, você pode integrar o script do chatbot através do seu pipeline de build JavaScript.
- Crie um novo arquivo JavaScript em
assets/shop/js/asyntai-chatbot.jscom o seguinte conteúdo:(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);
})(); - Importe este arquivo no ponto de entrada da sua loja (ex.:
assets/shop/entry.jsouassets/shop/js/app.js):import './js/asyntai-chatbot'; - Reconstrua seus assets executando:
yarn encore devOu para produção:
yarn encore production - Substitua
YOUR_WIDGET_IDpelo seu ID de widget real
Dica: Usar o Webpack Encore garante que o script do chatbot seja empacotado com seus outros assets e se beneficie do cache e otimização fornecidos pela ferramenta de build.
Método Alternativo 3: Usando o Sonata Block Bundle
Se sua instalação do Sylius usa o Sonata Block Bundle (incluído por padrão em algumas configurações do Sylius), você pode criar um serviço de bloco personalizado para renderizar o widget de chatbot.
- Crie uma nova classe de serviço de bloco no seu projeto, por exemplo
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);
}
} - Crie o template do bloco em
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registre o serviço de bloco no seu
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Coloque o bloco no contexto do rodapé através do admin do Sonata ou adicionando-o à configuração do seu layout
- Substitua
YOUR_WIDGET_IDpelo seu ID de widget real
Importante: A abordagem do Sonata Block requer mais configuração, mas oferece flexibilidade para gerenciar o bloco do chatbot através da interface admin. Certifique-se de que o Sonata Block Bundle está instalado e configurado no seu projeto Sylius antes de usar este método.
Etapa 3: Limpar Cache e Verificar
Após fazer suas alterações, você precisa limpar o cache do Symfony e verificar a instalação:
- Limpe o cache do Symfony executando o seguinte comando a partir da raiz do seu projeto:
bin/console cache:clear - Se você está em um ambiente de produção, também aqueça o cache:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Abra seu site em uma nova aba do navegador ou janela anônima
- Você deverá ver o botão do widget de chat no canto inferior direito
- Clique nele para confirmar que abre e funciona corretamente
Não está vendo o widget? Certifique-se de que limpou o cache do Symfony com bin/console cache:clear. Verifique se a sobrescrita do template está no diretório correto (templates/bundles/SyliusShopBundle/). Tente limpar o cache do navegador ou visualizar em uma janela anônima. Verifique o console de desenvolvedor do navegador para erros de JavaScript. Se estiver usando Webpack Encore, certifique-se de que reconstruiu os assets.
Nota sobre Versão do Sylius: Os caminhos de sobrescrita de template podem variar ligeiramente entre as versões do Sylius. No Sylius 1.x, os templates do bundle da loja estão localizados em templates/bundles/SyliusShopBundle/. Consulte a documentação do Sylius para o caminho de sobrescrita correto se estiver usando uma versão diferente.
Weebly