[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"megamenu":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":92,"$fS4e3O5vvvCaKj-zUKIoiw4iG5_4pACMcgu2TyPNL040":160,"footer-db":198,"header-db":217,"$fHjQeWVcAfYQQ_CRRkmNiFDnJfL50lPMfyJ3hJjPypu4":228},{"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",{"items":23},[24,35,43,51,59,68,76,84],{"id":25,"type":26,"label":27,"href":29,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":32,"children":33,"psChildren":34},41,"link",{"fr":28},"Expertise","\u002Fexpertise",null,false,0,[],[],{"id":36,"type":26,"label":37,"href":39,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":40,"children":41,"psChildren":42},42,{"fr":38},"Blog","\u002Fblog",1,[],[],{"id":44,"type":26,"label":45,"href":47,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":48,"children":49,"psChildren":50},43,{"fr":46},"Modules PrestaShop","\u002Fmodules",2,[],[],{"id":52,"type":26,"label":53,"href":55,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":56,"children":57,"psChildren":58},44,{"fr":54},"Outils IA","\u002Foutils-ia",3,[],[],{"id":60,"type":26,"label":61,"href":63,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":64,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":65,"children":66,"psChildren":67},45,{"fr":62},"Offre Starter ✨","\u002Foffre-starter",{"highlight":20},4,[],[],{"id":69,"type":26,"label":70,"href":72,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":73,"children":74,"psChildren":75},46,{"fr":71},"Academy","\u002Facademy",5,[],[],{"id":77,"type":26,"label":78,"href":80,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":81,"children":82,"psChildren":83},47,{"fr":79},"À propos","\u002Fa-propos",6,[],[],{"id":85,"type":26,"label":86,"href":88,"icon":30,"description":30,"badge":30,"groupTitle":30,"style":30,"gridColumns":30,"cssClass":30,"psCategoryId":30,"showPsChildren":31,"position":89,"children":90,"psChildren":91},48,{"fr":87},"Contact","\u002Fcontact",7,[],[],{"columns":93},[94,106,136,152],{"title":95,"links":96},"Plateforme",[97,99,102,103],{"label":98,"href":63,"external":31},"Offre Starter (2 500 €)",{"label":100,"href":101,"external":31},"Devenir Ambassadeur","\u002Fambassadeur",{"label":46,"href":47,"external":31},{"label":104,"href":105,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":107,"links":108},"Le Synedre",[109,112,115,118,121,124,127,130,133],{"label":110,"href":111,"external":31},"L'histoire","\u002Fsynedre",{"label":113,"href":114,"external":31},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":116,"href":117,"external":31},"L'équipe","\u002Fequipe",{"label":119,"href":120,"external":31},"Le réacteur en direct","\u002Freacteur",{"label":122,"href":123,"external":31},"Le Drill (entraînement)","\u002Fdrill",{"label":125,"href":126,"external":31},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":128,"href":129,"external":31},"Les agents IA","\u002Fagents-ia",{"label":131,"href":132,"external":31},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":134,"href":135,"external":31},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":137,"links":138},"Ressources",[139,140,141,144,146,149],{"label":38,"href":39,"external":31},{"label":71,"href":72,"external":31},{"label":142,"href":143,"external":31},"Dictionnaire","\u002Fdictionnaire",{"label":145,"href":29,"external":31},"Expertise PrestaShop",{"label":147,"href":148,"external":31},"Flywheel","\u002Fflywheel",{"label":150,"href":151,"external":31},"Manifeste","\u002Fmanifeste",{"title":79,"links":153},[154,156,159],{"label":155,"href":80,"external":31},"Alexandre Carette",{"label":157,"href":158,"external":31},"Dossier de presse","\u002Fpresse",{"label":87,"href":88,"external":31},{"title":161,"slug":162,"metaDescription":163,"category":164,"tags":165,"difficulty":172,"psVersions":173,"content":177,"faq":178,"tldr":194,"readingTime":73,"generatedAt":195,"publishDate":195,"relatedArticles":196,"sourceCategory":197},"Simplifier le tunnel de commande PrestaShop : supprimer des étapes","simplifier-tunnel-commande-prestashop-supprimer-etapes","Comment simplifier le checkout PrestaShop en supprimant les étapes adresses et frais de port. Guide technique avec code Smarty et configuration.","commandes",[166,167,168,169,170,171],"checkout","tunnel de commande","smarty","transporteur","conversion","breadcrumb","intermediaire",[174,175,176],"1.6","1.7","8.x","\u003Ch2>Pourquoi simplifier le tunnel de commande PrestaShop\u003C\u002Fh2>\n\u003Cp>Le tunnel de commande standard de PrestaShop comporte plusieurs étapes : identification, adresses, mode de livraison, paiement. Pour certains business models — vente de produits dématérialisés, services en ligne, abonnements — les étapes d'adresse de livraison et de choix du transporteur n'ont aucun sens.\u003C\u002Fp>\n\u003Cp>Supprimer ces étapes inutiles réduit la friction et améliore significativement le taux de conversion. Chaque écran supplémentaire dans un tunnel d'achat représente un point de fuite potentiel pour le client.\u003C\u002Fp>\n\u003Ch2>Étape 1 : Neutraliser l'étape des frais de port\u003C\u002Fh2>\n\u003Cp>La méthode la plus propre pour éliminer l'étape de choix du transporteur consiste à configurer un transporteur unique et gratuit.\u003C\u002Fp>\n\u003Ch3>Configuration dans le back-office\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Rendez-vous dans **Livraison > Transporteurs**\u003C\u002Fli>\n\u003Cli>Désactivez tous les transporteurs existants (ne les supprimez pas, vous pourriez en avoir besoin plus tard)\u003C\u002Fli>\n\u003Cli>Créez un transporteur unique avec les paramètres suivants :\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>   - \u003Cstrong>Nom\u003C\u002Fstrong> : « Livraison incluse » ou « Téléchargement » selon votre contexte\u003C\u002Fp>\n\u003Cp>   - \u003Cstrong>Frais de port\u003C\u002Fstrong> : 0 € pour toutes les tranches\u003C\u002Fp>\n\u003Cp>   - \u003Cstrong>Zones\u003C\u002Fstrong> : activez uniquement les zones pertinentes\u003C\u002Fp>\n\u003Cp>   - \u003Cstrong>Taille\u002Fpoids max\u003C\u002Fstrong> : valeurs suffisamment élevées pour couvrir tout votre catalogue\u003C\u002Fp>\n\u003Cp>Avec un seul transporteur gratuit, PrestaShop sélectionne automatiquement ce transporteur et l'étape devient transparente pour le client.\u003C\u002Fp>\n\u003Ch3>Sur PrestaShop 8.x\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 8.x, le tunnel de commande en une page (OPC) est géré différemment. Le checkout est rendu côté front via des composants JavaScript. Avec un seul transporteur gratuit, l'étape de livraison est toujours affichée mais pré-remplie. Pour aller plus loin, vous pouvez masquer visuellement la section via CSS :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-css\">\n\u002F* Dans votre thème custom - assets\u002Fcss\u002Fcustom.css *\u002F\n#checkout-delivery-step {\n  display: none;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Attention\u003C\u002Fstrong> : masquer via CSS est une approche rapide, mais le bloc reste dans le DOM. Pour une solution plus robuste sur PS 8.x, créez un module qui hook sur \u003Ccode>actionPresentOrderStep\u003C\u002Fcode> pour modifier le comportement du step.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Étape 2 : Gérer l'adresse de livraison\u003C\u002Fh2>\n\u003Cp>Pour les produits virtuels, PrestaShop peut être configuré pour ne pas exiger d'adresse de livraison :\u003C\u002Fp>\n\u003Col>\n\u003Cli>Assurez-vous que tous vos produits sont marqués comme **produits virtuels** dans leur fiche produit\u003C\u002Fli>\n\u003Cli>PrestaShop détectera automatiquement un panier 100% virtuel et sautera l'étape d'adresse de livraison\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Si vos produits ne sont pas virtuels mais que la livraison n'est pas pertinente (par exemple, des prestations de service), vous pouvez :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Réduire les champs d'adresse au strict minimum requis (pays, pour le calcul de TVA)\u003C\u002Fli>\n\u003Cli>Utiliser un module de checkout simplifié\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Étape 3 : Nettoyer le fil d'Ariane\u003C\u002Fh2>\n\u003Cp>Même après avoir neutralisé ces étapes, le breadcrumb peut encore afficher des mentions comme « Frais de port » dans la navigation. Sur PrestaShop 1.6, cela se corrige dans le template Smarty \u003Ccode>breadcrumb.tpl\u003C\u002Fcode> de votre thème.\u003C\u002Fp>\n\u003Ch3>Correction du breadcrumb (PrestaShop 1.6)\u003C\u002Fh3>\n\u003Cp>Le principe est d'appliquer un filtre \u003Ccode>replace\u003C\u002Fcode> sur la variable \u003Ccode>$path\u003C\u002Fcode> pour supprimer les mentions indésirables :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n{* breadcrumb.tpl - Suppression des mentions de frais de port *}\n&lt;div class=\"breadcrumb\"&gt;\n    &lt;a href=\"{$base_dir}\" title=\"{l s='Retour à l'accueil'}\"&gt;\n        &lt;img src=\"{$img_dir}icon\u002Fhome.gif\" height=\"26\" width=\"26\" alt=\"{l s='Accueil'}\" \u002F&gt;\n    &lt;\u002Fa&gt;\n    {if isset($path) AND $path}\n        &lt;span class=\"navigation-pipe\"&gt;\n            {$navigationPipe|escape:html:'UTF-8'}\n        &lt;\u002Fspan&gt;\n        {if !$path|strpos:'span'}\n            &lt;span class=\"navigation_page\"&gt;\n                {$path|replace:'Frais de port -&gt;':''}\n            &lt;\u002Fspan&gt;\n        {else}\n            {$path|replace:'Frais de port -&gt;':''}\n        {\u002Fif}\n    {\u002Fif}\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Le filtre Smarty \u003Ccode>|replace\u003C\u002Fcode> permet de cibler et supprimer proprement toute mention textuelle sans toucher à la logique de navigation.\u003C\u002Fp>\n\u003Ch3>Sur PrestaShop 1.7 et 8.x\u003C\u002Fh3>\n\u003Cp>Le breadcrumb est géré différemment sur les versions récentes. Il est construit via le \u003Ccode>BreadcrumbPresenter\u003C\u002Fcode> côté PHP. Pour le personnaliser :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F Dans un module custom\npublic function hookActionBuildBreadcrumb(array $params)\n{\n    $breadcrumb = $params['breadcrumb'];\n    \n    \u002F\u002F Filtrer les étapes indésirables\n    $filtered = array_filter($breadcrumb['links'], function($link) {\n        return stripos($link['title'], 'frais de port') === false\n            && stripos($link['title'], 'shipping') === false;\n    });\n    \n    $params['breadcrumb']['links'] = array_values($filtered);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Étape 4 : Vider le cache après modification\u003C\u002Fh2>\n\u003Cp>Après toute modification de templates ou de configuration, il est impératif de vider le cache de PrestaShop :\u003C\u002Fp>\n\u003Col>\n\u003Cli>**Back-office** : Paramètres avancés > Performances > Vider le cache\u003C\u002Fli>\n\u003Cli>**Manuellement** : supprimer le contenu de `var\u002Fcache\u002Fprod\u002F` et `var\u002Fcache\u002Fdev\u002F` (PS 1.7+) ou `cache\u002Fsmarty\u002Fcompile\u002F` et `cache\u002Fsmarty\u002Fcache\u002F` (PS 1.6)\u003C\u002Fli>\n\u003Cli>**Vérifiez le bon thème** : si vos modifications ne s'appliquent pas, assurez-vous de modifier les fichiers du thème actif et non ceux du thème par défaut\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# PrestaShop 8.x \u002F 1.7\nrm -rf var\u002Fcache\u002Fprod\u002F* var\u002Fcache\u002Fdev\u002F*\n\n# PrestaShop 1.6\nrm -rf cache\u002Fsmarty\u002Fcompile\u002F* cache\u002Fsmarty\u002Fcache\u002F*\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Bonnes pratiques pour un tunnel simplifié\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>**Ne supprimez jamais d'étapes via des hacks en base de données** : utilisez toujours la configuration ou les overrides\u003C\u002Fli>\n\u003Cli>**Testez le parcours complet** : passez une commande test de A à Z après chaque modification\u003C\u002Fli>\n\u003Cli>**Pensez à la TVA** : même sans livraison physique, le pays du client peut être nécessaire pour le calcul de la TVA (règles UE sur les services numériques)\u003C\u002Fli>\n\u003Cli>**Conservez l'adresse de facturation** : elle reste obligatoire légalement pour l'émission de factures\u003C\u002Fli>\n\u003Cli>**Utilisez un thème enfant** : ne modifiez jamais les fichiers du thème parent, vos changements seraient écrasés à la prochaine mise à jour\u003C\u002Fli>\n\u003C\u002Ful>",[179,182,185,188,191],{"q":180,"a":181},"Comment supprimer l'étape de livraison dans le tunnel de commande PrestaShop ?","La méthode la plus fiable consiste à créer un transporteur unique avec des frais à 0 € et à désactiver tous les autres transporteurs. PrestaShop sélectionnera automatiquement ce transporteur, rendant l'étape transparente. Sur PrestaShop 8.x, vous pouvez compléter en masquant visuellement le bloc via CSS ou en créant un module qui intervient sur le hook actionPresentOrderStep.",{"q":183,"a":184},"Peut-on supprimer l'étape d'adresse pour les produits virtuels sur PrestaShop ?","Oui, PrestaShop gère nativement ce cas. Si tous les produits du panier sont marqués comme produits virtuels dans leur fiche produit, l'étape d'adresse de livraison est automatiquement ignorée. Seule l'adresse de facturation reste demandée, car elle est nécessaire pour la conformité légale des factures.",{"q":186,"a":187},"Pourquoi mes modifications de template ne s'affichent pas après avoir modifié le breadcrumb ?","Deux causes fréquentes : le cache Smarty ou de PrestaShop n'a pas été vidé, ou vous modifiez le mauvais fichier template (celui du thème par défaut au lieu du thème actif). Videz systématiquement le cache après toute modification de .tpl, et vérifiez dans le back-office quel thème est réellement activé. Sur PrestaShop 1.6, les fichiers compilés sont dans cache\u002Fsmarty\u002Fcompile\u002F. Sur 1.7 et 8.x, ils sont dans var\u002Fcache\u002F.",{"q":189,"a":190},"Est-il légal de supprimer l'étape d'adresse dans un tunnel de commande e-commerce ?","Vous pouvez supprimer l'adresse de livraison si vous ne livrez pas de produits physiques. En revanche, l'adresse de facturation reste obligatoire pour la conformité fiscale (émission de factures). De plus, depuis les règles TVA européennes sur les services numériques, le pays du client peut être nécessaire pour appliquer le bon taux de TVA.",{"q":192,"a":193},"Comment simplifier le checkout sur PrestaShop 8 sans module payant ?","Configurez un transporteur unique gratuit, marquez vos produits comme virtuels si applicable, et utilisez un thème enfant pour masquer les sections inutiles via CSS. Pour une personnalisation plus poussée, créez un petit module gratuit qui utilise les hooks natifs comme actionBuildBreadcrumb et actionPresentOrderStep pour modifier le comportement du tunnel sans toucher au core.","Pour simplifier le tunnel de commande PrestaShop en supprimant les étapes d'adresse et de frais de port, configurez un transporteur unique gratuit, utilisez les produits virtuels pour ignorer l'adresse de livraison, et nettoyez le breadcrumb via les templates Smarty (PS 1.6) ou les hooks PHP (PS 8.x).","2026-03-21T14:38:21.000Z",[],"PrestaShop pour les développeurs",{"footer":199},{"theme":200,"description":30,"hours":30,"logo":201,"contact":204,"social":205,"bottomBar":215,"newsletter":216},"dark",{"src":202,"href":203,"alt":155},"\u002Flogo-ac.svg","\u002F",{"email":30,"phone":30,"address":30,"cta":30},[206,209,212],{"platform":207,"href":208,"label":207},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":210,"href":211,"label":210},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":213,"href":214,"label":213},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":30},{"show":31,"title":30,"description":30,"placeholder":30,"ctaLabel":30,"consentText":30},{"header":218},{"logo":219,"topBar":222,"contactEmail":225,"features":226,"navBar":30},{"src":202,"alt":220,"text":155,"href":203,"class":221},"Alexandre Carette — Architecte E-commerce Souverain","h-10 w-10",{"message":30,"showLanguages":31,"align":223,"languages":224},"left",[],"contact@alexandrecarette.fr",{"showSearch":31,"showWishlist":31,"showLogin":20,"showContact":31,"showCart":31,"showBlogLink":31,"showContactLink":31,"showGiftcardLink":31,"showStoresLink":31,"stickyHeader":20,"headerLayout":227},"inline",{"academy":229,"blog":230,"expertise":241},[],[231,235,238],{"title":232,"url":233,"score":40,"type":234},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back","blog",{"title":236,"url":237,"score":40,"type":234},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":239,"url":240,"score":40,"type":234},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[]]