Înapoi la tabloul de bord

Documentație

Aflați cum să utilizați Asyntai

Cum să adăugați Chatbot-ul AI Asyntai în Sylius

Ghid pas cu pas pentru platforma de e-commerce Sylius

Obține codul de încorporare

Pasul 1: Obțineți codul de încorporare

Mai întâi, accesați Tabloul de bord Asyntai și derulați în jos până la secțiunea "Cod de încorporare". Copiați codul unic de încorporare care va arăta astfel:

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

Notă: Codul de mai sus este doar un exemplu. Trebuie să copiați propriul cod unic de încorporare din Tabloul de bord, deoarece conține ID-ul personal al widgetului dvs.

Pasul 2: Adăugați în șablonul Twig Layout (Recomandat)

Sylius este construit pe Symfony și utilizează motorul de șabloane Twig. Abordarea recomandată este să suprascrieți șablonul de layout al magazinului pentru a include chatbotul pe toate paginile vitrinei.

  1. În proiectul dvs. Sylius, navigați la directorul templates/bundles/SyliusShopBundle/ (creați-l dacă nu există)
  2. Creați sau editați fișierul layout.html.twig pentru a suprascrie layout-ul implicit al magazinului
  3. Dacă fișierul există deja, găsiți {% block javascripts %} blocul
  4. Adăugați codul de integrare Asyntai prin extinderea blocului javascripts:
    {% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %}
  5. Înlocuiți YOUR_WIDGET_ID cu ID-ul real al widget-ului din tabloul de bord
  6. Salvați fișierul

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

Metoda alternativă 1: Utilizarea evenimentelor de șablon Sylius

Sylius oferă un sistem puternic de evenimente de șablon care vă permite să injectați conținut în părți specifice ale layout-ului fără a suprascrie șabloane întregi. Puteți folosi acest lucru pentru a adăuga widgetul chatbot în zona footer.

  1. Creați un fișier de șablon nou la templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twig cu următorul conținut:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  2. Înregistrați evenimentul de șablon în fișierul de configurare 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. Înlocuiți YOUR_WIDGET_ID cu ID-ul real al widget-ului dvs.
  4. Goliți memoria cache Symfony (vezi Pasul 3 mai jos)

Notă: Abordarea cu evenimente de șablon este cea mai non-invazivă metodă. Nu necesită suprascrierea niciunui șablon existent și se integrează curat cu arhitectura Sylius. Valoarea priority controlează ordinea de randare dacă mai multe blocuri sunt înregistrate pentru același eveniment.

Metoda alternativă 2: Utilizarea Webpack Encore

Dacă proiectul dvs. Sylius utilizează Webpack Encore pentru gestionarea activelor, puteți integra scriptul chatbotului prin pipeline-ul de compilare JavaScript.

  1. Creați un fișier JavaScript nou la assets/shop/js/asyntai-chatbot.js cu următorul conținut:
    (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. Importați acest fișier în punctul de intrare al magazinului (de ex., assets/shop/entry.js sau assets/shop/js/app.js):
    import './js/asyntai-chatbot';
  3. Recompilați activele rulând:
    yarn encore dev

    Sau pentru producție:

    yarn encore production
  4. Înlocuiți YOUR_WIDGET_ID cu ID-ul real al widget-ului dvs.

Sfat: Utilizarea Webpack Encore asigură că scriptul chatbotului este inclus în pachetul cu celelalte active și beneficiază de caching și optimizare oferite de instrumentul de compilare.

Metoda alternativă 3: Utilizarea Sonata Block Bundle

Dacă instalarea dvs. Sylius utilizează Sonata Block Bundle (inclus implicit în unele configurații Sylius), puteți crea un serviciu de bloc personalizat pentru a randa widgetul chatbot.

  1. Creați o nouă clasă de serviciu de bloc în proiectul dvs., de exemplu 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. Creați șablonul de bloc la 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. Înregistrați serviciul de bloc în config/services.yaml:
    services:
        app.block.asyntai_chatbot:
            class: App\Block\AsyntaiChatbotBlockService
            arguments:
                - '@twig'
            tags:
                - { name: sonata.block, context: footer }
  4. Plasați blocul în contextul footer-ului prin interfața Sonata admin sau adăugându-l la configurația layout-ului
  5. Înlocuiți YOUR_WIDGET_ID cu ID-ul real al widget-ului dvs.

Important: Abordarea Sonata Block necesită mai multă configurare, dar oferă flexibilitate pentru a gestiona blocul chatbot prin interfața de administrare. Asigurați-vă că Sonata Block Bundle este instalat și configurat în proiectul dvs. Sylius înainte de a utiliza această metodă.

Pasul 3: Goliți memoria cache și verificați

După efectuarea modificărilor, trebuie să goliți memoria cache Symfony și să verificați instalarea:

  1. Goliți memoria cache Symfony rulând următoarea comandă din rădăcina proiectului:
    bin/console cache:clear
  2. Dacă sunteți într-un mediu de producție, încălziți și memoria cache:
    bin/console cache:clear --env=prod
    bin/console cache:warmup --env=prod
  3. Deschideți vitrina live într-o filă nouă de browser
  4. Ar trebui să vedeți butonul widgetului de chat în colțul din dreapta jos
  5. Faceți clic pe el pentru a vă asigura că se deschide și funcționează corect

Nu vedeți widgetul? Asigurați-vă că ați golit memoria cache Symfony cu bin/console cache:clear. Verificați dacă suprascrierea șablonului se află în directorul corect (templates/bundles/SyliusShopBundle/). Încercați să goliți memoria cache a browserului sau să vizualizați într-o fereastră incognito. Verificați consola de dezvoltare a browserului pentru erori JavaScript. Dacă utilizați Webpack Encore, asigurați-vă că ați recompilat activele.

Notă privind versiunea Sylius: Căile de suprascriere a șabloanelor pot varia ușor între versiunile Sylius. În Sylius 1.x, șabloanele bundle-ului magazinului se află sub templates/bundles/SyliusShopBundle/. Verificați documentația Sylius pentru calea corectă de suprascriere dacă utilizați o versiune diferită.