Sådan tilføjer du Asyntai AI-chatbot til Sylius

Trin-for-trin-vejledning til Sylius e-handelsplatformen

Hent indlejringskode

Trin 1: Hent din indlejringskode

Gå først til dit Asyntai Dashboard og rul ned til sektionen "Indlejringskode". Kopiér din unikke indlejringskode, der vil se sådan ud:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>

Bemærk: Koden ovenfor er blot et eksempel. Du skal kopiere din egen unikke indlejringskode fra dit Dashboard, da den indeholder dit personlige widget-ID.

Trin 2: Tilføj til Twig-layoutskabelon (anbefalet)

Sylius er bygget på Symfony og bruger Twig-skabelonmotoren. Den anbefalede tilgang er at tilsidesætte butikkens layoutskabelon for at inkludere chatbotten på alle butikssidesider.

  1. I dit Sylius-projekt skal du navigere til mappen templates/bundles/SyliusShopBundle/ (opret den, hvis den ikke eksisterer)
  2. Opret eller rediger filen layout.html.twig for at tilsidesætte standardbutikkens layout
  3. Hvis filen allerede eksisterer, skal du finde {% block javascripts %} blokken
  4. Tilføj Asyntai-indlejringskoden ved at udvide javascripts-blokken:
    {% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %}
  5. Erstat YOUR_WIDGET_ID med dit faktiske widget-ID fra dashboardet
  6. Gem filen

Tip: 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.

Alternativ metode 1: Brug af Sylius-skabelonbegivenheder

Sylius tilbyder et kraftfuldt skabelonbegivenhedssystem, der giver dig mulighed for at injicere indhold i specifikke dele af layoutet uden at tilsidesætte hele skabeloner. Du kan bruge dette til at tilføje chatbot-widgetten til sidefodsområdet.

  1. Opret en ny skabelonfil på templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twig med følgende indhold:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  2. Registrer skabelonbegivenheden i din config/packages/sylius_ui.yaml-konfigurationsfil:
    sylius_ui:
        events:
            sylius.shop.layout.after_body:
                blocks:
                    asyntai_chatbot:
                        template: "@SyliusShop/Event/asyntai_widget.html.twig"
                        priority: 0
  3. Erstat YOUR_WIDGET_ID med dit faktiske widget-ID
  4. Ryd Symfony-cachen (se trin 3 nedenfor)

Bemærk: Skabelonbegivenheds-tilgangen er den mindst invasive metode. Den kræver ikke tilsidesættelse af eksisterende skabeloner og integreres rent med Sylius' arkitektur. Værdien priority styrer gengivelsesordenen, hvis flere blokke er registreret for den samme begivenhed.

Alternativ metode 2: Brug af Webpack Encore

Hvis dit Sylius-projekt bruger Webpack Encore til ressourcestyring, kan du integrere chatbot-scriptet via din JavaScript-byggepipeline.

  1. Opret en ny JavaScript-fil på assets/shop/js/asyntai-chatbot.js med følgende indhold:
    (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. Importer denne fil i dit butiks-indgangspunkt (f.eks. assets/shop/entry.js eller assets/shop/js/app.js):
    import './js/asyntai-chatbot';
  3. Genopbyg dine ressourcer ved at køre:
    yarn encore dev

    Eller til produktion:

    yarn encore production
  4. Erstat YOUR_WIDGET_ID med dit faktiske widget-ID

Tip: Brug af Webpack Encore sikrer, at chatbot-scriptet pakkes med dine andre ressourcer og drager fordel af caching og optimering leveret af byggeredskabet.

Alternativ metode 3: Brug af Sonata Block Bundle

Hvis din Sylius-installation bruger Sonata Block Bundle (inkluderet som standard i nogle Sylius-konfigurationer), kan du oprette en brugerdefineret blokservice til at rendere chatbot-widgetten.

  1. Opret en ny blokserviceklasse i dit projekt, for eksempel 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. Opret blokskabelonen på 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. Registrer blokservicen i din config/services.yaml:
    services:
        app.block.asyntai_chatbot:
            class: App\Block\AsyntaiChatbotBlockService
            arguments:
                - '@twig'
            tags:
                - { name: sonata.block, context: footer }
  4. Placer blokken i din sidefodskontekst via Sonata-admin eller ved at tilføje den til din layoutkonfiguration
  5. Erstat YOUR_WIDGET_ID med dit faktiske widget-ID

Vigtigt: Sonata Block-tilgangen kræver mere opsætning, men giver fleksibilitet til at administrere chatbot-blokken via admingrænsefladen. Sørg for, at Sonata Block Bundle er installeret og konfigureret i dit Sylius-projekt, inden du bruger denne metode.

Trin 3: Ryd cache og verificér

Efter at have foretaget dine ændringer skal du rydde Symfony-cachen og bekræfte installationen:

  1. Ryd Symfony-cachen ved at køre følgende kommando fra din projektrod:
    bin/console cache:clear
  2. Hvis du er i et produktionsmiljø, skal du også varme cachen op:
    bin/console cache:clear --env=prod
    bin/console cache:warmup --env=prod
  3. Besøg din Sylius-butiksfront i en ny browserfane eller inkognitovindue
  4. Du bør se chat-widget-knappen i nederste højre hjørne
  5. Klik på den for at sikre, at den åbner og fungerer korrekt

Ser du ikke widget'en? Sørg for, at du ryddede Symfony-cachen med bin/console cache:clear. Bekræft, at skabelontilsidesættelsen er i den korrekte mappe (templates/bundles/SyliusShopBundle/). Prøv at rydde din browsercache eller se siden i et inkognitovindue. Tjek browserens udviklerkonsol for eventuelle JavaScript-fejl. Hvis du bruger Webpack Encore, skal du sikre, at du har genopbygget ressourcerne.

Bemærkning om Sylius-version: Stier til tilsidesættelse af skabeloner kan variere lidt mellem Sylius-versioner. I Sylius 1.x er butiksbundtskabelonerne placeret under templates/bundles/SyliusShopBundle/. Tjek din Sylius-dokumentation for den korrekte tilsidesættelsessti, hvis du bruger en anden version.