Offre de lancement

Licence Founders : mises à jour pendant au moins 2 ans

149 €paiement unique, HT

Une licence Shop normale coûte 199 €.

Pour les 100 premières licences Shop, jusqu’au 10 décembre 2026. Mises à jour et nouvelles connaissances du Conseiller pendant au moins 2 ans, sans renouvellement. Une licence Shop normale : 12 mois.

Obtenir Founders pour 149 €

Dépannage technique

Première étape dans tous les cas : demandez au chat de lancer ps_get_shop_info et ps_check_shop_health. Ensemble, ils indiquent les versions, l’édition et l’état de la licence, les domaines d’écriture (quels interrupteurs sont activés et jusqu’à quand), le niveau des données clients, les droits manquants de l’employé, les limites horaires restantes et les modules accrochés aux enregistrements. La carte Journal des connexions (50 dernières) montre chaque appel avec l’IP, le résultat et l’heure.

Connexion

Le connecteur ne se connecte pas depuis Claude ou ChatGPT.

Vérifiez dans cet ordre :

  1. L’adresse est https://your-shop.com/module/tellmyshop/mcp (l’Adresse de la boutique pour le chat de la carte Démarrage ; avec l’ancienne adresse avec clé, avec le jeton complet). Le point d’accès refuse le HTTP simple (403).
  2. Le connecteur est activé. L’étape 1 de la carte Démarrage (Activer le connecteur) l’active ; désactivé, il renvoie 503.
  3. Tester à nouveau la connexion fonctionne dans le module (jeton de test, valable 2 minutes). Le test vérifie aussi la connexion du chat : s’il indique que l’hébergeur supprime l’en-tête Authorization, le serveur web doit transmettre cet en-tête à PHP, sinon la connexion ne fonctionne pas. Solution de repli : Chats connectés > Avancé : mode de connexion des chats > Adresse avec clé (ancienne méthode). Le test ne détecte pas les blocages par pays ou par IP au niveau d’un CDN ; le premier vrai appel du chat dans le journal des connexions les montre.
  4. Rien devant la boutique ne bloque les POST vers /module/tellmyshop/mcp : authentification basique, page de maintenance, WAF, Cloudflare Bot Fight Mode ou challenges gérés. Ajoutez une règle d’exception pour ce seul chemin.
  5. La liste d’IP autorisées dans Réglages : sécurité, alertes, limites est vide, ou contient les adresses de votre application de chat. Avec ChatGPT, laissez-la vide : OpenAI ne publie pas de liste d’adresses fixe. Pour Claude, la carte des réglages a un bouton qui ajoute les adresses d’Anthropic.
  6. Boutique derrière Cloudflare ou un autre proxy : activez Boutique derrière un proxy / Cloudflare et indiquez les plages du proxy dans Proxys de confiance, sinon la liste d’IP voit l’IP du proxy.
  7. Dans ChatGPT, la boutique est ajoutée dans Plugins comme serveur MCP personnalisé avec l’authentification OAuth.

403 Forbidden.

Causes probables :

  • Origin. Une requête avec un en-tête Origin n’est acceptée que depuis https://claude.ai, https://claude.com, https://chatgpt.com ou https://chat.openai.com. Les requêtes sans Origin passent. Un outil de test dans le navigateur avec une autre Origin est refusé.
  • Liste d’IP autorisées. L’IP n’est pas sur la liste.
  • HTTP simple.

503 Service indisponible.

Le connecteur est désactivé, ou l’employé du connecteur n’existe pas (supprimé, ou passé en SuperAdmin). Relancez l’étape 1 de la carte Démarrage ; elle recrée le compte s’il manque.

429 Trop de tentatives échouées.

20 authentifications échouées depuis une IP en 10 minutes bloquent cette IP jusqu’à la fin de la fenêtre ; le propriétaire reçoit une alerte. Cause typique : un ancien jeton encore configuré dans l’application de chat ou dans un script de surveillance. Corrigez le jeton, puis attendez 10 minutes.

La fenêtre de la boutique affiche une erreur de connexion.

  • « L’adresse de retour ne correspond pas à l’enregistrement » : supprimez le connecteur dans le chat et ajoutez-le à nouveau.
  • « Demande expirée » : une demande de connexion et son code sont valables 15 minutes. Connectez à nouveau la boutique dans le chat.
  • Avertissement « ni Claude ni ChatGPT » : n’autorisez que si c’est vous qui connectez cette application en ce moment. Le réglage Autoriser la connexion d’applications autres que Claude et ChatGPT dans Avancé est désactivé par défaut.

401 après la déconnexion d’un chat ou la régénération d’un jeton.

Déconnecter dans Chats connectés retire immédiatement l’accès au chat ; reconnectez-le dans le chat. Avec l’ancienne adresse avec clé : un nouveau jeton révoque aussitôt l’ancien. Mettez à jour l’adresse avec clé dans Claude ou ChatGPT, ou l’en-tête Authorization: Bearer dans la configuration de Claude Code / Claude Desktop.

Claude Code ou Claude Desktop (local) ne se connecte pas.

Avec l’ancienne adresse avec clé : utilisez --header "Authorization: Bearer <token>" au lieu d’un jeton dans l’URL. Le point d’accès exige HTTPS même en local (mkcert). Les requêtes sans en-tête Origin passent. Si une liste d’IP est définie, ajoutez l’IP publique de la machine.

Erreur de version de protocole.

Versions prises en charge : 2026-07-28, ainsi que 2025-11-25, 2025-06-18, 2025-03-26. Une version non prise en charge renvoie 400 avec la liste des versions acceptées.

L’enregistrement ne fonctionne pas

Le chat se contente de lire et de planifier.

Soit la licence n’est pas active (Pro sans licence active fonctionne comme Free), soit il s’agit de TellMyShop Free, qui n’a pas d’outils d’écriture. ps_get_shop_info indique lequel (édition audit ou audit_free). Vérifiez la carte Licence et cliquez sur Actualiser.

« L’écriture dans le domaine … est désactivée. Rien n’a été enregistré. »

Ventes, Thème, Modules et Maintenance n’enregistrent que lorsque leur interrupteur est activé dans la carte Enregistrement par domaine. Ventes reste activé jusqu’à ce que vous le désactiviez ; Thème et Modules pendant 24 heures ; Maintenance pendant 3 heures. Un interrupteur qui expire en cours de conversation arrête aussitôt l’enregistrement. L’aperçu continue de fonctionner, donc le chat peut montrer le plan avant que vous n’activiez l’interrupteur. Depuis la 2.7.0, il n’y a plus de connecteur de maintenance séparé : une seule adresse couvre tous les domaines.

Thème, Modules ou Maintenance ne s’activent pas.

Les activer demande une case de confirmation cochée et une sauvegarde de la base terminée. Dans une grande boutique, la sauvegarde se fait en plusieurs parties : gardez la page ouverte ou cliquez sur Terminer la sauvegarde. Sans espace disque libre d’environ deux fois la taille de la base, ces interrupteurs restent désactivés ; Contenu, Catalogue et Ventes continuent de fonctionner.

ps_restore_file_backup refusé.

La restauration demande l’interrupteur de la zone du fichier : Thème pour les fichiers du thème, Modules pour les fichiers des modules, Maintenance pour les autres fichiers de la boutique. La carte Sauvegardes de fichiers du panneau restaure sans interrupteur, avec les droits de l’employé connecté.

L’outil de service client refuse.

ps_customer_service refuse tant que le niveau des données clients est Désactivé. Choisissez Pseudonymisé ou Accès complet (temporaire) dans la carte Données clients (RGPD).

Les outils de blog manquent.

Les 5 outils de blog ne sont enregistrés que si SmartBlog est détecté. Les autres modules de blog ne sont pas pris en charge. ps_check_shop_health signale « pas de blog » à titre d’information.

Limites

Limite atteinte.

Valeurs par heure par défaut : 300 appels, 150 écritures, 20 écritures de fichiers (plages 10–2000, 1–500, 1–200), réglées dans Réglages : sécurité, alertes, limites. Une écriture avec un lot de 50 éléments au plus compte pour une écriture, et la limite d’écriture est vérifiée avant l’enregistrement : un lot ne s’arrête donc jamais à mi-chemin. Répartissez les gros travaux sur plusieurs heures ou relevez les limites pour la durée du travail ; ps_check_capacity vérifie d’abord un travail prévu.

Lot refusé avec une erreur de limite.

Limites par appel, par exemple : ps_update_product_content 50, ps_update_category_content 20, ps_update_image_legends 100, ps_set_product_categories 200, ps_update_prices 100, ps_update_stock 100, ps_manage_combinations 100, ps_set_product_redirect 100, ps_translate_catalog_items 200, ps_manage_redirects 100, ps_db_query 200 lignes, ps_db_execute 1000 lignes sauvegardées. Tableau complet : Spécification §11.1.

Écritures

change_token expiré, utilisé ou ne correspondant pas.

Le jeton est un HMAC de l’outil, des arguments et d’une empreinte de l’état « avant », valable 30 minutes, à usage unique. Recommencez avec des arguments identiques ou faites un nouvel aperçu.

Exécution bloquée : les données ont changé depuis l’aperçu.

L’état « avant » ne correspond plus, par exemple à cause d’une modification dans le back office, d’un import ou d’un module de flux. Faites un nouvel aperçu.

Le résultat liste des modifications hors de l’aperçu.

L’enregistrement des lignes a vu, pendant l’écriture, des lignes modifiées que l’aperçu ne montrait pas, en général par le hook d’un autre module. Le chat les montre au propriétaire et lui demande quoi faire ; il ne les restaure pas de lui-même. Annuler l’opération remet toutes les lignes enregistrées dans leur état antérieur.

Changement de prix refusé.

ps_update_prices refuse un prix de 0 et les changements de plus de 30 % sans allow_big_change. ps_manage_specific_prices et ps_manage_catalog_price_rules exigent allow_big_change au-delà de 90 % de réduction (avertissement au-delà de 50 %). Le chat ne met ce drapeau qu’après l’accord du commerçant pour un changement de cette taille.

Règle panier créée mais inactive / impossible à supprimer.

ps_manage_cart_rules crée les règles inactives, par conception ; utilisez action=set_active. Il n’y a pas d’action de suppression ; désactivez la règle. Une règle sans code demande auto_apply.

Erreur de validation à l’enregistrement.

ObjectWriter valide chaque champ avec les règles de la classe (validateField, isCleanHtml, longueurs). Les noms de produits ne peuvent pas contenir <>;=#{} et sont limités à 128 caractères. Le message nomme le champ.

Un autre module ne réagit pas à la modification.

ObjectWriter appelle update(), qui déclenche actionObject<Class>Update* (et actionProductSave / actionProductUpdate pour les produits). Les modules qui n’écoutent que les hooks des formulaires du back office ne voient pas la modification. ps_check_shop_health les liste.

Accès refusé.

ExecutionContext::requirePermissions vérifie l’employé du connecteur par onglet et par action. Depuis la 2.7.0, le profil créé à l’étape 1 reçoit les droits de tous les domaines ; si le profil a été modifié à la main, ps_get_shop_info liste ce qui manque. Sur certaines versions de PrestaShop, les modules ignorent les enregistrements d’un employé sans droit « voir » sur les modules ; la carte Démarrage propose une correction en un clic.

Annulation refusée.

ps_revert_change ne peut pas annuler : la création d’un thème enfant, l’installation, la mise à jour ou la désinstallation d’un module, le DDL, les images supprimées, un produit créé déjà présent dans une commande, les changements d’URL (utilisez un nouveau ps_change_url), les modifications de fichiers (utilisez les sauvegardes de fichiers). Annuler une modification de Ventes, Thème, Modules ou Maintenance demande cet interrupteur ; la carte Historique des modifications et annulation peut tout annuler avec les droits de l’employé connecté. Les entrées chiffrées de l’historique demandent le fichier de clé.

URL

Changement d’URL bloqué.

ps_change_url refuse quand la redirection canonique est en 302 (Paramètres de la boutique > Trafic & SEO, mettez 301), que le mode développeur est activé (_PS_MODE_DEV_), ou qu’un module surcharge les routes (UrlGuard ; ps_check_shop_health le nomme). Les changements d’URL du blog demandent l’option « Redirections 301 pour le blog » activée dans les réglages.

Redirection refusée par ps_manage_redirects.

L’aperçu n’accepte que des sources qui renvoient 404 ou 410 aujourd’hui et des cibles qui renvoient 200 sur le domaine de la boutique. Les chaînes et les boucles sont bloquées. Jusqu’à 100 éléments par add, 100 ID par disable/enable ; source jusqu’à 1 024 caractères, URL cible jusqu’à 2 048. Il n’y a pas de suppression : utilisez disable, ou annulez par l’historique des modifications.

Fichiers, thème et cache

Modification invisible après une écriture dans le thème.

Lancez ps_clear_cache (portée smarty ; all vide aussi le cache Symfony). Videz séparément les modules de cache pleine page et le cache du CDN.

Erreur de validation Smarty.

Seuls les balises et modificateurs autorisés passent, puis une compilation de test ; {php}, {include_php} et l’accès statique aux classes sont refusés. Rien n’a été enregistré.

« search must appear exactly once ».

Utilisez un fragment plus long ou écrivez tout le fichier avec content.

Accès au fichier refusé.

Les chemins doivent être relatifs, sans .., se résoudre dans la zone (realpath) et avoir une extension texte. Toujours refusés : parameters.php/yml, settings.inc.php, .env*, clés et certificats, dumps SQL, archives et .bak, .git, var/logs, upload, download, le répertoire privé du module et le module lui-même.

Écriture d’un fichier PHP refusée.

Le contrôle de syntaxe (token_get_all(TOKEN_PARSE)) a trouvé une erreur d’analyse. Les erreurs d’exécution (par exemple une fonction non définie) ne sont pas détectées : c’est pourquoi chaque écriture PHP a une sauvegarde et que la clé d’urgence existe.

Restauration après une modification qui casse la boutique.

ps_list_file_backups, puis ps_restore_file_backup (sauvegarde d’abord la version actuelle), puis ps_clear_cache. Si le back office ne répond plus : ouvrez l’adresse de secours et saisissez la clé d’urgence ; elle restaure les fichiers modifiés par le connecteur et désactive Maintenance, mais ne touche pas à la base. Pour la base, utilisez les sauvegardes de la base du module (carte Enregistrement par domaine, Télécharger, puis import avec vos outils habituels).

SQL (Maintenance)

Requête refusée.

Une seule instruction, sans commentaires qui cachent du contenu. Jamais accessibles : tables des employés, des sessions, des accès et des profils, configuration (utilisez ps_config), tables du webservice et de l’API, tables du connecteur. Jamais modifiables : taxes, liens des modules de paiement, commandes, statuts, paiements, factures. Opérations sur les fichiers et les utilisateurs MySQL bloquées. Tables de données personnelles uniquement au niveau de données clients pseudo (masqué) ou full.

ps_db_execute annulé (rollback).

Plus de lignes modifiées que déclaré, ou plus de 1000 lignes à sauvegarder. Restreignez le WHERE ou découpez la modification.

Ce qui a changé depuis la 2.6

2.6.x2.7.x
Mode lecture seule et carte « Périmètre de travail et droits »Supprimés. La licence décide si l’enregistrement est possible ; la carte Enregistrement par domaine contient les interrupteurs
Connecteur quotidien plus un connecteur de maintenance séparé avec son propre jeton, sa liste d’IP et son expirationUn seul connecteur pour tous les domaines
Thème, Modules et Maintenance accessibles uniquement par le connecteur de maintenanceInterrupteurs temporisés : Thème et Modules 24 h, Maintenance 3 h, chacun avec une sauvegarde de la base d’abord
Sans licence : seul le bloc 1 lisibleSans licence : toute la boutique lisible, enregistrement désactivé
TellMyShop AuditRenommé TellMyShop Free
14 tâches prêtes à l’emploi32 tâches en 6 groupes

Signaler un problème

Envoyez à [email protected] : domaine, versions de PrestaShop et de PHP, version du module, paquet (Pro ou Free), application de chat (Claude ou ChatGPT), nom de l’outil, texte exact de l’erreur, heure. N’envoyez que le préfixe du jeton, jamais le jeton complet.


PrestaShop est une marque déposée de PrestaShop SA. Claude est une marque d’Anthropic. ChatGPT est une marque d’OpenAI. TellMyShop n’est affilié à aucune de ces sociétés.

Dernière mise à jour: 2026-10-04

Free pour 0 €, lit et conseille

Obtenir Free