Come aggiungere il chatbot IA Asyntai a Sylius
Guida passo passo per la piattaforma e-commerce Sylius
Passaggio 1: ottieni il tuo codice di incorporamento
Per prima cosa, vai alla tua Dashboard Asyntai e scorri fino alla sezione "Codice di incorporamento". Copia il tuo codice di incorporamento univoco che apparirà così:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Nota: Il codice sopra è solo un esempio. Devi copiare il tuo codice di incorporamento univoco dalla tua Dashboard poiché contiene il tuo ID widget personale.
Passaggio 2: aggiungi al template di layout Twig (consigliato)
Sylius è costruito su Symfony e utilizza il motore di templating Twig. L'approccio consigliato è sovrascrivere il template di layout dello shop per includere il chatbot su tutte le pagine del negozio.
- Nel tuo progetto Sylius, vai alla directory
templates/bundles/SyliusShopBundle/(creala se non esiste) - Crea o modifica il file layout.html.twig per sovrascrivere il layout predefinito dello shop
- Se il file esiste già, trova il
{% block javascripts %}blocco - Aggiungi il codice di incorporamento Asyntai estendendo il blocco javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Sostituisci
YOUR_WIDGET_IDcon l'ID widget effettivo dalla dashboard - Salva il file
Suggerimento: 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.
Metodo alternativo 1: uso degli eventi template di Sylius
Sylius fornisce un potente sistema di eventi template che ti permette di iniettare contenuti in parti specifiche del layout senza sovrascrivere interi template. Puoi usarlo per aggiungere il widget chatbot nell'area del footer.
- Crea un nuovo file di template in
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigcon il seguente contenuto:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registra l'evento template nel tuo file di configurazione
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 - Sostituisci
YOUR_WIDGET_IDcon il tuo ID widget effettivo - Svuota la cache di Symfony (vedi passaggio 3 di seguito)
Nota: L'approccio con eventi template è il metodo meno invasivo. Non richiede la sovrascrittura di template esistenti e si integra in modo pulito con l'architettura di Sylius. Il valore priority controlla l'ordine di rendering se più blocchi sono registrati per lo stesso evento.
Metodo alternativo 2: uso di Webpack Encore
Se il tuo progetto Sylius utilizza Webpack Encore per la gestione degli asset, puoi integrare lo script del chatbot attraverso la pipeline di build JavaScript.
- Crea un nuovo file JavaScript in
assets/shop/js/asyntai-chatbot.jscon il seguente contenuto:(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 questo file nel punto di ingresso del tuo shop (es.,
assets/shop/entry.jsoassets/shop/js/app.js):import './js/asyntai-chatbot'; - Ricompila i tuoi asset eseguendo:
yarn encore devOppure per la produzione:
yarn encore production - Sostituisci
YOUR_WIDGET_IDcon il tuo ID widget effettivo
Suggerimento: L'uso di Webpack Encore garantisce che lo script del chatbot sia integrato con gli altri asset e benefici della cache e dell'ottimizzazione fornite dallo strumento di build.
Metodo alternativo 3: uso del Sonata Block Bundle
Se la tua installazione Sylius utilizza il Sonata Block Bundle (incluso per impostazione predefinita in alcune configurazioni di Sylius), puoi creare un servizio di blocco personalizzato per renderizzare il widget chatbot.
- Crea una nuova classe di servizio di blocco nel tuo progetto, ad esempio
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);
}
} - Crea il template del blocco in
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 il servizio di blocco nel tuo
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Posiziona il blocco nel contesto del footer tramite l'amministrazione Sonata o aggiungendolo alla configurazione del layout
- Sostituisci
YOUR_WIDGET_IDcon il tuo ID widget effettivo
Importante: L'approccio Sonata Block richiede più configurazione ma offre la flessibilità di gestire il blocco del chatbot tramite l'interfaccia di amministrazione. Assicurati che il Sonata Block Bundle sia installato e configurato nel tuo progetto Sylius prima di usare questo metodo.
Passaggio 3: Svuota la cache e verifica
Dopo aver apportato le modifiche, devi svuotare la cache di Symfony e verificare l'installazione:
- Svuota la cache di Symfony eseguendo il seguente comando dalla root del tuo progetto:
bin/console cache:clear - Se sei in un ambiente di produzione, effettua anche il riscaldamento della cache:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Visita il tuo storefront Sylius in una nuova scheda del browser o in una finestra di navigazione in incognito
- Dovresti vedere il pulsante del widget chat nell'angolo in basso a destra della tua pagina
- Cliccaci sopra per assicurarti che si apra e funzioni correttamente
Non vedi il widget? Assicurati di aver svuotato la cache di Symfony con bin/console cache:clear. Verifica che la sovrascrittura del template sia nella directory corretta (templates/bundles/SyliusShopBundle/). Prova a svuotare la cache del browser o a visualizzare in una finestra di navigazione in incognito. Controlla la console per sviluppatori del browser per eventuali errori JavaScript. Se usi Webpack Encore, assicurati di aver ricompilato gli asset.
Nota sulla versione di Sylius: I percorsi di sovrascrittura dei template possono variare leggermente tra le versioni di Sylius. In Sylius 1.x, i template del bundle dello shop si trovano sotto templates/bundles/SyliusShopBundle/. Consulta la documentazione di Sylius per il percorso di sovrascrittura corretto se stai usando una versione diversa.
Weebly