Simplifier le tunnel de commande PrestaShop : supprimer des étapes
Comment simplifier le checkout PrestaShop en supprimant les étapes adresses et frais de port. Guide technique avec code Smarty et configuration.
En bref : 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).
Pourquoi simplifier le tunnel de commande PrestaShop
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.
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.
Étape 1 : Neutraliser l'étape des frais de port
La méthode la plus propre pour éliminer l'étape de choix du transporteur consiste à configurer un transporteur unique et gratuit.
Configuration dans le back-office
- Rendez-vous dans **Livraison > Transporteurs**
- Désactivez tous les transporteurs existants (ne les supprimez pas, vous pourriez en avoir besoin plus tard)
- Créez un transporteur unique avec les paramètres suivants :
- Assurez-vous que tous vos produits sont marqués comme **produits virtuels** dans leur fiche produit
- PrestaShop détectera automatiquement un panier 100% virtuel et sautera l'étape d'adresse de livraison
- Réduire les champs d'adresse au strict minimum requis (pays, pour le calcul de TVA)
- Utiliser un module de checkout simplifié
- **Back-office** : Paramètres avancés > Performances > Vider le cache
- **Manuellement** : supprimer le contenu de `var/cache/prod/` et `var/cache/dev/` (PS 1.7+) ou `cache/smarty/compile/` et `cache/smarty/cache/` (PS 1.6)
- **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
- **Ne supprimez jamais d'étapes via des hacks en base de données** : utilisez toujours la configuration ou les overrides
- **Testez le parcours complet** : passez une commande test de A à Z après chaque modification
- **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)
- **Conservez l'adresse de facturation** : elle reste obligatoire légalement pour l'émission de factures
- **Utilisez un thème enfant** : ne modifiez jamais les fichiers du thème parent, vos changements seraient écrasés à la prochaine mise à jour
- Nom : « Livraison incluse » ou « Téléchargement » selon votre contexte
- Frais de port : 0 € pour toutes les tranches
- Zones : activez uniquement les zones pertinentes
- Taille/poids max : valeurs suffisamment élevées pour couvrir tout votre catalogue
Avec un seul transporteur gratuit, PrestaShop sélectionne automatiquement ce transporteur et l'étape devient transparente pour le client.
Sur PrestaShop 8.x
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 :
/* Dans votre thème custom - assets/css/custom.css */
#checkout-delivery-step {
display: none;
}
Attention : 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
actionPresentOrderSteppour modifier le comportement du step.
Étape 2 : Gérer l'adresse de livraison
Pour les produits virtuels, PrestaShop peut être configuré pour ne pas exiger d'adresse de livraison :
Si vos produits ne sont pas virtuels mais que la livraison n'est pas pertinente (par exemple, des prestations de service), vous pouvez :
Étape 3 : Nettoyer le fil d'Ariane
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 breadcrumb.tpl de votre thème.
Correction du breadcrumb (PrestaShop 1.6)
Le principe est d'appliquer un filtre replace sur la variable $path pour supprimer les mentions indésirables :
{* breadcrumb.tpl - Suppression des mentions de frais de port *}
<div class="breadcrumb">
<a href="{$base_dir}" title="{l s='Retour à l'accueil'}">
<img src="{$img_dir}icon/home.gif" height="26" width="26" alt="{l s='Accueil'}" />
</a>
{if isset($path) AND $path}
<span class="navigation-pipe">
{$navigationPipe|escape:html:'UTF-8'}
</span>
{if !$path|strpos:'span'}
<span class="navigation_page">
{$path|replace:'Frais de port ->':''}
</span>
{else}
{$path|replace:'Frais de port ->':''}
{/if}
{/if}
</div>
Le filtre Smarty |replace permet de cibler et supprimer proprement toute mention textuelle sans toucher à la logique de navigation.
Sur PrestaShop 1.7 et 8.x
Le breadcrumb est géré différemment sur les versions récentes. Il est construit via le BreadcrumbPresenter côté PHP. Pour le personnaliser :
// Dans un module custom
public function hookActionBuildBreadcrumb(array $params)
{
$breadcrumb = $params['breadcrumb'];
// Filtrer les étapes indésirables
$filtered = array_filter($breadcrumb['links'], function($link) {
return stripos($link['title'], 'frais de port') === false
&& stripos($link['title'], 'shipping') === false;
});
$params['breadcrumb']['links'] = array_values($filtered);
}
Étape 4 : Vider le cache après modification
Après toute modification de templates ou de configuration, il est impératif de vider le cache de PrestaShop :
# PrestaShop 8.x / 1.7
rm -rf var/cache/prod/* var/cache/dev/*
# PrestaShop 1.6
rm -rf cache/smarty/compile/* cache/smarty/cache/*
Bonnes pratiques pour un tunnel simplifié
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.