Zurück zum Dashboard

Dokumentation

Erfahren Sie, wie Sie Asyntai verwenden

So fügen Sie den Asyntai AI Chatbot zu Sylius hinzu

Schritt-für-Schritt-Anleitung für die Sylius E-Commerce-Plattform

Einbettungscode erhalten

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.

  1. Navigieren Sie in Ihrem Sylius-Projekt zum Verzeichnis templates/bundles/SyliusShopBundle/ (erstellen Sie es, falls es nicht existiert)
  2. Erstellen oder bearbeiten Sie die Datei layout.html.twig, um das Standard-Shop-Layout zu überschreiben
  3. Wenn die Datei bereits existiert, finden Sie den {% block javascripts %} Block
  4. 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 %}
  5. Ersetzen Sie YOUR_WIDGET_ID durch Ihre tatsächliche Widget-ID aus dem Dashboard
  6. 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.

  1. Erstellen Sie eine neue Vorlagendatei unter templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twig mit folgendem Inhalt:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  2. 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
  3. Ersetzen Sie YOUR_WIDGET_ID durch Ihre tatsächliche Widget-ID
  4. 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.

  1. Erstellen Sie eine neue JavaScript-Datei unter assets/shop/js/asyntai-chatbot.js mit 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);
    })();
  2. Importieren Sie diese Datei in Ihren Shop-Einstiegspunkt (z. B. assets/shop/entry.js oder assets/shop/js/app.js):
    import './js/asyntai-chatbot';
  3. Bauen Sie Ihre Assets neu, indem Sie Folgendes ausführen:
    yarn encore dev

    Oder für die Produktion:

    yarn encore production
  4. Ersetzen Sie YOUR_WIDGET_ID durch 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.

  1. 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);
        }
    }
  2. 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>
  3. 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 }
  4. Platzieren Sie den Block in Ihrem Footer-Kontext über den Sonata-Adminbereich oder indem Sie ihn zu Ihrer Layout-Konfiguration hinzufügen
  5. Ersetzen Sie YOUR_WIDGET_ID durch 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:

  1. Leeren Sie den Symfony-Cache, indem Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts ausführen:
    bin/console cache:clear
  2. 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
  3. Besuchen Sie Ihren Sylius-Storefront in einem neuen Browser-Tab oder Inkognito-Fenster
  4. Sie sollten den Chat-Widget-Button in der unteren rechten Ecke sehen
  5. 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.