כיצד להוסיף צ'אטבוט AI של Asyntai ל-Sylius
מדריך צעד אחר צעד לפלטפורמת המסחר האלקטרוני Sylius
שלב 1: קבל את קוד ההטמעה שלך
ראשית, עבור ללוח הבקרה של Asyntai וגלול למטה לחלק "קוד הטמעה". העתק את קוד ההטמעה הייחודי שלך שייראה כך:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
הערה: הקוד למעלה הוא רק דוגמה. עליך להעתיק את קוד ההטמעה הייחודי שלך מלוח הבקרה שלך כיוון שהוא מכיל את מזהה הווידג'ט האישי שלך.
שלב 2: הוספה לתבנית Layout של Twig (מומלץ)
Sylius בנוי על Symfony ומשתמש במנוע התבניות Twig. הגישה המומלצת היא לדרוס את תבנית ה-layout של החנות כדי לכלול את הצ'אטבוט בכל דפי החנות.
- בפרויקט Sylius שלכם, נווטו לספריית
templates/bundles/SyliusShopBundle/(צרו אותה אם היא לא קיימת) - צרו או ערכו את הקובץ layout.html.twig כדי לדרוס את layout ברירת המחדל של החנות
- אם הקובץ כבר קיים, מצאו את
{% block javascripts %}בלוק - הוסיפו את קוד ההטמעה של Asyntai על ידי הרחבת בלוק ה-javascripts:
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - החלף את
YOUR_WIDGET_IDבמזהה הווידג'ט האמיתי שלך מלוח הבקרה - שמור את הקובץ
טיפ: 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.
שיטה חלופית 1: שימוש באירועי תבנית של Sylius
Sylius מספק מערכת אירועי תבנית עוצמתית שמאפשרת להזריק תוכן לחלקים ספציפיים של ה-layout מבלי לדרוס תבניות שלמות. ניתן להשתמש בזה כדי להוסיף את ווידג'ט הצ'אטבוט לאזור הפוטר.
- צרו קובץ תבנית חדש ב-
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigעם התוכן הבא:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - רשמו את אירוע התבנית בקובץ ההגדרות
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 - החלף את
YOUR_WIDGET_IDבמזהה הווידג'ט האמיתי שלך - נקו את מטמון Symfony (ראו שלב 3 למטה)
הערה: גישת אירועי התבנית היא השיטה הכי לא פולשנית. היא לא דורשת דריסה של תבניות קיימות ומשתלבת בצורה נקייה עם הארכיטקטורה של Sylius. ערך ה-priority שולט בסדר הרינדור אם מספר בלוקים רשומים לאותו אירוע.
שיטה חלופית 2: שימוש ב-Webpack Encore
אם פרויקט Sylius שלכם משתמש ב-Webpack Encore לניהול נכסים, ניתן לשלב את סקריפט הצ'אטבוט דרך תהליך בניית ה-JavaScript שלכם.
- צרו קובץ JavaScript חדש ב-
assets/shop/js/asyntai-chatbot.jsעם התוכן הבא:(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);
})(); - ייבאו קובץ זה בנקודת הכניסה של החנות שלכם (למשל,
assets/shop/entry.jsאוassets/shop/js/app.js):import './js/asyntai-chatbot'; - בנו מחדש את הנכסים שלכם על ידי הרצת:
yarn encore devאו עבור ייצור:
yarn encore production - החלף את
YOUR_WIDGET_IDבמזהה הווידג'ט האמיתי שלך
טיפ: שימוש ב-Webpack Encore מבטיח שסקריפט הצ'אטבוט מאוגד עם שאר הנכסים שלכם ונהנה ממטמון ואופטימיזציה שמספק כלי הבנייה.
שיטה חלופית 3: שימוש ב-Sonata Block Bundle
אם התקנת Sylius שלכם משתמשת ב-Sonata Block Bundle (כלול כברירת מחדל בחלק מהגדרות Sylius), ניתן ליצור שירות בלוק מותאם אישית כדי לרנדר את ווידג'ט הצ'אטבוט.
- צרו מחלקת שירות בלוק חדשה בפרויקט שלכם, למשל
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);
}
} - צרו את תבנית הבלוק ב-
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - רשמו את שירות הבלוק ב-
config/services.yamlשלכם:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - מקמו את הבלוק בהקשר הפוטר שלכם דרך ממשק הניהול של Sonata או על ידי הוספתו להגדרות ה-layout
- החלף את
YOUR_WIDGET_IDבמזהה הווידג'ט האמיתי שלך
חשוב: גישת Sonata Block דורשת הגדרה נוספת אבל מספקת גמישות לנהל את בלוק הצ'אטבוט דרך ממשק הניהול. ודאו ש-Sonata Block Bundle מותקן ומוגדר בפרויקט Sylius שלכם לפני שימוש בשיטה זו.
שלב 3: נקה מטמון ואמת
לאחר ביצוע השינויים, עליכם לנקות את מטמון Symfony ולאמת את ההתקנה:
- נקו את מטמון Symfony על ידי הרצת הפקודה הבאה משורש הפרויקט שלכם:
bin/console cache:clear - אם אתם בסביבת ייצור, חממו גם את המטמון:
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - בקרו בחנות Sylius שלכם בלשונית דפדפן חדשה או בחלון גלישה פרטית
- אתה אמור לראות את כפתור ווידג'ט הצ'אט בפינה הימנית התחתונה
- לחץ עליו כדי לוודא שהוא נפתח ועובד כראוי
לא רואה את הווידג'ט? ודאו שניקיתם את מטמון Symfony עם bin/console cache:clear. ודאו שדריסת התבנית נמצאת בספרייה הנכונה (templates/bundles/SyliusShopBundle/). נסו לנקות את מטמון הדפדפן או לצפות בחלון גלישה פרטית. בדקו את קונסולת המפתחים של הדפדפן לשגיאות JavaScript. אם משתמשים ב-Webpack Encore, ודאו שבניתם מחדש את הנכסים.
הערת גרסת Sylius: נתיבי דריסת תבניות עשויים להשתנות מעט בין גרסאות Sylius. ב-Sylius 1.x, תבניות ה-shop bundle ממוקמות תחת templates/bundles/SyliusShopBundle/. בדקו את תיעוד Sylius שלכם לנתיב הדריסה הנכון אם אתם משתמשים בגרסה אחרת.
Weebly