Jak dodać chatbota Asyntai AI do Sylius
Instrukcja krok po kroku dla platformy e-commerce Sylius
Krok 1: Pobierz swój kod osadzania
Najpierw przejdź do swojego Panelu Asyntai i przewiń w dół do sekcji "Kod osadzania". Skopiuj swój unikalny kod osadzania, który będzie wyglądał tak:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Uwaga: Powyższy kod to tylko przykład. Musisz skopiować swój własny unikalny kod osadzania z Panelu, ponieważ zawiera on Twój osobisty identyfikator widgetu.
Krok 2: Dodaj do szablonu układu Twig (zalecane)
Sylius jest zbudowany na Symfony i używa silnika szablonów Twig. Zalecanym podejsciem jest nadpisanie szablonu ukladu sklepu w celu dolaczenia chatbota na wszystkich stronach sklepu.
- W swoim projekcie Sylius przejdź do katalogu
templates/bundles/SyliusShopBundle/(utwórz go, jeśli nie istnieje) - Utwórz lub edytuj plik layout.html.twig, aby nadpisać domyślny uklad sklepu
- Jeśli plik już istnieje, znajdź
{% block javascripts %}blok - Dodaj kod osadzania Asyntai, rozszerzajac blok javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Zamien
YOUR_WIDGET_IDna rzeczywisty identyfikator widgetu z panelu sterowania - Zapisz plik
Wskazówka: 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 alternatywna 1: Użycie zdarzeń szablonów Sylius
Sylius udostępnia potezny system zdarzeń szablonów, który pozwala wstrzykiwac treść do określonych części ukladu bez nadpisywania calych szablonów. Możesz tego użyć, aby dodać widget chatbota do obszaru stopki.
- Utwórz nowy plik szablonu w
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigz nastepujaca trescia:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Zarejestruj zdarzenie szablonu w pliku konfiguracyjnym
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 - Zamień
YOUR_WIDGET_IDna rzeczywisty identyfikator widgetu - Wyczyść pamięć podręczną Symfony (patrz krok 3 poniżej)
Uwaga: Podejście z zdarzeniami szablonów jest najmniej inwazyjne. Nie wymaga nadpisywania istniejacych szablonów i integruje sie czysto z architektura Sylius. Wartość priority kontroluje kolejność renderowania, jeśli wiele blokow jest zarejestrowanych dla tego samego zdarzenia.
Metoda alternatywna 2: Użycie Webpack Encore
Jeśli Twój projekt Sylius używa Webpack Encore do zarządzania zasobami, możesz zintegrowac skrypt chatbota przez pipeline budowania JavaScript.
- Utwórz nowy plik JavaScript w
assets/shop/js/asyntai-chatbot.jsz nastepujaca trescia:(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);
})(); - Zaimportuj ten plik w punkcie wejscia sklepu (np.
assets/shop/entry.jslubassets/shop/js/app.js):import './js/asyntai-chatbot'; - Przebuduj zasoby, uruchamiając:
yarn encore devLub dla środowiska produkcyjnego:
yarn encore production - Zamień
YOUR_WIDGET_IDna rzeczywisty identyfikator widgetu
Wskazówka: Użycie Webpack Encore zapewnia, ze skrypt chatbota jest dołączany do innych zasobow i korzysta z buforowania i optymalizacji zapewnianej przez narzedzie budowania.
Metoda alternatywna 3: Użycie Sonata Block Bundle
Jeśli Twoja instalacja Sylius używa Sonata Block Bundle (dolaczonego domyślnie w niektorych konfiguracjach Sylius), możesz utworzyć niestandardowa usługę bloku do renderowania widgetu chatbota.
- Utwórz nowa klase usługi bloku w swoim projekcie, na przykład
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);
}
} - Utwórz szablon bloku w
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Zarejestruj usługę bloku w pliku
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Umieść blok w kontekście stopki przez panel administracyjny Sonata lub dodając go do konfiguracji układu
- Zamień
YOUR_WIDGET_IDna rzeczywisty identyfikator widgetu
Ważne: Podejście z Sonata Block wymaga więcej konfiguracji, ale zapewnia elastyczność zarządzania blokiem chatbota przez interfejs administracyjny. Upewnij sie, ze Sonata Block Bundle jest zainstalowany i skonfigurowany w Twoim projekcie Sylius przed uzyciem tej metody.
Krok 3: Wyczyść pamięć podręczną i zweryfikuj
Po dokonaniu zmian musisz wyczyścić pamięć podręczną Symfony i zweryfikować instalację:
- Wyczyść pamięć podręczna Symfony, uruchamiajac nastepujace polecenie z katalogu głównego projektu:
bin/console cache:clear - Jeśli jesteś w środowisku produkcyjnym, rozgrzej również pamięć podręczną:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Odwiedź sklep Sylius w nowej karcie przeglądarki lub w oknie incognito
- Powinieneś zobaczyć przycisk widgetu czatu w prawym dolnym rogu
- Kliknij go, aby upewnić się, że otwiera się i działa prawidłowo
Nie widzisz widgetu? Upewnij sie, ze wyczysciles pamięć podręczna Symfony poleceniem bin/console cache:clear. Zweryfikuj, czy nadpisanie szablonu znajduje sie we wlasciwym katalogu (templates/bundles/SyliusShopBundle/). Spróbuj wyczyść pamięć podręczna przeglądarki lub wyświetlić stronę w oknie incognito. Sprawdź konsolę deweloperska przeglądarki pod kątem błędów JavaScript. Jeśli używasz Webpack Encore, upewnij sie, ze przebudowales zasoby.
Uwaga dotycząca wersji Sylius: Sciezki nadpisywania szablonów mogą sie nieznacznie roznic między wersjami Sylius. W Sylius 1.x szablony pakietu sklepu znajduja sie w templates/bundles/SyliusShopBundle/. Sprawdź dokumentacje Sylius, aby uzyskać poprawna ścieżkę nadpisywania, jeśli używasz innej wersji.
Weebly