[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fOY8R2IFS2z4IYiokdG4TzR-5_c3FcULADFuXB3p1VAY":22,"$fX5R1j9zoSdgoz8_ZmmBzpw8tmiRgVHcWc-kOzubgVFk":60,"header-db":75,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":91,"megamenu":170,"footer-db":224},{"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":38,"faq":39,"tldr":55,"readingTime":56,"generatedAt":57,"publishDate":57,"relatedArticles":58,"sourceCategory":59},"Connexion clients impossible après mise à jour PrestaShop : diagnostic et solutions","connexion-clients-impossible-apres-mise-a-jour-prestashop","Vos clients ne peuvent plus se connecter après une mise à jour PrestaShop ? Découvrez les causes (cookie key, hashage) et 3 solutions concrètes pour restaurer l'accès.","migration",[26,28,29,30,31,32],"authentification","cookie-key","mot-de-passe","upgrade","sécurité","intermediaire",[35,36,37],"1.6","1.7","8.x","\u003Ch2>Introduction\u003C\u002Fh2>\n\u003Cp>Après une mise à jour ou une migration PrestaShop, l'un des problèmes les plus fréquents — et les plus stressants — est l'impossibilité pour les clients de se connecter à leur compte. Le formulaire de connexion rejette systématiquement les identifiants, alors que les comptes existent bel et bien en base de données.\u003C\u002Fp>\n\u003Cp>Ce problème touche potentiellement des milliers de comptes clients d'un coup. Sur une boutique avec 20 000 clients, c'est une urgence commerciale. Voyons pourquoi cela arrive et comment y remédier proprement.\u003C\u002Fp>\n\u003Ch2>Pourquoi les connexions échouent après un upgrade\u003C\u002Fh2>\n\u003Ch3>La cookie key : le cœur du problème\u003C\u002Fh3>\n\u003Cp>PrestaShop utilise une clé de chiffrement unique appelée \u003Cstrong>cookie key\u003C\u002Fstrong> pour hasher les mots de passe des clients. Cette clé est définie dans le fichier de configuration de votre boutique.\u003C\u002Fp>\n\u003Cp>Sur PrestaShop 1.6 et 1.7, elle se trouve dans \u003Ccode>config\u002Fsettings.inc.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\ndefine('_COOKIE_KEY_', 'cragrmv2ctty3eg8o548v8yokwixwxcllpu4vdz1xmem648t2mqrmfac');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Sur PrestaShop 8.x, elle est migrée dans \u003Ccode>app\u002Fconfig\u002Fparameters.php\u003C\u002Fcode> (ou \u003Ccode>.env\u003C\u002Fcode>) :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n'cookie_key' =&gt; 'votre_cle_unique_ici',\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Lorsque vous effectuez une mise à jour — surtout si vous réinstallez PrestaShop puis importez votre base de données — une \u003Cstrong>nouvelle cookie key est générée automatiquement\u003C\u002Fstrong>. Or, tous les mots de passe en base ont été hashés avec l'ancienne clé. Résultat : PrestaShop tente de vérifier le mot de passe saisi avec la nouvelle clé, le hash ne correspond plus, et la connexion est refusée.\u003C\u002Fp>\n\u003Ch3>L'évolution du hashage des mots de passe\u003C\u002Fh3>\n\u003Cp>L'autre facteur à comprendre est l'évolution de l'algorithme de hashage :\u003C\u002Fp>\n\u003Ctr>\u003Cth>Version PrestaShop\u003C\u002Fth>\u003Cth>Algorithme\u003C\u002Fth>\u003Cth>Méthode\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>1.4 et antérieur\u003C\u002Fth>\u003Cth>MD5 simple\u003C\u002Fth>\u003Cth>`md5($cookie_key . $password)`\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>1.5 – 1.6\u003C\u002Fth>\u003Cth>MD5 avec cookie key\u003C\u002Fth>\u003Cth>`md5($cookie_key . $password)`\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>1.7+\u003C\u002Fth>\u003Cth>bcrypt\u003C\u002Fth>\u003Cth>`password_hash()` natif PHP\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>8.x\u003C\u002Fth>\u003Cth>bcrypt (renforcé)\u003C\u002Fth>\u003Cth>`password_hash()` avec cost factor ajusté\u003C\u002Fth>\u003C\u002Ftr>\n\u003Cp>Si vous migrez depuis une version 1.4\u002F1.5 vers 1.7 ou 8.x, vos mots de passe sont en MD5 alors que le système attend du bcrypt. C'est la double peine.\u003C\u002Fp>\n\u003Ch2>Diagnostic : confirmer la cause\u003C\u002Fh2>\n\u003Ch3>Étape 1 : Vérifier la cookie key\u003C\u002Fh3>\n\u003Cp>Comparez la cookie key de votre sauvegarde avec celle du nouveau site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sur PrestaShop 1.6\u002F1.7 :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# Sur votre backup\ngrep '_COOKIE_KEY_' \u002Fchemin\u002Fbackup\u002Fconfig\u002Fsettings.inc.php\n\n# Sur le nouveau site\ngrep '_COOKIE_KEY_' \u002Fchemin\u002Fnouveau\u002Fconfig\u002Fsettings.inc.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Sur PrestaShop 8.x :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\ngrep 'cookie_key' \u002Fchemin\u002Fnouveau\u002Fapp\u002Fconfig\u002Fparameters.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si les valeurs diffèrent, vous avez trouvé la cause.\u003C\u002Fp>\n\u003Ch3>Étape 2 : Vérifier le format des mots de passe en base\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-sql\">\nSELECT id_customer, email, LEFT(passwd, 10) AS passwd_preview, LENGTH(passwd) AS passwd_length\nFROM ps_customer\nLIMIT 10;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>**Longueur 32 caractères** → hash MD5 (ancien format)\u003C\u002Fli>\n\u003Cli>**Commence par `$2y$`** → hash bcrypt (format moderne)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Si tous vos mots de passe font 32 caractères, vous êtes face à des hash MD5 hérités.\u003C\u002Fp>\n\u003Ch2>Les 3 solutions\u003C\u002Fh2>\n\u003Ch3>Solution 1 : Restaurer la cookie key d'origine (recommandé)\u003C\u002Fh3>\n\u003Cp>C'est la solution la plus simple et la moins invasive. Il suffit de reporter l'ancienne cookie key dans la configuration du nouveau site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sur PrestaShop 1.6\u002F1.7 :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Éditez \u003Ccode>config\u002Fsettings.inc.php\u003C\u002Fcode> et remplacez la nouvelle cookie key par l'ancienne :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\ndefine('_COOKIE_KEY_', 'votre_ancienne_cle_ici');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Sur PrestaShop 8.x :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Éditez \u003Ccode>app\u002Fconfig\u002Fparameters.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n'cookie_key' =&gt; 'votre_ancienne_cle_ici',\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Puis videz le cache :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\nphp bin\u002Fconsole cache:clear --env=prod\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Avantage :\u003C\u002Fstrong> tous les clients retrouvent leur accès immédiatement, sans aucune action de leur part.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Prérequis :\u003C\u002Fstrong> vous devez avoir conservé une sauvegarde de vos fichiers de configuration avant la mise à jour. C'est pour cette raison qu'une \u003Cstrong>sauvegarde complète (fichiers + base de données) est indispensable avant toute migration\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>Solution 2 : Migration progressive des mots de passe (bcrypt)\u003C\u002Fh3>\n\u003Cp>Si vous n'avez plus la cookie key d'origine, ou si vous souhaitez profiter de la migration pour passer tous les mots de passe en bcrypt, vous pouvez modifier la logique d'authentification pour gérer les deux formats.\u003C\u002Fp>\n\u003Cp>Créez un override de la classe \u003Ccode>Customer\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F override\u002Fclasses\u002FCustomer.php\nclass Customer extends CustomerCore\n{\n    public function getByEmail($email, $plaintextPassword = null, $ignoreGuest = true)\n    {\n        $customer = parent::getByEmail($email, null, $ignoreGuest);\n        \n        if (!Validate::isLoadedObject($customer)) {\n            return false;\n        }\n        \n        if ($plaintextPassword === null) {\n            return $customer;\n        }\n        \n        \u002F\u002F Vérification bcrypt moderne (PrestaShop 1.7+\u002F8.x)\n        if (password_verify($plaintextPassword, $customer-&gt;passwd)) {\n            return $customer;\n        }\n        \n        \u002F\u002F Fallback MD5 legacy avec l'ancienne cookie key\n        $legacyCookieKey = 'VOTRE_ANCIENNE_COOKIE_KEY';\n        $legacyHash = md5($legacyCookieKey . $plaintextPassword);\n        \n        if ($legacyHash === $customer-&gt;passwd) {\n            \u002F\u002F Rehash en bcrypt pour la prochaine connexion\n            $customer-&gt;passwd = password_hash($plaintextPassword, PASSWORD_BCRYPT);\n            $customer-&gt;save();\n            \n            return $customer;\n        }\n        \n        return false;\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Avantage :\u003C\u002Fstrong> migration transparente et progressive. Chaque client qui se connecte voit son mot de passe automatiquement converti en bcrypt.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Inconvénient :\u003C\u002Fstrong> les clients qui ne se reconnectent jamais garderont un hash MD5 en base.\u003C\u002Fp>\n\u003Ch3>Solution 3 : Réinitialisation par email (dernier recours)\u003C\u002Fh3>\n\u003Cp>Si vous n'avez ni l'ancienne cookie key, ni la possibilité de mettre en place la solution 2, il reste l'option de demander à vos clients de cliquer sur « Mot de passe oublié ».\u003C\u002Fp>\n\u003Cp>Pour limiter l'impact, envoyez un email proactif :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F Script de notification en masse\n$customers = Customer::getCustomers(true);\n\nforeach ($customers as $customerData) {\n    $customer = new Customer($customerData['id_customer']);\n    \n    \u002F\u002F Générer un token de réinitialisation\n    $token = md5(uniqid(mt_rand(), true));\n    $customer-&gt;reset_password_token = $token;\n    $customer-&gt;reset_password_validity = date('Y-m-d H:i:s', strtotime('+72 hours'));\n    $customer-&gt;save();\n    \n    \u002F\u002F Envoyer l'email personnalisé\n    Mail::Send(\n        (int) Configuration::get('PS_LANG_DEFAULT'),\n        'password_query',\n        'Mise à jour de votre compte - Action requise',\n        [\n            '{email}' =&gt; $customer-&gt;email,\n            '{lastname}' =&gt; $customer-&gt;lastname,\n            '{firstname}' =&gt; $customer-&gt;firstname,\n            '{url}' =&gt; Context::getContext()-&gt;link-&gt;getPageLink(\n                'password',\n                true,\n                null,\n                'token=' . $token . '&id_customer=' . (int) $customer-&gt;id . '&reset_token=' . $token\n            ),\n        ],\n        $customer-&gt;email,\n        $customer-&gt;firstname . ' ' . $customer-&gt;lastname\n    );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Avantage :\u003C\u002Fstrong> aucune modification technique du système d'authentification.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Inconvénient :\u003C\u002Fstrong> friction utilisateur importante, risque de perte de clients inactifs.\u003C\u002Fp>\n\u003Ch2>Bonnes pratiques pour éviter ce problème\u003C\u002Fh2>\n\u003Ch3>Avant toute mise à jour\u003C\u002Fh3>\n\u003Col>\n\u003Cli>**Sauvegardez vos fichiers ET votre base de données** — c'est non-négociable\u003C\u002Fli>\n\u003Cli>**Notez votre cookie key** dans un endroit sûr, séparé de la sauvegarde\u003C\u002Fli>\n\u003Cli>**Testez la migration sur un environnement de staging** avant de toucher à la production\u003C\u002Fli>\n\u003Cli>**Documentez la version source et la version cible** de votre migration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Checklist post-migration\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# 1. Vérifier que la cookie key est correcte\ngrep '_COOKIE_KEY_' config\u002Fsettings.inc.php\n\n# 2. Tester une connexion client\ncurl -X POST https:\u002F\u002Fvotre-boutique.com\u002Fconnexion \\\n  -d 'email=client-test@example.com&password=test123'\n\n# 3. Vérifier les logs d'erreur\ntail -f var\u002Flogs\u002Fprod.log | grep -i 'auth\\|login\\|password'\n\n# 4. Contrôler le format des mots de passe en base\nmysql -e \"SELECT COUNT(*), LENGTH(passwd) FROM ps_customer GROUP BY LENGTH(passwd);\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Cas particulier : migration depuis PrestaShop 1.4\u003C\u002Fh2>\n\u003Cp>Les boutiques migrant depuis PrestaShop 1.4 (ou antérieur) ont un défi supplémentaire : les mots de passe étaient hashés en MD5 simple, sans cookie key. Le hash était simplement \u003Ccode>md5($password)\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Dans ce cas, la solution 2 doit être adaptée :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F Fallback MD5 sans cookie key (PrestaShop 1.4)\n$legacyHashNoCookie = md5($plaintextPassword);\nif ($legacyHashNoCookie === $customer-&gt;passwd) {\n    $customer-&gt;passwd = password_hash($plaintextPassword, PASSWORD_BCRYPT);\n    $customer-&gt;save();\n    return $customer;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Conclusion\u003C\u002Fh2>\n\u003Cp>La perte d'accès des clients après une migration PrestaShop est presque toujours liée à un changement de cookie key ou à une incompatibilité d'algorithme de hashage. La solution la plus fiable reste de \u003Cstrong>restaurer l'ancienne cookie key\u003C\u002Fstrong> — d'où l'importance capitale de sauvegarder ses fichiers de configuration avant toute opération de mise à jour.\u003C\u002Fp>\n\u003Cp>Pour les migrations importantes (1.6 → 8.x par exemple), la solution de rehashage progressif offre le meilleur compromis entre sécurité et expérience utilisateur.\u003C\u002Fp>",[40,43,46,49,52],{"q":41,"a":42},"Pourquoi mes clients ne peuvent plus se connecter après la mise à jour PrestaShop ?","Dans la grande majorité des cas, c'est parce que la cookie key a changé lors de la mise à jour. Cette clé est utilisée pour vérifier les mots de passe hashés en base de données. Si elle change, tous les hash deviennent invalides et les connexions échouent. Vérifiez le fichier config\u002Fsettings.inc.php (ou app\u002Fconfig\u002Fparameters.php sur PS 8.x) et comparez la valeur avec votre sauvegarde.",{"q":44,"a":45},"Comment retrouver la cookie key d'origine si je n'ai pas de sauvegarde ?","Sans sauvegarde de vos fichiers, il est malheureusement impossible de retrouver l'ancienne cookie key. Vous devrez alors soit mettre en place un système de rehashage progressif (override de la classe Customer avec fallback MD5), soit demander à vos clients de réinitialiser leur mot de passe via le lien « Mot de passe oublié ». C'est la raison pour laquelle une sauvegarde complète avant toute migration est absolument indispensable.",{"q":47,"a":48},"Est-il possible de convertir les mots de passe MD5 en bcrypt automatiquement ?","Oui, mais uniquement au moment de la connexion du client, car le hash MD5 est irréversible — on ne peut pas en extraire le mot de passe en clair. La technique consiste à créer un override qui tente d'abord la vérification bcrypt, puis en fallback vérifie le hash MD5 legacy. Si le MD5 correspond, le mot de passe est immédiatement rehashé en bcrypt et sauvegardé. Les clients qui ne se reconnectent jamais garderont leur ancien hash.",{"q":50,"a":51},"La mise à jour de PrestaShop 1.6 vers 8.x change-t-elle automatiquement la cookie key ?","Non, le processus de mise à jour officiel conserve normalement la cookie key existante. Le problème survient quand on fait une installation fraîche de PrestaShop 8.x puis qu'on importe la base de données de l'ancien site : dans ce cas, une nouvelle cookie key est générée lors de l'installation et elle ne correspond pas aux hash en base. Utilisez toujours le module de mise à jour officiel (autoupgrade) qui préserve la configuration.",{"q":53,"a":54},"Combien de temps faut-il pour que tous les mots de passe soient migrés en bcrypt ?","Avec la méthode de rehashage progressif, cela dépend entièrement de l'activité de vos clients. En général, 60 à 80 % des clients actifs se reconnectent dans les 30 premiers jours. Après 3 mois, il reste souvent 10 à 20 % de comptes dormants qui conservent leur ancien hash MD5. Pour ces comptes, vous pouvez envisager une campagne email ciblée les invitant à se reconnecter, ou accepter que le fallback MD5 reste actif indéfiniment.","Après une mise à jour PrestaShop, les connexions clients échouent généralement parce que la cookie key a changé, rendant tous les hash de mots de passe invalides. La solution la plus fiable est de restaurer l'ancienne cookie key depuis votre sauvegarde, ou de mettre en place un rehashage progressif MD5 → bcrypt via un override de la classe Customer.",6,"2026-03-21T13:28:35.000Z",[],"PrestaShop pour les développeurs",{"academy":61,"blog":62,"expertise":74},[],[63,68,71],{"title":64,"url":65,"score":66,"type":67},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back",1,"blog",{"title":69,"url":70,"score":66,"type":67},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":72,"url":73,"score":66,"type":67},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[],{"header":76},{"logo":77,"topBar":83,"contactEmail":88,"features":89,"navBar":84},{"src":78,"alt":79,"text":80,"href":81,"class":82},"\u002Flogo-ac.svg","Alexandre Carette — Architecte E-commerce Souverain","Alexandre Carette","\u002F","h-10 w-10",{"message":84,"showLanguages":85,"align":86,"languages":87},null,false,"left",[],"contact@alexandrecarette.fr",{"showSearch":85,"showWishlist":85,"showLogin":20,"showContact":85,"showCart":85,"stickyHeader":20,"headerLayout":90},"inline",{"columns":92},[93,108,138,159],{"title":94,"links":95},"Plateforme",[96,99,102,105],{"label":97,"href":98,"external":85},"Offre Starter (2 500 €)","\u002Foffre-starter",{"label":100,"href":101,"external":85},"Devenir Ambassadeur","\u002Fambassadeur",{"label":103,"href":104,"external":85},"Modules PrestaShop","\u002Fmodules",{"label":106,"href":107,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":109,"links":110},"Le Synedre",[111,114,117,120,123,126,129,132,135],{"label":112,"href":113,"external":85},"L'histoire","\u002Fsynedre",{"label":115,"href":116,"external":85},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":118,"href":119,"external":85},"L'équipe","\u002Fequipe",{"label":121,"href":122,"external":85},"Le réacteur en direct","\u002Freacteur",{"label":124,"href":125,"external":85},"Le Drill (entraînement)","\u002Fdrill",{"label":127,"href":128,"external":85},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":130,"href":131,"external":85},"Les agents IA","\u002Fagents-ia",{"label":133,"href":134,"external":85},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":136,"href":137,"external":85},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":139,"links":140},"Ressources",[141,144,147,150,153,156],{"label":142,"href":143,"external":85},"Blog","\u002Fblog",{"label":145,"href":146,"external":85},"Academy","\u002Facademy",{"label":148,"href":149,"external":85},"Dictionnaire","\u002Fdictionnaire",{"label":151,"href":152,"external":85},"Expertise PrestaShop","\u002Fexpertise",{"label":154,"href":155,"external":85},"Flywheel","\u002Fflywheel",{"label":157,"href":158,"external":85},"Manifeste","\u002Fmanifeste",{"title":160,"links":161},"À propos",[162,164,167],{"label":80,"href":163,"external":85},"\u002Fa-propos",{"label":165,"href":166,"external":85},"Dossier de presse","\u002Fpresse",{"label":168,"href":169,"external":85},"Contact","\u002Fcontact",{"items":171},[172,180,185,191,199,207,213,218],{"id":173,"type":174,"label":175,"href":152,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":177,"children":178,"psChildren":179},41,"link",{"fr":176},"Expertise",0,[],[],{"id":181,"type":174,"label":182,"href":143,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":66,"children":183,"psChildren":184},42,{"fr":142},[],[],{"id":186,"type":174,"label":187,"href":104,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":188,"children":189,"psChildren":190},43,{"fr":103},2,[],[],{"id":192,"type":174,"label":193,"href":195,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":196,"children":197,"psChildren":198},44,{"fr":194},"Outils IA","\u002Foutils-ia",3,[],[],{"id":200,"type":174,"label":201,"href":98,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":203,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":204,"children":205,"psChildren":206},45,{"fr":202},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":208,"type":174,"label":209,"href":146,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":210,"children":211,"psChildren":212},46,{"fr":145},5,[],[],{"id":214,"type":174,"label":215,"href":163,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":56,"children":216,"psChildren":217},47,{"fr":160},[],[],{"id":219,"type":174,"label":220,"href":169,"icon":84,"description":84,"badge":84,"groupTitle":84,"style":84,"gridColumns":84,"cssClass":84,"psCategoryId":84,"showPsChildren":85,"position":221,"children":222,"psChildren":223},48,{"fr":168},7,[],[],{"footer":225},{"theme":226,"description":84,"hours":84,"logo":227,"contact":228,"social":229,"bottomBar":239},"dark",{"src":78,"href":81,"alt":80},{"email":84,"phone":84,"address":84,"cta":84},[230,233,236],{"platform":231,"href":232,"label":231},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":234,"href":235,"label":234},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":237,"href":238,"label":237},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":84}]