Cómo añadir el chatbot de IA de Asyntai a Sylius
Guía paso a paso para la plataforma de e-commerce Sylius
Paso 1: Obtén su código de inserción
Primero, ve a tu Panel de control de Asyntai y desplázate hasta la sección "Código de inserción". Copia tu código de inserción único que se verá así:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Nota: El código anterior es solo un ejemplo. Debe copiar su propio código de inserción único desde su Panel de control ya que contiene su ID de widget personal.
Paso 2: Añadir a la plantilla de layout Twig (Recomendado)
Sylius está construido sobre Symfony y usa el motor de plantillas Twig. El enfoque recomendado es sobrescribir la plantilla de layout de la tienda para incluir el chatbot en todas las páginas del storefront.
- En su proyecto Sylius, navegue al directorio
templates/bundles/SyliusShopBundle/(crealo si no existe) - Cree o edita el archivo layout.html.twig para sobrescribir el layout predeterminado de la tienda
- Si el archivo ya existe, encuentra el
{% block javascripts %}bloque - Agrega el código de incrustación de Asyntai extendiendo el bloque javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Reemplace
YOUR_WIDGET_IDcon su ID de widget real del panel de control - Guarde el archivo
Consejo: 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: Usar eventos de plantilla de Sylius
Sylius proporciona un potente sistema de eventos de plantilla que le permite inyectar contenido en partes específicas del layout sin sobrescribir plantillas completas. Puede usar esto para agregar el widget del chatbot al area de pie de página.
- Cree un nuevo archivo de plantilla en
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigcon el siguiente contenido:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registra el evento de plantilla en su archivo de configuración
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 - Reemplaza
YOUR_WIDGET_IDcon su ID de widget real - Limpie la caché de Symfony (consulte el Paso 3 a continuación)
Nota: El enfoque de eventos de plantilla es el método menos invasivo. No requiere sobrescribir ninguna plantilla existente y se integra de forma limpia con la arquitectura de Sylius. El valor de priority controla el orden de renderizado si se registran multiples bloques para el mismo evento.
Método alternativo 2: Usar Webpack Encore
Si su proyecto Sylius usa Webpack Encore para la gestión de recursos, puede integrar el script del chatbot a través de su pipeline de compilación de JavaScript.
- Cree un nuevo archivo JavaScript en
assets/shop/js/asyntai-chatbot.jscon el siguiente contenido:(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);
})(); - Importa este archivo en su punto de entrada de la tienda (por ejemplo,
assets/shop/entry.jsoassets/shop/js/app.js):import './js/asyntai-chatbot'; - Reconstruya sus assets ejecutando:
yarn encore devO para producción:
yarn encore production - Reemplaza
YOUR_WIDGET_IDcon su ID de widget real
Consejo: Usar Webpack Encore asegura que el script del chatbot se empaquete con sus otros recursos y se beneficie del almacenamiento en cache y la optimizacion proporcionados por la herramienta de compilacion.
Método alternativo 3: Usar Sonata Block Bundle
Si su instalación de Sylius usa el Sonata Block Bundle (incluido por defecto en algunas configuraciones de Sylius), puede crear un servicio de bloque personalizado para renderizar el widget del chatbot.
- Cree una nueva clase de servicio de bloque en su proyecto, por ejemplo
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);
}
} - Cree la plantilla del bloque en
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registra el servicio de bloque en tu
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Coloque el bloque en su contexto de pie de página a traves del admin de Sonata o agregandolo a la configuración de su layout
- Reemplaza
YOUR_WIDGET_IDcon su ID de widget real
Importante: El enfoque de Sonata Block requiere mas configuración pero proporciona flexibilidad para gestionar el bloque del chatbot a traves de la interfaz de administracion. Asegurate de que el Sonata Block Bundle este instalado y configurado en su proyecto Sylius antes de usar este método.
Paso 3: Limpiar caché y verificar
Después de realizar sus cambios, necesita vaciar la cache de Symfony y verificar la instalación:
- Vacíe la caché de Symfony ejecutando el siguiente comando desde la raíz de su proyecto:
bin/console cache:clear - Si está en un entorno de producción, también precaliente la caché:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Visita tu tienda de Sylius en una nueva pestaña del navegador o ventana de incógnito
- Deberías ver el botón del widget de chat en la esquina inferior derecha
- Haz clic en él para asegurarte de que se abre y funciona correctamente
¿No ves el widget? Asegurate de haber vaciado la cache de Symfony con bin/console cache:clear. Verifique que la sobrescritura de plantilla este en el directorio correcto (templates/bundles/SyliusShopBundle/). Intenta limpiar la cache del navegador o ver la página en una ventana de incognito. Revise la consola de desarrollador del navegador en busca de errores de JavaScript. Si usas Webpack Encore, asegurate de haber recompilado los recursos.
Nota sobre la versión de Sylius: Las rutas de sobrescritura de plantillas pueden variar ligeramente entre versiones de Sylius. En Sylius 1.x, las plantillas del bundle de tienda se encuentran en templates/bundles/SyliusShopBundle/. Consulta la documentación de Sylius para la ruta de sobrescritura correcta si estas usando una version diferente.
Weebly