Späť na panel

Dokumentácia

Naučte sa používať Asyntai

Ako pridať Asyntai AI Chatbot do Sylius

Podrobný návod pre e-commerce platformu Sylius

Získať vkladací kód

Krok 1: Získajte svoj vkladací kód

Najprv prejdite na svoj Asyntai Dashboard a prejdite nadol k sekcii „Vkladací kód“. Skopírujte svoj jedinečný vkladací kód, ktorý bude vyzerať takto:

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

Poznámka: Kód vyššie je len príklad. Musíte skopírovať svoj vlastný jedinečný vkladací kód zo svojho Dashboardu, pretože obsahuje vaše osobné ID widgetu.

Krok 2: Pridanie do šablóny rozloženia Twig (Odporúčané)

Sylius je postavený na Symfony a používa šablónovací engine Twig. Odporúčaný prístup je prepísať šablónu rozloženia obchodu, aby zahŕňala chatbota na všetkých stránkach obchodu.

  1. Vo vašom projekte Sylius prejdite do adresára templates/bundles/SyliusShopBundle/ (vytvorte ho, ak neexistuje)
  2. Vytvorte alebo upravte súbor layout.html.twig na prepísanie predvoleného rozloženia obchodu
  3. Ak súbor už existuje, nájdite {% block javascripts %} blok
  4. Pridajte vkladací kód Asyntai rozšírením bloku javascripts:
    {% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %}
  5. Nahradte YOUR_WIDGET_ID vasim skutocnym ID widgetu z dashboardu
  6. Uložte súbor

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.

Alternatívna metóda 1: Pomocou udalostí šablón Sylius

Sylius poskytuje výkonný systém udalostí šablón, ktorý vám umožňuje vkladať obsah do konkrétnych častí rozloženia bez prepisovania celých šablón. Môžete ho použiť na pridanie chatového widgetu do oblasti pätičky.

  1. Vytvorte nový súbor šablóny na templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twig s nasledujúcim obsahom:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  2. Zaregistrujte udalosť šablóny v konfiguračnom súbore 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. Nahraďte YOUR_WIDGET_ID vaším skutočným ID widgetu
  4. Vymažte vyrovnávaciu pamäť Symfony (pozri Krok 3 nižšie)

Poznámka: Prístup udalostí šablón je najmenej invazívna metóda. Nevyžaduje prepísanie žiadnych existujúcich šablón a čisto sa integruje s architektúrou Sylius. Hodnota priority riadi poradie vykresľovania, ak je pre rovnakú udalosť zaregistrovaných viacero blokov.

Alternatívna metóda 2: Pomocou Webpack Encore

Ak váš projekt Sylius používa Webpack Encore na správu aktív, môžete integrovať skript chatbota cez váš JavaScript build pipeline.

  1. Vytvorte nový JavaScript súbor na assets/shop/js/asyntai-chatbot.js s nasledujúcim obsahom:
    (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. Importujte tento súbor do vstupného bodu vášho obchodu (napr. assets/shop/entry.js alebo assets/shop/js/app.js):
    import './js/asyntai-chatbot';
  3. Znovu zostavte svoje assety spustením:
    yarn encore dev

    Alebo pre produkciu:

    yarn encore production
  4. Nahraďte YOUR_WIDGET_ID vaším skutočným ID widgetu

Tip: Použitie Webpack Encore zabezpečuje, že skript chatbota je zabalený s vašimi ostatnými aktívami a benefituje z vyrovnávacej pamäte a optimalizácie poskytovanej nástrojom na zostavenie.

Alternatívna metóda 3: Pomocou Sonata Block Bundle

Ak vaša inštalácia Sylius používa Sonata Block Bundle (predvolene zahrnuté v niektorých konfiguráciách Sylius), môžete vytvoriť vlastnú blokovú službu na vykreslenie chatového widgetu.

  1. Vytvorte novú triedu blokovej služby vo vašom projekte, napríklad 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. Vytvorte šablónu bloku na 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. Zaregistrujte blokovú službu v config/services.yaml:
    services:
        app.block.asyntai_chatbot:
            class: App\Block\AsyntaiChatbotBlockService
            arguments:
                - '@twig'
            tags:
                - { name: sonata.block, context: footer }
  4. Umiestnite blok do kontextu pätičky cez administráciu Sonata alebo pridaním do konfigurácie rozloženia
  5. Nahraďte YOUR_WIDGET_ID vaším skutočným ID widgetu

Dôležité: Prístup Sonata Block vyžaduje viac nastavení, ale poskytuje flexibilitu na správu bloku chatbota cez administrátorské rozhranie. Pred použitím tejto metódy sa uistite, že Sonata Block Bundle je nainštalovaný a nakonfigurovaný vo vašom projekte Sylius.

Krok 3: Vymazanie vyrovnávacej pamäte a overenie

Po vykonaní zmien musíte vymazať vyrovnávaciu pamäť Symfony a overiť inštaláciu:

  1. Vymažte vyrovnávaciu pamäť Symfony spustením nasledujúceho príkazu z koreňa vášho projektu:
    bin/console cache:clear
  2. Ak ste v produkčnom prostredí, tiež zahrejte vyrovnávaciu pamäť:
    bin/console cache:clear --env=prod
    bin/console cache:warmup --env=prod
  3. Navštívte obchod Sylius v novej záložke prehliadača alebo v okne inkognito
  4. Mali by ste vidieť tlačidlo chatového widgetu v pravom dolnom rohu
  5. Kliknite naň, aby ste sa uistili, že sa otvára a funguje správne

Nevidíte widget? Uistite sa, že ste vymazali vyrovnávaciu pamäť Symfony príkazom bin/console cache:clear. Overte, že prepísanie šablóny je v správnom adresári (templates/bundles/SyliusShopBundle/). Skúste vymazať vyrovnávaciu pamäť prehliadača alebo zobraziť stránku v okne inkognito. Skontrolujte vývojársku konzolu prehliadača, či neobsahuje chyby JavaScript. Ak používate Webpack Encore, uistite sa, že ste prestavili aktíva.

Poznámka k verzii Sylius: Cesty na prepísanie šablón sa môžu mierne líšiť medzi verziami Sylius. V Sylius 1.x sa šablóny balíka obchodu nachádzajú pod templates/bundles/SyliusShopBundle/. Skontrolujte dokumentáciu Sylius pre správnu cestu prepísania, ak používate inú verziu.