كيفية إضافة روبوت الدردشة Asyntai AI إلى Sylius
دليل خطوة بخطوة لمنصة التجارة الإلكترونية Sylius
الخطوة 1: احصل على كود التضمين
أولاً، انتقل إلى لوحة تحكم Asyntai وانتقل لأسفل إلى قسم "Embed Code". انسخ كود التضمين الفريد الذي سيبدو هكذا:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
ملاحظة: الكود أعلاه مجرد مثال. يجب عليك نسخ كود التضمين الفريد الخاص بك من لوحة التحكم لأنه يحتوي على معرف الأداة الشخصي الخاص بك.
الخطوة 2: الإضافة إلى قالب تخطيط Twig (موصى به)
Sylius مبني على Symfony ويستخدم محرك قوالب Twig. النهج الموصى به هو تجاوز قالب تخطيط المتجر لتضمين روبوت الدردشة في جميع صفحات واجهة المتجر.
- في مشروع Sylius الخاص بك، انتقل إلى دليل
templates/bundles/SyliusShopBundle/(أنشئه إذا لم يكن موجوداً) - أنشئ أو عدّل ملف layout.html.twig لتجاوز تخطيط المتجر الافتراضي
- إذا كان الملف موجوداً بالفعل، ابحث عن
{% 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 نظام أحداث قوالب قوياً يتيح لك حقن المحتوى في أجزاء محددة من التخطيط دون تجاوز القوالب بأكملها. يمكنك استخدامه لإضافة أداة الدردشة إلى منطقة التذييل.
- أنشئ ملف قالب جديد في
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 أو بإضافتها إلى إعدادات التخطيط
- استبدل
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، توجد قوالب حزمة المتجر تحت templates/bundles/SyliusShopBundle/. راجع وثائق Sylius الخاصة بك للحصول على مسار التجاوز الصحيح إذا كنت تستخدم إصداراً مختلفاً.
Weebly