E-commerce
30 juin 2026
« Livraison offerte dès 59 € » en header, rien sur la fiche produit, une ligne grise au checkout. Le client ajoute pour 54 €, découvre 5,90 € de port, ouvre le chat : « Vous mentez sur la livraison gratuite. » Le seuil existe. Il n'est pas montré au bon endroit, au bon moment, avec le bon niveau de détail.
DataFirefly observe qu'une barre de progression en temps réel double l'efficacité du levier franco vs un simple texte statique, avec hausse de panier moyen de 8 à 18 % selon les boutiques testées (DataFirefly, barre franco 2026). Sendcloud rappelle que 74,3 % des Français ajoutent un article pour atteindre le seuil quand il est visible et atteignable (Sendcloud, Delivery Compass 2025).
Ce guide #304 traite l'affichage UX des seuils livraison gratuite : emplacements, copy, barre, exceptions. Il complète support franco (#303) (SAV et litiges) avec l'angle réduction friction pré-achat et hausse AOV.
Sommaire
Pourquoi un seuil mal affiché génère-t-il autant de questions et d'abandons ?
Le client retient une promesse floue (« livraison offerte ») sans le montant, la base de calcul ni les exclusions. Au checkout, la surprise port devient une question support, voire un abandon.
Trois échecs UX fréquents
Seuil invisible jusqu'au checkout : aucune jauge panier, aucun gap chiffré
Messages contradictoires : bannière 49 €, shipping profile 65 €, popup -20 % sans précision
Exceptions cachées : Corse, express, produits lourds mentionnés seulement en CGV
Impact mesurable
Baymard estime que 48 % des abandons panier viennent de coûts supplémentaires dont les frais de port (Baymard, frais PDP 2025). Cartylabs note qu'un seuil trop haut fait monter l'abandon même si l'AOV progresse (Cartylabs, barre franco 2026). 72Technologies, sur 14 boutiques testées, place le sweet spot seuil à 1,5× panier moyen pour maximiser le revenu par session (72Technologies, A/B barres 2026).
Principe #304
Afficher tôt, chiffrer le gap, mettre à jour en temps réel, documenter les exceptions en une ligne cliquable. Moins de questions, plus de paniers qui franchissent le seuil.
En quoi diffère-t-il du support #303, de la page panier #159 et du glossaire ?
Cinq contenus voisins, cinq couches du parcours franco.
Support franco (#303)
Support livraison gratuite (#303) : FSHP-MAP, macros FRSH, litiges port. Le #304 agit en amont pour que ces tickets ne naissent pas.
Page panier (#159)
Page panier (#159) couvre réassurance globale. Le #304 approfondit la jauge franco et copy seuil sur drawer, /cart et checkout.
Communication frais (#204)
Expliquer les frais (#204) : psychologie et micro-copy. Le #304 : implémentation concrète barre + 3 états message.
Glossaire livraison gratuite
Le glossaire définit le concept. Le #304 : où et comment l'afficher sur Shopify DTC.
Bot shipping (#203)
Bot livraison (#203) répond ship_free_threshold. Le #304 alimente le bot avec les mêmes chiffres visibles à l'écran pour zéro contradiction.
Promesse #304
Cartographie FRANCO-UX, copy 3 états, specs barre, exceptions visibles, nudge gap, tests A/B, KPI friction.
Quelle cartographie FRANCO-UX pour couvrir tout le parcours ?
La cartographie FRANCO-UX liste chaque point de contact où le seuil doit apparaître, avec le même montant TTC et la même base de calcul.
7 emplacements prioritaires
Barre annonce site : « Livraison offerte dès {{seuil}} € TTC (FR métropole) »
PDP sous bouton panier : seuil + lien exceptions
Cart drawer : jauge + gap live (emplacement roi mobile)
Page /cart : barre pleine largeur + estimation port si < seuil
Checkout step shipping : rappel seuil + port appliqué ou 0 €
Pop-up add-to-cart : « Plus que {{gap}} € pour le franco »
Hub /pages/livraison : règle complète alignée FRANCO-POLICY (#303)
Règle de cohérence
Une seule variable franco_threshold_ttc injectée partout (Liquid, app barre, metafield shop). Changement seuil Black Friday : update unique, sync bannière + shipping profile + bot en < 1 h.
Audit rapide
Parcours invité mobile : noter chaque écran où le seuil apparaît ou disparaît. Objectif : zéro écran panier/checkout sans information franco.
Quels trois états de message et quelles copy utiliser ?
Fudge.ai recommande trois messages dynamiques plutôt qu'un texte fixe : vide, progression, débloqué (Fudge, barre Shopify 2026).
État 1 : panier vide ou loin du seuil
COPY-FRANCO-EMPTY : « Livraison standard offerte dès {{seuil}} € TTC en France métropolitaine. » Variante PDP : « Ajoutez au panier : il vous restera {{seuil}} € avant la livraison offerte. »
État 2 : en progression (goal gradient)
COPY-FRANCO-GAP : « Plus que {{gap}} € pour la livraison offerte. » Cartylabs : une barre à 80 % convertit deux fois mieux qu'à 20 % pour un gap identique (Cartylabs 2026). Sous 8 € restants : « Presque ! {{gap}} € et c'est offert. »
État 3 : seuil atteint
COPY-FRANCO-UNLOCK : « Livraison standard offerte sur cette commande. » Changement visuel : barre verte, icône check. Ne pas animer de façon intrusive (modale bloquante = friction checkout).
Interdits copy
« Livraison gratuite » sans préciser standard vs express
« Port offert » sans TTC ni zone
Pourcentage seul (« 65 % du seuil ») sans montant € restant
Comment calibrer le seuil affiché sans tuer la conversion ?
Le seuil affiché doit être calculé avant d'être communiqué. Un mauvais chiffre bien visible aggrave les litiges.
Formule de départ
Sendcloud : seuil 20 à 25 % au-dessus du panier moyen (Sendcloud, frais port Shopify). Eightx : bande optimale 15 à 25 % au-dessus AOV pour maximiser marge contribution (Eightx, marge franco 2026). Exemple : AOV 52 € → afficher 62 à 65 €, pas 89 € « parce que le concurrent ».
Arrondi psychologique
Privilégier fin 9 ou 5 (59 €, 65 €) si cohérent avec pricing catalogue. Speed-ecom rappelle : Shopify stocke en centimes, vérifier sync app barre et shipping profile (Speed-ecom, tuto barre 2026).
Seuils par market
Sendcloud : attente franco France ~33,50 € vs Espagne ~24 € (Sendcloud 2025). Afficher seuil géolocalisé si Markets actifs. Ne pas promettre 59 € FR sur boutique BE sans recalcul.
Signal d'ajustement
Si < 55 % des commandes atteignent le franco : seuil trop haut, barre ignorée. Si > 85 % : seuil trop bas, marge port grignotée. Cible : 60 à 75 % commandes franco.
Quelles specs techniques pour une barre de progression efficace ?
La barre progression franco n'est pas un bandeau décoratif : specs précises pour mobile et desktop.
Comportement obligatoire
Mise à jour AJAX à chaque +/- quantité, sans reload
Fill visuel proportionnel sous-total / seuil, pas seulement texte
Placement drawer au-dessus bouton checkout (Cartylabs)
Truncation mobile : wrap 2 lignes OK, scroll horizontal interdit
Accessibilité : aria-label « Plus que X euros sur Y pour livraison offerte »
Stack Shopify type
App barre (EA Barre, Fudge, theme section) + metafield shop.franco_threshold + shipping profile « free over X » identique. Tester panier 0 €, 50 %, 95 %, 100 %, 110 % seuil.
Cohérence checkout
Si barre dit « offert » mais checkout affiche 4,90 € : bug critique. QA hebdo : 3 parcours test avec CP Lyon, Ajaccio, Belgique. Voir frais cachés (#291).
Comment afficher les exceptions sans noyer le message principal ?
Les exceptions franco visibles réduisent les tickets fshp_zone_excl et fshp_heavy_excl du guide #303.
Pattern footnote cliquable
Sous la barre : « * Livraison standard France métropole. Exceptions : Corse, express, colis lourds. » Une ligne, lien hub, pas 200 mots sous le bouton panier.
Déclencheurs affichage contextuel
CP Corse saisi : « Franco standard non applicable. Tarif Corse : {{rate}} € ou seuil {{seuil_corse}} €. »
SKU heavy dans panier : « {{sku}} : livraison lourde, franco standard suspendu sur cette ligne. »
Express sélectionné : « Franco = Colissimo standard. Express : +{{express}} €. »
Distinction livraison / retour
Ne jamais fusionner « retour gratuit » et « livraison offerte » sur la même ligne sans précision. Deux icônes, deux phrases. Réduit confusion documentée Afineo sur retours vs port aller.
Comment nudger le gap avec cross-sell sans spam ?
Le nudge gap franco transforme la barre en levier AOV quand le client est à 5 à 15 € du seuil.
Règles de suggestion
Activer si
0 < gap ≤ 15 €Proposer 1 à 2 SKU entre gap et gap + 12 €, marge positive
Exclure SKU déjà dans panier et produits heavy
Afficher économie nette : « Ajoutez {{sku}} {{price}} € → port {{saved}} € évité »
Emplacement
Sous la barre drawer, au-dessus lignes panier. Cart drawer = intent max (EasyAppSecom : +15 à 30 % AOV barres bien configurées, EasyAppSecom 2026). Croiser recommandations contextuelles et cross-sell bot seuil.
Exemple DTC accessoires
Panier 57 €, seuil 65 €, gap 8 €. Module suggère mini entretien 9 € : « +9 € au panier, livraison offerte, vous économisez 5,90 € net. » Un clic add-to-cart, barre passe verte.
Quels tests A/B lancer sur seuil, emplacement et copy ?
Le protocole A/B franco évite de figer un seuil copié sur un concurrent.
Variables à tester (une à la fois)
Seuil : 1,3× vs 1,5× vs 1,8× AOV (72Technologies : 1,5× gagne revenu/session)
Emplacement : header seul vs drawer seul vs les deux
Format : texte statique vs barre progression (DataFirefly : +8 à 18 % panier)
Gap copy : « Plus que X € » vs « Ajoutez X € »
Durée et métriques
14 à 28 jours, trafic minimum 5 000 sessions /cart. Primaire : revenu par session. Secondaires : AOV, taux unlock franco, cart-to-checkout, tickets fshp_threshold. Ne pas optimiser AOV seul si conversion chute (Eightx).
Documentation résultat
Notion : variante gagnante, seuil retenu, date, owner. Mettre à jour FRANCO-POLICY #303 et tous emplacements FRANCO-UX section 3.
Quels KPI suivre pour mesurer la friction franco côté UX ?
Mesurez si l'affichage seuil réduit questions et augmente paniers qualifiés.
KPI mensuels
franco_unlock_rate : commandes franco / commandes totales
franco_gap_add_rate : sessions gap < 15 € avec ajout SKU nudge / sessions gap
fshp_pre_purchase_tickets : tickets seuil avant achat (doit baisser post-UX)
bar_engagement : clics lien exceptions, scroll bar drawer
checkout_shipping_surprise : abandons step shipping avec tag fee
aov_franco_lift : AOV vs baseline pré-barre
Revue bi-hebdo
Croiser tickets pré-checkout (#24) et verbatims chat « seuil pas clair ». Si fshp_pre_purchase stable malgré barre : incohérence checkout ou exception non affichée.
Comment Qstomy affiche-t-il le seuil et répond-il aux questions gap ?
Qstomy reprend les mêmes variables franco que la barre site, calcule gap live et répond avant que le client n'ouvre un ticket.
Capacités
Sync
franco_threshold_ttcshop + shipping profileRéponses COPY-FRANCO-GAP avec panier courant
Suggestion SKU gap (même règles section 7)
Exceptions zone CP et SKU heavy
Lien hub /pages/livraison + handoff si contradiction checkout
Scénario DTC chiffré
Marque maison FR, AOV 48 €, seuil affiché 59 €, barre drawer + PDP. Avant : 142 questions/mois « livraison gratuite ? », cart-to-checkout 46 %. Après déploiement FRANCO-UX + Qstomy sync : questions franco −47 %, unlock rate 68 %, AOV 48 → 54,20 €, cart-to-checkout 46 → 52 % sur 10 semaines.
Quels playbooks pour déployer l'affichage seuil en une semaine ?
Playbook 1 : audit FRANCO-UX (2 h)
Parcours mobile invité. Cocher 7 emplacements section 3. Noter incohérences chiffres.
Playbook 2 : calibrer seuil (3 h)
Export AOV 90 j, appliquer formule section 5. Valider avec finance. Configurer shipping profile Shopify identique.
Playbook 3 : barre + 3 copy (1 j)
Installer barre drawer. Implémenter COPY-FRANCO-EMPTY, GAP, UNLOCK. Test 5 scénarios panier.
Playbook 4 : exceptions + hub (2 h)
Footnote section 6. Page /pages/livraison alignée FRANCO-POLICY #303. Lien footer.
Playbook 5 : nudge gap + A/B (3 j setup)
Activer suggestions section 7 si gap < 15 €. Lancer test seuil 1,3× vs 1,5× AOV, 21 j.
Maillage utile
Cette semaine : ouvrez votre boutique en navigation privée mobile. Voyez-vous le gap en euros avant le checkout ? Si non, le playbook 3 est votre priorité numéro un.

Enzo
30 juin 2026





