So fügen Sie den Asyntai AI Chatbot zu Sylius hinzu
Schritt-für-Schritt-Anleitung für die Sylius E-Commerce-Plattform
Schritt 1: Ihren Einbettungscode erhalten
Gehen Sie zunächst zu Ihrem Asyntai Dashboard und scrollen Sie zum Abschnitt "Einbettungscode". Kopieren Sie Ihren einzigartigen Einbettungscode, der so aussieht:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Hinweis: Der obige Code ist nur ein Beispiel. Sie müssen Ihren eigenen einzigartigen Einbettungscode von Ihrem Dashboard kopieren, da er Ihre persönliche Widget-ID enthält.
Schritt 2: Zur Twig-Layout-Vorlage hinzufügen (empfohlen)
Sylius basiert auf Symfony und verwendet die Twig-Template-Engine. Der empfohlene Ansatz ist, die Shop-Layout-Vorlage zu überschreiben, um den Chatbot auf allen Storefront-Seiten einzubinden.
- Navigieren Sie in Ihrem Sylius-Projekt zum Verzeichnis
templates/bundles/SyliusShopBundle/(erstellen Sie es, falls es nicht existiert) - Erstellen oder bearbeiten Sie die Datei layout.html.twig, um das Standard-Shop-Layout zu überschreiben
- Wenn die Datei bereits existiert, finden Sie den
{% block javascripts %}Block - Fügen Sie den Asyntai-Einbettungscode hinzu, indem Sie den JavaScript-Block erweitern:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Ersetzen Sie
YOUR_WIDGET_IDdurch Ihre tatsächliche Widget-ID aus dem Dashboard - Speichern Sie die Datei
Tipp: 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.
Alternative Methode 1: Sylius Template-Events verwenden
Sylius bietet ein leistungsfähiges Template-Event-System, mit dem Sie Inhalte in bestimmte Teile des Layouts einfügen können, ohne ganze Vorlagen zu überschreiben. Sie können dies verwenden, um das Chatbot-Widget im Footer-Bereich hinzuzufügen.
- Erstellen Sie eine neue Vorlagendatei unter
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigmit folgendem Inhalt:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registrieren Sie das Template-Event in Ihrer Konfigurationsdatei
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 - Ersetzen Sie
YOUR_WIDGET_IDdurch Ihre tatsächliche Widget-ID - Leeren Sie den Symfony-Cache (siehe Schritt 3 unten)
Hinweis: Der Template-Event-Ansatz ist die am wenigsten invasive Methode. Er erfordert kein Überschreiben bestehender Vorlagen und integriert sich sauber in die Architektur von Sylius. Der priority-Wert steuert die Renderreihenfolge, wenn mehrere Blöcke für dasselbe Event registriert sind.
Alternative Methode 2: Webpack Encore verwenden
Wenn Ihr Sylius-Projekt Webpack Encore für die Asset-Verwaltung verwendet, können Sie das Chatbot-Skript über Ihre JavaScript-Build-Pipeline integrieren.
- Erstellen Sie eine neue JavaScript-Datei unter
assets/shop/js/asyntai-chatbot.jsmit folgendem Inhalt:(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);
})(); - Importieren Sie diese Datei in Ihren Shop-Einstiegspunkt (z. B.
assets/shop/entry.jsoderassets/shop/js/app.js):import './js/asyntai-chatbot'; - Bauen Sie Ihre Assets neu, indem Sie Folgendes ausführen:
yarn encore devOder für die Produktion:
yarn encore production - Ersetzen Sie
YOUR_WIDGET_IDdurch Ihre tatsächliche Widget-ID
Tipp: Die Verwendung von Webpack Encore stellt sicher, dass das Chatbot-Skript mit Ihren anderen Assets gebündelt wird und von Caching und Optimierung durch das Build-Tool profitiert.
Alternative Methode 3: Sonata Block Bundle verwenden
Wenn Ihre Sylius-Installation das Sonata Block Bundle verwendet (standardmäßig in einigen Sylius-Konfigurationen enthalten), können Sie einen benutzerdefinierten Block-Service erstellen, um das Chatbot-Widget zu rendern.
- Erstellen Sie eine neue Block-Service-Klasse in Ihrem Projekt, zum Beispiel
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);
}
} - Erstellen Sie die Block-Vorlage unter
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Registrieren Sie den Block-Service in Ihrer
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Platzieren Sie den Block in Ihrem Footer-Kontext über den Sonata-Adminbereich oder indem Sie ihn zu Ihrer Layout-Konfiguration hinzufügen
- Ersetzen Sie
YOUR_WIDGET_IDdurch Ihre tatsächliche Widget-ID
Wichtig: Der Sonata-Block-Ansatz erfordert mehr Einrichtung, bietet aber Flexibilität, um den Chatbot-Block über die Admin-Oberfläche zu verwalten. Stellen Sie sicher, dass das Sonata Block Bundle in Ihrem Sylius-Projekt installiert und konfiguriert ist, bevor Sie diese Methode verwenden.
Schritt 3: Cache leeren und überprüfen
Nachdem Sie Ihre Änderungen vorgenommen haben, müssen Sie den Symfony-Cache leeren und die Installation überprüfen:
- Leeren Sie den Symfony-Cache, indem Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts ausführen:
bin/console cache:clear - Wenn Sie sich in einer Produktionsumgebung befinden, wärmen Sie auch den Cache auf:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Besuchen Sie Ihren Sylius-Storefront in einem neuen Browser-Tab oder Inkognito-Fenster
- Sie sollten den Chat-Widget-Button in der unteren rechten Ecke sehen
- Klicken Sie darauf, um sicherzustellen, dass es korrekt öffnet und funktioniert
Widget nicht sichtbar? Stellen Sie sicher, dass Sie den Symfony-Cache mit bin/console cache:clear geleert haben. Überprüfen Sie, ob die Vorlagen-Überschreibung im richtigen Verzeichnis liegt (templates/bundles/SyliusShopBundle/). Versuchen Sie, Ihren Browser-Cache zu leeren oder die Seite in einem Inkognito-Fenster anzuzeigen. Überprüfen Sie die Browser-Entwicklerkonsole auf JavaScript-Fehler. Wenn Sie Webpack Encore verwenden, stellen Sie sicher, dass Sie die Assets neu gebaut haben.
Hinweis zur Sylius-Version: Die Pfade für Vorlagen-Überschreibungen können zwischen Sylius-Versionen leicht variieren. In Sylius 1.x befinden sich die Shop-Bundle-Vorlagen unter templates/bundles/SyliusShopBundle/. Überprüfen Sie Ihre Sylius-Dokumentation für den korrekten Überschreibungspfad, wenn Sie eine andere Version verwenden.
Weebly