[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fZ9aIys9sCaMUzf5NBg8pTQCfifyeDV_Szx1jUGj79k4":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":61,"$fDjyhchoQ7aHX_Cnmx4w9aUo1ZgAFYvNUujppJ064yoE":142,"footer-db":157,"megamenu":176,"header-db":230},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":33,"psVersions":34,"content":39,"faq":40,"tldr":56,"readingTime":57,"generatedAt":58,"publishDate":58,"relatedArticles":59,"sourceCategory":60},"Erreur « Constant __PS_BASE_URI__ already defined » dans PrestaShop","erreur-constant-ps-base-uri-already-defined-prestashop","Diagnostic et correction de l'erreur __PS_BASE_URI__ already defined dans PrestaShop. Causes fréquentes : malware, overrides, double inclusion config.","debug",[28,29,30,31,32,26],"erreur PHP","sécurité","overrides","malware","config.inc.php","intermediaire",[35,36,37,38],"1.5","1.6","1.7","8.x","\u003Ch1>Erreur « Constant __PS_BASE_URI__ already defined » dans PrestaShop : diagnostic complet\u003C\u002Fh1>\n\u003Ch2>Comprendre l'erreur\u003C\u002Fh2>\n\u003Cp>Le message \u003Ccode>Notice: Constant __PS_BASE_URI__ already defined\u003C\u002Fcode> signifie que le fichier de configuration principal de PrestaShop (\u003Ccode>config\u002Fconfig.inc.php\u003C\u002Fcode>) est chargé deux fois au cours d'une même requête. La constante \u003Ccode>__PS_BASE_URI__\u003C\u002Fcode> est définie lors de la première inclusion, et PHP lève une erreur lorsqu'une seconde tentative survient.\u003C\u002Fp>\n\u003Cp>Cette erreur est rarement anodine. Elle révèle un problème structurel dans l'architecture de votre boutique, et dans un nombre significatif de cas, elle constitue le symptôme d'une compromission de sécurité.\u003C\u002Fp>\n\u003Ch2>Les trois causes principales\u003C\u002Fh2>\n\u003Ch3>1. Injection de code malveillant (malware)\u003C\u002Fh3>\n\u003Cp>C'est la cause la plus fréquente et la plus dangereuse. Des scripts malveillants comme \u003Cstrong>Bajatax\u003C\u002Fstrong> ou ses variantes exploitent des failles dans certains modules tiers pour injecter du code PHP dans les fichiers système de PrestaShop.\u003C\u002Fp>\n\u003Cp>Ces malwares incluent généralement \u003Ccode>config.inc.php\u003C\u002Fcode> une seconde fois pour accéder aux identifiants de base de données et aux informations clients. Le résultat :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Envoi massif de spam depuis votre serveur\u003C\u002Fli>\n\u003Cli>Vol des données de paiement et des identifiants clients\u003C\u002Fli>\n\u003Cli>Double chargement de la configuration, déclenchant l'erreur `__PS_BASE_URI__`\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>#### Comment vérifier la présence d'un malware\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# Rechercher des fichiers PHP modifiés récemment (dernières 48h)\nfind \u002Fvar\u002Fwww\u002Fhtml\u002F -name \"*.php\" -mtime -2 -type f\n\n# Chercher des appels suspects dans les fichiers système\ngrep -rl \"base64_decode\\|eval(\\|gzinflate\\|str_rot13\" \\\n  --include=\"*.php\" \u002Fvar\u002Fwww\u002Fhtml\u002F\n\n# Vérifier l'intégrité de config.inc.php\ngrep -n \"include\\|require\" \u002Fvar\u002Fwww\u002Fhtml\u002Fconfig\u002Fconfig.inc.php\n\n# Lister les fichiers PHP à la racine (souvent le point d'entrée du malware)\nls -la \u002Fvar\u002Fwww\u002Fhtml\u002F*.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si vous trouvez des fichiers inconnus (\u003Ccode>x.php\u003C\u002Fcode>, \u003Ccode>cache.php\u003C\u002Fcode>, \u003Ccode>tmpchk.php\u003C\u002Fcode>) ou du code obfusqué dans vos fichiers système, votre boutique est compromise.\u003C\u002Fp>\n\u003Cp>#### Procédure de nettoyage\u003C\u002Fp>\n\u003Col>\n\u003Cli>**Mettre le site en maintenance** immédiatement\u003C\u002Fli>\n\u003Cli>**Sauvegarder l'état actuel** (pour analyse forensique)\u003C\u002Fli>\n\u003Cli>**Comparer chaque fichier** avec les sources officielles de votre version PrestaShop :\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# Télécharger la version propre correspondante\nwget https:\u002F\u002Fgithub.com\u002FPrestaShop\u002FPrestaShop\u002Freleases\u002Fdownload\u002F8.1.0\u002Fprestashop_8.1.0.zip\n\n# Comparer les fichiers critiques\ndiff -r \u002Fvar\u002Fwww\u002Fhtml\u002Fclasses\u002F \u002Ftmp\u002Fprestashop-clean\u002Fclasses\u002F\ndiff \u002Fvar\u002Fwww\u002Fhtml\u002Fconfig\u002Fconfig.inc.php \u002Ftmp\u002Fprestashop-clean\u002Fconfig\u002Fconfig.inc.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col>\n\u003Cli>**Supprimer tout code injecté** et restaurer les fichiers originaux\u003C\u002Fli>\n\u003Cli>**Identifier et supprimer le module vulnérable** à l'origine de la faille\u003C\u002Fli>\n\u003Cli>**Changer tous les mots de passe** (base de données, back-office, FTP, hébergeur)\u003C\u002Fli>\n\u003Cli>**Mettre à jour PrestaShop** vers la dernière version stable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2. Conflit d'overrides\u003C\u002Fh3>\n\u003Cp>Les overrides PrestaShop permettent de surcharger les classes et contrôleurs du cœur. Un override mal écrit peut provoquer une double inclusion du fichier de configuration.\u003C\u002Fp>\n\u003Cp>#### Diagnostic rapide\u003C\u002Fp>\n\u003Cp>Désactivez temporairement les overrides pour confirmer si l'un d'eux est en cause :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F Dans config\u002Fdefines.inc.php, ajouter :\ndefine('_PS_MODE_DEV_', true);\n\n\u002F\u002F Pour désactiver tous les overrides :\ndefine('_PS_DISABLE_OVERRIDES_', true);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si l'erreur disparaît avec les overrides désactivés, réactivez-les un par un pour identifier le coupable.\u003C\u002Fp>\n\u003Cp>#### Structure correcte d'un override\u003C\u002Fp>\n\u003Cp>Un override ne doit jamais inclure \u003Ccode>config.inc.php\u003C\u002Fcode> manuellement. Voici la structure attendue :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F\u002F override\u002Fclasses\u002FCart.php — CORRECT\nclass Cart extends CartCore\n{\n    \u002F\u002F Vos surcharges ici\n    \u002F\u002F Le fichier de config est déjà chargé par l'autoloader\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Erreur classique à éviter :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F\u002F ❌ INCORRECT — provoque l'erreur __PS_BASE_URI__\ninclude(dirname(__FILE__).'\u002F..\u002F..\u002Fconfig\u002Fconfig.inc.php');\n\nclass Cart extends CartCore\n{\n    \u002F\u002F ...\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Sur \u003Cstrong>PrestaShop 8.x\u003C\u002Fstrong>, pensez à regénérer le fichier d'index des classes après toute modification d'override :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-\">\nBack-office → Paramètres avancés → Performances → Vider le cache\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Ou en ligne de commande :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\nphp bin\u002Fconsole cache:clear\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>3. Double inclusion dans un module ou un script personnalisé\u003C\u002Fh3>\n\u003Cp>Certains modules ou scripts cron incluent explicitement \u003Ccode>config.inc.php\u003C\u002Fcode> alors qu'il est déjà chargé par le bootstrap de PrestaShop.\u003C\u002Fp>\n\u003Cp>#### Inclusion correcte pour un script autonome\u003C\u002Fp>\n\u003Cp>Si vous développez un script cron ou une API qui tourne en dehors du contexte PrestaShop :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F\u002F cron\u002Fmon_script.php — méthode sûre\nif (!defined('__PS_BASE_URI__')) {\n    require_once dirname(__FILE__) . '\u002F..\u002Fconfig\u002Fconfig.inc.php';\n}\n\n\u002F\u002F Votre code ici\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Cette vérification conditionnelle empêche la double définition de la constante.\u003C\u002Fp>\n\u003Cp>#### Dans un module PrestaShop\u003C\u002Fp>\n\u003Cp>Un module correctement structuré n'a \u003Cstrong>jamais besoin\u003C\u002Fstrong> d'inclure \u003Ccode>config.inc.php\u003C\u002Fcode>. Le framework le charge automatiquement :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F\u002F modules\u002Fmonmodule\u002Fmonmodule.php\nif (!defined('_PS_VERSION_')) {\n    exit;\n}\n\nclass MonModule extends Module\n{\n    \u002F\u002F config.inc.php est déjà chargé, inutile de l'inclure\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Prévention : sécuriser votre boutique\u003C\u002Fh2>\n\u003Ch3>Maintenir PrestaShop à jour\u003C\u002Fh3>\n\u003Cp>Les anciennes versions (1.5.x, 1.6.x) ne reçoivent plus de correctifs de sécurité. La migration vers PrestaShop 8.x est fortement recommandée pour bénéficier :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Des derniers patchs de sécurité\u003C\u002Fli>\n\u003Cli>De Symfony 6.x et de son système de routing sécurisé\u003C\u002Fli>\n\u003Cli>De la compatibilité PHP 8.1+ avec ses améliorations de sécurité natives\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Auditer les modules tiers\u003C\u002Fh3>\n\u003Cp>Les modules tiers sont le vecteur d'attaque numéro un sur PrestaShop. Avant d'installer un module :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Vérifiez qu'il provient de la marketplace officielle ou d'un éditeur reconnu\u003C\u002Fli>\n\u003Cli>Inspectez le code source à la recherche d'inclusions `config.inc.php` superflues\u003C\u002Fli>\n\u003Cli>Supprimez les modules inutilisés (ne pas seulement les désactiver)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Surveiller l'intégrité des fichiers\u003C\u002Fh3>\n\u003Cp>Mettez en place un script de surveillance :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n#!\u002Fbin\u002Fbash\n# integrity-check.sh — à exécuter via cron quotidiennement\n\nCHECKSUM_FILE=\"\u002Froot\u002Fprestashop_checksums.md5\"\nALERT_EMAIL=\"admin@votreboutique.com\"\n\nif [ ! -f \"$CHECKSUM_FILE\" ]; then\n    find \u002Fvar\u002Fwww\u002Fhtml -name \"*.php\" -exec md5sum {} \\; &gt; \"$CHECKSUM_FILE\"\n    echo \"Checksums initiaux générés.\"\nelse\n    CHANGES=$(md5sum --check \"$CHECKSUM_FILE\" 2&gt;\u002Fdev\u002Fnull | grep FAILED)\n    if [ -n \"$CHANGES\" ]; then\n        echo \"$CHANGES\" | mail -s \"[ALERTE] Fichiers PHP modifiés\" \"$ALERT_EMAIL\"\n    fi\nfi\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Résumé des actions par cause\u003C\u002Fh2>\n\u003Ctr>\u003Cth>Cause\u003C\u002Fth>\u003Cth>Action immédiate\u003C\u002Fth>\u003Cth>Action long terme\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Malware \u002F injection\u003C\u002Fth>\u003Cth>Nettoyage + changement mots de passe\u003C\u002Fth>\u003Cth>Mise à jour PS + audit modules\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Override défaillant\u003C\u002Fth>\u003Cth>`_PS_DISABLE_OVERRIDES_ = true`\u003C\u002Fth>\u003Cth>Réécrire l'override proprement\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Double inclusion\u003C\u002Fth>\u003Cth>Ajouter `if (!defined('__PS_BASE_URI__'))`\u003C\u002Fth>\u003Cth>Refactoriser le script\u003C\u002Fth>\u003C\u002Ftr>",[41,44,47,50,53],{"q":42,"a":43},"L'erreur __PS_BASE_URI__ already defined est-elle dangereuse pour ma boutique ?","Cette erreur peut être le symptôme d'un problème bénin (override mal codé) ou d'une menace grave (malware). Il est impératif d'investiguer immédiatement. Si vous constatez des fichiers PHP inconnus à la racine de votre installation ou du code obfusqué (base64_decode, eval) dans vos fichiers, votre boutique est probablement compromise et nécessite un nettoyage urgent.",{"q":45,"a":46},"Comment désactiver les overrides dans PrestaShop pour diagnostiquer l'erreur ?","Ajoutez la ligne define('_PS_DISABLE_OVERRIDES_', true); dans le fichier config\u002Fdefines.inc.php. Cela désactive tous les overrides sans les supprimer. Si l'erreur disparaît, l'un de vos overrides est en cause. Réactivez-les un par un pour identifier le fichier problématique. Sur PrestaShop 8.x, vous pouvez également vider le cache via la commande php bin\u002Fconsole cache:clear après chaque modification.",{"q":48,"a":49},"Comment empêcher la double définition de __PS_BASE_URI__ dans un script cron PrestaShop ?","Encapsulez l'inclusion du fichier de configuration dans une vérification conditionnelle : if (!defined('__PS_BASE_URI__')) { require_once 'config\u002Fconfig.inc.php'; }. Cela garantit que la constante n'est définie qu'une seule fois, même si le script est appelé dans un contexte où PrestaShop est déjà initialisé.",{"q":51,"a":52},"Le malware Bajatax peut-il causer cette erreur sur PrestaShop 8.x ?","Les variantes modernes de ce type de malware ciblent principalement les versions 1.5 et 1.6 qui ne reçoivent plus de mises à jour de sécurité. PrestaShop 8.x intègre des protections renforcées, mais reste vulnérable si des modules tiers non maintenus sont installés. La meilleure protection reste la mise à jour régulière du cœur et la suppression des modules inutilisés.",{"q":54,"a":55},"Quels fichiers vérifier en priorité si je soupçonne une injection de code ?","Inspectez en priorité : config\u002Fconfig.inc.php, config\u002Fsettings.inc.php, les fichiers index.php à la racine et dans le dossier classes\u002F, ainsi que tout fichier PHP modifié récemment (commande find avec -mtime). Recherchez également des fichiers PHP inconnus à la racine du site et dans le dossier upload\u002F. Comparez systématiquement avec les fichiers originaux de votre version PrestaShop.","L'erreur « Constant __PS_BASE_URI__ already defined » signale une double inclusion du fichier de configuration PrestaShop. Les trois causes principales sont : une injection de malware (la plus dangereuse), un conflit d'overrides, ou une inclusion manuelle superflue dans un module ou script cron. Le diagnostic passe par la désactivation des overrides et l'audit des fichiers modifiés récemment.",5,"2026-03-21T16:55:19.000Z",[],"PrestaShop pour les développeurs",{"columns":62},[63,79,109,130],{"title":64,"links":65},"Plateforme",[66,70,73,76],{"label":67,"href":68,"external":69},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":71,"href":72,"external":69},"Devenir Ambassadeur","\u002Fambassadeur",{"label":74,"href":75,"external":69},"Modules PrestaShop","\u002Fmodules",{"label":77,"href":78,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":80,"links":81},"Le Synedre",[82,85,88,91,94,97,100,103,106],{"label":83,"href":84,"external":69},"L'histoire","\u002Fsynedre",{"label":86,"href":87,"external":69},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":89,"href":90,"external":69},"L'équipe","\u002Fequipe",{"label":92,"href":93,"external":69},"Le réacteur en direct","\u002Freacteur",{"label":95,"href":96,"external":69},"Le Drill (entraînement)","\u002Fdrill",{"label":98,"href":99,"external":69},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":101,"href":102,"external":69},"Les agents IA","\u002Fagents-ia",{"label":104,"href":105,"external":69},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":107,"href":108,"external":69},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":110,"links":111},"Ressources",[112,115,118,121,124,127],{"label":113,"href":114,"external":69},"Blog","\u002Fblog",{"label":116,"href":117,"external":69},"Academy","\u002Facademy",{"label":119,"href":120,"external":69},"Dictionnaire","\u002Fdictionnaire",{"label":122,"href":123,"external":69},"Expertise PrestaShop","\u002Fexpertise",{"label":125,"href":126,"external":69},"Flywheel","\u002Fflywheel",{"label":128,"href":129,"external":69},"Manifeste","\u002Fmanifeste",{"title":131,"links":132},"À propos",[133,136,139],{"label":134,"href":135,"external":69},"Alexandre Carette","\u002Fa-propos",{"label":137,"href":138,"external":69},"Dossier de presse","\u002Fpresse",{"label":140,"href":141,"external":69},"Contact","\u002Fcontact",{"academy":143,"blog":144,"expertise":156},[],[145,150,153],{"title":146,"url":147,"score":148,"type":149},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back",1,"blog",{"title":151,"url":152,"score":148,"type":149},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":154,"url":155,"score":148,"type":149},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[],{"footer":158},{"theme":159,"description":160,"hours":160,"logo":161,"contact":164,"social":165,"bottomBar":175},"dark",null,{"src":162,"href":163,"alt":134},"\u002Flogo-ac.svg","\u002F",{"email":160,"phone":160,"address":160,"cta":160},[166,169,172],{"platform":167,"href":168,"label":167},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":170,"href":171,"label":170},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":173,"href":174,"label":173},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":160},{"items":177},[178,186,191,197,205,213,218,224],{"id":179,"type":180,"label":181,"href":123,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":183,"children":184,"psChildren":185},41,"link",{"fr":182},"Expertise",0,[],[],{"id":187,"type":180,"label":188,"href":114,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":148,"children":189,"psChildren":190},42,{"fr":113},[],[],{"id":192,"type":180,"label":193,"href":75,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":194,"children":195,"psChildren":196},43,{"fr":74},2,[],[],{"id":198,"type":180,"label":199,"href":201,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":202,"children":203,"psChildren":204},44,{"fr":200},"Outils IA","\u002Foutils-ia",3,[],[],{"id":206,"type":180,"label":207,"href":68,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":209,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":210,"children":211,"psChildren":212},45,{"fr":208},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":214,"type":180,"label":215,"href":117,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":57,"children":216,"psChildren":217},46,{"fr":116},[],[],{"id":219,"type":180,"label":220,"href":135,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":221,"children":222,"psChildren":223},47,{"fr":131},6,[],[],{"id":225,"type":180,"label":226,"href":141,"icon":160,"description":160,"badge":160,"groupTitle":160,"style":160,"gridColumns":160,"cssClass":160,"psCategoryId":160,"showPsChildren":69,"position":227,"children":228,"psChildren":229},48,{"fr":140},7,[],[],{"header":231},{"logo":232,"topBar":235,"contactEmail":238,"features":239,"navBar":160},{"src":162,"alt":233,"text":134,"href":163,"class":234},"Alexandre Carette — Architecte E-commerce Souverain","h-10 w-10",{"message":160,"showLanguages":69,"align":236,"languages":237},"left",[],"contact@alexandrecarette.fr",{"showSearch":69,"showWishlist":69,"showLogin":20,"showContact":69,"showCart":69,"stickyHeader":20,"headerLayout":240},"inline"]