Cum să adăugați Chatbot-ul AI Asyntai în Sylius
Ghid pas cu pas pentru platforma de e-commerce Sylius
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.
- În proiectul dvs. Sylius, navigați la directorul
templates/bundles/SyliusShopBundle/(creați-l dacă nu există) - Creați sau editați fișierul layout.html.twig pentru a suprascrie layout-ul implicit al magazinului
- Dacă fișierul există deja, găsiți
{% block javascripts %}blocul - 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 %} - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului din tabloul de bord - 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.
- Creați un fișier de șablon nou la
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigcu următorul conținut:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Î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 - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului dvs. - 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.
- Creați un fișier JavaScript nou la
assets/shop/js/asyntai-chatbot.jscu 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);
})(); - Importați acest fișier în punctul de intrare al magazinului (de ex.,
assets/shop/entry.jssauassets/shop/js/app.js):import './js/asyntai-chatbot'; - Recompilați activele rulând:
yarn encore devSau pentru producție:
yarn encore production - Înlocuiți
YOUR_WIDGET_IDcu 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.
- 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);
}
} - 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> - Î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 } - Plasați blocul în contextul footer-ului prin interfața Sonata admin sau adăugându-l la configurația layout-ului
- Înlocuiți
YOUR_WIDGET_IDcu 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:
- Goliți memoria cache Symfony rulând următoarea comandă din rădăcina proiectului:
bin/console cache:clear - 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 - Deschideți vitrina live într-o filă nouă de browser
- Ar trebui să vedeți butonul widgetului de chat în colțul din dreapta jos
- 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ă.
Weebly