Comment ajouter le chatbot IA Asyntai à Sylius
Guide étape par étape pour la plateforme e-commerce Sylius
Étape 1 : Obtenir votre code d'intégration
Tout d'abord, rendez-vous sur votre Tableau de bord Asyntai et faites défiler jusqu'à la section « Code d'intégration ». Copiez votre code d'intégration unique qui ressemblera à ceci :
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Note : Le code ci-dessus n'est qu'un exemple. Vous devez copier votre propre code d'intégration depuis votre Tableau de bord car il contient votre identifiant de widget personnel.
Étape 2 : Ajouter au modèle de mise en page Twig (recommandé)
Sylius est construit sur Symfony et utilise le moteur de templates Twig. L'approche recommandée consiste à surcharger le template de mise en page de la boutique pour inclure le chatbot sur toutes les pages de la vitrine.
- Dans votre projet Sylius, accédez au répertoire
templates/bundles/SyliusShopBundle/(créez-le s'il n'existe pas) - Créez ou modifiez le fichier layout.html.twig pour surcharger la mise en page par défaut de la boutique
- Si le fichier existe déjà, trouvez le
{% block javascripts %}bloc - Ajoutez le code d'intégration Asyntai en étendant le bloc javascripts :
{% block javascripts %} {{ parent() }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {% endblock %} - Remplacez
YOUR_WIDGET_IDpar votre identifiant de widget réel depuis le tableau de bord - Enregistrez le fichier
Astuce : 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.
Méthode alternative 1 : Utilisation des événements de template Sylius
Sylius fournit un puissant système d'événements de templates qui vous permet d'injecter du contenu dans des parties spécifiques de la mise en page sans surcharger des templates entiers. Vous pouvez l'utiliser pour ajouter le widget de chat à la zone de pied de page.
- Créez un nouveau fichier template à
templates/bundles/SyliusShopBundle/Event/asyntai_widget.html.twigavec le contenu suivant :<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Enregistrez l'événement template dans votre fichier de configuration
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 - Remplacez
YOUR_WIDGET_IDpar votre identifiant de widget réel - Videz le cache Symfony (voir Étape 3 ci-dessous)
Note : L'approche par événements de template est la méthode la moins invasive. Elle ne nécessite la surcharge d'aucun template existant et s'intègre proprement à l'architecture de Sylius. La valeur priority contrôle l'ordre de rendu si plusieurs blocs sont enregistrés pour le même événement.
Méthode alternative 2 : Utilisation de Webpack Encore
Si votre projet Sylius utilise Webpack Encore pour la gestion des ressources, vous pouvez intégrer le script du chatbot via votre pipeline de build JavaScript.
- Créez un nouveau fichier JavaScript à
assets/shop/js/asyntai-chatbot.jsavec le contenu suivant :(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);
})(); - Importez ce fichier dans votre point d'entrée boutique (par ex.,
assets/shop/entry.jsouassets/shop/js/app.js) :import './js/asyntai-chatbot'; - Reconstruisez vos ressources en exécutant :
yarn encore devOu pour la production :
yarn encore production - Remplacez
YOUR_WIDGET_IDpar votre identifiant de widget réel
Astuce : L'utilisation de Webpack Encore garantit que le script du chatbot est regroupé avec vos autres ressources et bénéficie de la mise en cache et de l'optimisation fournies par l'outil de build.
Méthode alternative 3 : Utilisation du Sonata Block Bundle
Si votre installation Sylius utilise le Sonata Block Bundle (inclus par défaut dans certaines configurations Sylius), vous pouvez créer un service de bloc personnalisé pour afficher le widget de chat.
- Créez une nouvelle classe de service de bloc dans votre projet, par exemple
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);
}
} - Créez le template de bloc à
templates/block/asyntai_chatbot.html.twig:<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> - Enregistrez le service de bloc dans votre
config/services.yaml:services:
app.block.asyntai_chatbot:
class: App\Block\AsyntaiChatbotBlockService
arguments:
- '@twig'
tags:
- { name: sonata.block, context: footer } - Placez le bloc dans votre contexte de pied de page via l'administration Sonata ou en l'ajoutant à la configuration de votre mise en page
- Remplacez
YOUR_WIDGET_IDpar votre identifiant de widget réel
Important : L'approche Sonata Block nécessite plus de configuration mais offre la flexibilité de gérer le bloc chatbot via l'interface d'administration. Assurez-vous que le Sonata Block Bundle est installé et configuré dans votre projet Sylius avant d'utiliser cette méthode.
Étape 3 : Vider le cache et vérifier
Après avoir effectué vos modifications, vous devez vider le cache de Symfony et vérifier l'installation :
- Videz le cache Symfony en exécutant la commande suivante depuis la racine de votre projet :
bin/console cache:clear - Si vous êtes en environnement de production, préchauffez également le cache :
bin/console cache:clear --env=prod
bin/console cache:warmup --env=prod - Ouvrez votre vitrine en ligne dans un nouvel onglet du navigateur
- Vous devriez voir le bouton du widget de chat dans le coin inférieur droit de votre page
- Cliquez dessus pour vérifier qu'il s'ouvre et fonctionne correctement
Vous ne voyez pas le widget ? Assurez-vous d'avoir vidé le cache Symfony avec bin/console cache:clear. Vérifiez que le remplacement de modèle se trouve dans le bon répertoire (templates/bundles/SyliusShopBundle/). Essayez de vider le cache de votre navigateur ou de consulter le site dans une fenêtre de navigation privée. Vérifiez la console de développement du navigateur pour toute erreur JavaScript. Si vous utilisez Webpack Encore, assurez-vous d'avoir reconstruit les assets.
Note sur la version de Sylius : Les chemins de surcharge des templates peuvent varier légèrement selon les versions de Sylius. Dans Sylius 1.x, les templates du bundle boutique se trouvent sous templates/bundles/SyliusShopBundle/. Consultez la documentation de votre version de Sylius pour connaître le chemin de surcharge correct si vous utilisez une version différente.
Weebly