Cara Menambah Chatbot AI Asyntai ke Sylius
Panduan langkah demi langkah untuk platform e-dagang Sylius
Langkah 1: Dapatkan Kod Benam Anda
Pertama, pergi ke Papan Pemuka Asyntai anda dan tatal ke bawah ke bahagian "Kod Benam". Salin kod benam unik anda yang akan kelihatan seperti ini:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Nota: Kod di atas hanyalah contoh. Anda mesti menyalin kod benam unik anda sendiri dari Papan Pemuka anda kerana ia mengandungi ID widget peribadi anda.
Langkah 2: Tambah ke Templat Layout Twig (Disyorkan)
Sylius dibina di atas Symfony dan menggunakan enjin templat Twig. Pendekatan yang disyorkan adalah mengatasi templat layout kedai untuk menyertakan chatbot pada semua halaman etalase.
- Dalam projek Sylius anda, navigasi ke direktori
templates/bundles/SyliusShopBundle/(cipta jika ia belum wujud) - Cipta atau edit fail layout.html.twig untuk mengatasi layout kedai lalai
- Jika fail sudah wujud, cari
{% block javascripts %}blok - Tambah kod benam Asyntai dengan melanjutkan blok javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Gantikan
YOUR_WIDGET_IDdengan ID widget sebenar anda dari papan pemuka - Simpan fail
Petua: 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.
Kaedah Alternatif 1: Menggunakan Acara Templat Sylius
Sylius menyediakan sistem acara templat yang berkuasa yang membolehkan anda menyuntik kandungan ke bahagian tertentu layout tanpa mengatasi keseluruhan templat. Anda boleh menggunakan ini untuk menambah widget chatbot ke kawasan footer.
- Cipta fail templat baharu di
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigdengan kandungan berikut:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Daftarkan acara templat dalam fail konfigurasi
config/packages/sylius_ui.yamlanda:sylius_ui:
events:
sylius.shop.layout.after_body:
blocks:
asyntai_chatbot:
template: "@SyliusShop/Event/asyntai_widget.html.twig"
priority: 0 - Gantikan
YOUR_WIDGET_IDdengan ID widget sebenar anda - Kosongkan cache Symfony (lihat Langkah 3 di bawah)
Nota: Pendekatan acara templat adalah kaedah yang paling tidak invasif. Ia tidak memerlukan pengatasan mana-mana templat sedia ada dan berintegrasi dengan bersih dengan seni bina Sylius. Nilai priority mengawal susunan pemaparan jika pelbagai blok didaftarkan untuk acara yang sama.
Kaedah Alternatif 2: Menggunakan Webpack Encore
Jika projek Sylius anda menggunakan Webpack Encore untuk pengurusan aset, anda boleh mengintegrasikan skrip chatbot melalui saluran pembinaan JavaScript anda.
- Cipta fail JavaScript baharu di
assets/shop/js/asyntai-chatbot.jsdengan kandungan berikut:(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);
})(); - Import fail ini dalam titik masuk kedai anda (contohnya,
assets/shop/entry.jsatauassets/shop/js/app.js):import './js/asyntai-chatbot'; - Bina semula aset anda dengan menjalankan:
yarn encore devAtau untuk pengeluaran:
yarn encore production - Gantikan
YOUR_WIDGET_IDdengan ID widget sebenar anda
Petua: Menggunakan Webpack Encore memastikan skrip chatbot digabungkan dengan aset lain anda dan mendapat manfaat daripada caching dan pengoptimuman yang disediakan oleh alat pembinaan.
Kaedah Alternatif 3: Menggunakan Sonata Block Bundle
Jika pemasangan Sylius anda menggunakan Sonata Block Bundle (disertakan secara lalai dalam sesetengah konfigurasi Sylius), anda boleh mencipta perkhidmatan blok tersuai untuk memaparkan widget chatbot.
- Cipta kelas perkhidmatan blok baharu dalam projek anda, contohnya
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);
}
} - Cipta templat blok di
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Daftarkan perkhidmatan blok dalam
config/services.yamlanda:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Letakkan blok dalam konteks footer anda melalui admin Sonata atau dengan menambahkannya ke konfigurasi layout anda
- Gantikan
YOUR_WIDGET_IDdengan ID widget sebenar anda
Penting: Pendekatan Sonata Block memerlukan lebih banyak persediaan tetapi memberikan fleksibiliti untuk menguruskan blok chatbot melalui antara muka admin. Pastikan Sonata Block Bundle dipasang dan dikonfigurasikan dalam projek Sylius anda sebelum menggunakan kaedah ini.
Langkah 3: Kosongkan Cache dan Sahkan
Selepas membuat perubahan anda, anda perlu mengosongkan cache Symfony dan mengesahkan pemasangan:
- Kosongkan cache Symfony dengan menjalankan arahan berikut dari akar projek anda:
bin/console cache:clear - Jika anda berada dalam persekitaran pengeluaran, juga panaskan cache:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Lawati etalase Sylius anda dalam tab pelayar baharu atau tetingkap inkognito
- Anda sepatutnya melihat butang widget sembang di sudut kanan bawah
- Klik padanya untuk memastikan ia terbuka dan berfungsi dengan betul
Tidak nampak widget? Pastikan anda telah mengosongkan cache Symfony dengan bin/console cache:clear. Sahkan bahawa pengatasan templat berada dalam direktori yang betul (templates/bundles/SyliusShopBundle/). Cuba kosongkan cache pelayar anda atau lihat dalam tetingkap inkognito. Semak konsol pembangun pelayar untuk sebarang ralat JavaScript. Jika menggunakan Webpack Encore, pastikan anda telah membina semula aset.
Nota Versi Sylius: Laluan pengatasan templat mungkin berbeza sedikit antara versi Sylius. Dalam Sylius 1.x, templat bundle kedai terletak di bawah templates/bundles/SyliusShopBundle/. Semak dokumentasi Sylius anda untuk laluan pengatasan yang betul jika anda menggunakan versi yang berbeza.
Weebly