🛒 PanierGratuit · 0 NahnahPar NAHNAH AI
Barre « livraison offerte dès X € »
Barre de progression vers la livraison offerte : le seuil en euros que tu règles est comparé au total du panier, avec le montant restant et un message une fois le seuil atteint.
Aperçu en direct
Données de démonstration (produits, menus, textes d’exemple) : dans ta boutique, ce sont les tiennes.
Photos : Unsplash / Pexels (exemples de l’aperçu, jamais inclus dans le code).
Code à copier
Fichier complet sections/nahnah-panier-livraison-offerte.liquid (Liquid, CSS et JS inclus).
{%- comment -%} NAHNAH AI · Barre « livraison offerte dès X € » (bibliothèque Sections & effets) {%- endcomment -%}
{%- assign nn_seuil = section.settings.seuil | times: 100 -%}
{%- assign nn_reste = nn_seuil | minus: cart.total_price -%}
{%- assign nn_pct = cart.total_price | times: 100 | divided_by: nn_seuil -%}
{%- if nn_pct > 100 -%}{%- assign nn_pct = 100 -%}{%- endif -%}
{%- capture nn_montant -%}<strong>{{ nn_reste | money }}</strong>{%- endcapture -%}
{%- capture nn_seuil_texte -%}<strong>{{ nn_seuil | money }}</strong>{%- endcapture -%}
{%- if cart.item_count > 0 or section.settings.afficher_vide -%}
<div class="nn-panier-livraison-offerte" style="--nn-mh: {{ section.settings.marge_haut }}px; --nn-mb: {{ section.settings.marge_bas }}px; --nn-fond: {{ section.settings.couleur_fond }}; --nn-texte: {{ section.settings.couleur_texte }}; --nn-accent: {{ section.settings.couleur_accent }};">
<div class="nn-panier-livraison-offerte__contenu{% if nn_reste <= 0 %} est-atteint{% endif %}">
<p class="nn-panier-livraison-offerte__message">
<svg class="nn-panier-livraison-offerte__icone" aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M2.5 6.5h11v9h-11z"/><path d="M13.5 9.5h4l3 3v3h-7"/><circle cx="7" cy="17.5" r="1.7"/><circle cx="17" cy="17.5" r="1.7"/></svg>
<span>
{%- if cart.item_count == 0 -%}
{{ section.settings.message_vide | replace: '[seuil]', nn_seuil_texte }}
{%- elsif nn_reste > 0 -%}
{{ section.settings.message_reste | replace: '[montant]', nn_montant }}
{%- else -%}
{{ section.settings.message_atteint }}
{%- endif -%}
</span>
</p>
<div class="nn-panier-livraison-offerte__barre" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="{{ nn_pct }}" aria-label="{{ section.settings.libelle_barre | escape }}">
<span class="nn-panier-livraison-offerte__remplissage" style="--nn-pct: {{ nn_pct }};"></span>
</div>
</div>
</div>
{%- endif -%}
{% schema %}
{
"name": "Livraison offerte",
"tag": "section",
"class": "nn-section-panier-livraison-offerte",
"settings": [
{
"type": "range",
"id": "seuil",
"label": "Seuil de la livraison offerte",
"min": 10,
"max": 300,
"step": 5,
"default": 80,
"unit": "€",
"info": "Utilise le même seuil que ton tarif « livraison gratuite » (Paramètres → Expédition et livraison)."
},
{
"type": "inline_richtext",
"id": "message_reste",
"label": "Message avant le seuil",
"default": "Plus que [montant] pour profiter de la livraison offerte",
"info": "[montant] est remplacé par le montant restant."
},
{
"type": "inline_richtext",
"id": "message_atteint",
"label": "Message seuil atteint",
"default": "Bonne nouvelle : ta livraison est offerte !"
},
{
"type": "inline_richtext",
"id": "message_vide",
"label": "Message panier vide",
"default": "Livraison offerte dès [seuil] d’achat",
"info": "[seuil] est remplacé par le seuil."
},
{
"type": "checkbox",
"id": "afficher_vide",
"label": "Afficher quand le panier est vide",
"default": true
},
{
"type": "text",
"id": "libelle_barre",
"label": "Libellé de la barre (lecteurs d’écran)",
"default": "Progression vers la livraison offerte"
},
{
"type": "header",
"content": "Couleurs"
},
{
"type": "color",
"id": "couleur_fond",
"label": "Fond",
"default": "#FFFFFF"
},
{
"type": "color",
"id": "couleur_texte",
"label": "Texte",
"default": "#0B1220"
},
{
"type": "color",
"id": "couleur_accent",
"label": "Accent",
"default": "#12A27A"
},
{
"type": "header",
"content": "Espacement"
},
{
"type": "range",
"id": "marge_haut",
"label": "Marge haute",
"min": 0,
"max": 120,
"step": 4,
"unit": "px",
"default": 16
},
{
"type": "range",
"id": "marge_bas",
"label": "Marge basse",
"min": 0,
"max": 120,
"step": 4,
"unit": "px",
"default": 16
}
],
"presets": [
{
"name": "Livraison offerte"
}
]
}
{% endschema %}
{% stylesheet %}
.nn-panier-livraison-offerte {
display: block;
padding: var(--nn-mh, 0px) 16px var(--nn-mb, 0px);
background: var(--nn-fond);
color: var(--nn-texte);
}
.nn-panier-livraison-offerte[hidden], .nn-panier-livraison-offerte [hidden] { display: none !important; }
.nn-panier-livraison-offerte *, .nn-panier-livraison-offerte *::before, .nn-panier-livraison-offerte *::after { box-sizing: border-box; }
.nn-panier-livraison-offerte :focus-visible { outline: 3px solid var(--nn-accent); outline-offset: 3px; }
.nn-panier-livraison-offerte__editeur { margin: 0; padding: 16px; font-size: 14px; text-align: center; border: 1px dashed currentColor; opacity: 0.7; }
.nn-panier-livraison-offerte__contenu { max-width: 640px; margin: 0 auto; }
.nn-panier-livraison-offerte__message { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 10px; font-size: 15px; line-height: 1.4; text-align: center; }
.nn-panier-livraison-offerte__message strong { color: var(--nn-accent); }
.nn-panier-livraison-offerte__icone { flex: none; width: 24px; height: 24px; color: var(--nn-accent); }
.nn-panier-livraison-offerte.est-atteint .nn-panier-livraison-offerte__icone, .nn-panier-livraison-offerte__contenu.est-atteint .nn-panier-livraison-offerte__icone { animation: nn-panier-livraison-route 1.2s ease-in-out infinite alternate; }
@keyframes nn-panier-livraison-route { to { transform: translateX(4px); } }
.nn-panier-livraison-offerte__barre { position: relative; overflow: hidden; height: 10px; border-radius: 999px; background: color-mix(in srgb, var(--nn-texte) 10%, transparent); }
.nn-panier-livraison-offerte__remplissage {
position: absolute;
inset: 0;
border-radius: inherit;
background: repeating-linear-gradient(-45deg, var(--nn-accent) 0 10px, color-mix(in srgb, var(--nn-accent) 80%, #fff) 10px 20px);
background-size: 28px 100%;
transform: scaleX(calc(var(--nn-pct, 0) / 100));
transform-origin: left;
animation: nn-panier-livraison-entree 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both, nn-panier-livraison-rayures 1.2s linear infinite;
}
[dir="rtl"] .nn-panier-livraison-offerte__remplissage { transform-origin: right; }
@keyframes nn-panier-livraison-entree { from { transform: scaleX(0); } }
@keyframes nn-panier-livraison-rayures { to { background-position: 28px 0; } }
@media (prefers-reduced-motion: reduce) {
.nn-panier-livraison-offerte, .nn-panier-livraison-offerte *, .nn-panier-livraison-offerte *::before, .nn-panier-livraison-offerte *::after {
animation: none !important;
transition: none !important;
}
}
{% endstylesheet %}
Licence NAHNAH AI : utilisation libre dans tes boutiques (y compris commerciales), modification permise, revente de l’élément seul interdite.
Prompt à copier
À coller dans Claude ou ChatGPT avec le fichier téléchargé (ou le code copié) : l’assistant t’aide à l’installer et à l’adapter à ta marque.
Tu es un expert des thèmes Shopify Online Store 2.0. Aide-moi à installer puis à adapter à ma marque cet élément gratuit de la bibliothèque NAHNAH AI.
Élément : « Barre « livraison offerte dès X € » » (Panier)
Description : Barre de progression vers la livraison offerte : le seuil en euros que tu règles est comparé au total du panier, avec le montant restant et un message une fois le seuil atteint.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/panier-livraison-offerte
Fichier : nahnah-panier-livraison-offerte.liquid (bouton « Télécharger » de la page) ou le code copié avec le bouton « Copier » : je te le joins ou je le colle après ce message.
Emplacement dans le thème : sections/nahnah-panier-livraison-offerte.liquid (Liquid, puis {% stylesheet %} et {% javascript %}, dans ce seul fichier).
Étapes d’installation :
1. Dans Shopify : Boutique en ligne → Thèmes → bouton « … » du thème → Modifier le code.
2. Dossier « sections » → « Ajouter une section » (ou « Nouveau fichier ») → nomme-la « nahnah-panier-livraison-offerte ».
3. Efface le contenu proposé, colle le code de l’onglet Liquid (fichier complet), puis Enregistrer.
4. Ouvre Personnaliser → Ajouter une section → choisis-la, règle les textes et les couleurs, puis Enregistrer.
Ce que j’attends de toi :
- Guide-moi pas à pas dans Shopify : Boutique en ligne → Thèmes → « … » → Modifier le code → dossier sections → Ajouter une section, puis Personnaliser → Ajouter une section.
- Propose-moi d’adapter les couleurs, les textes et les liens à ma marque : demande d’abord mes couleurs (codes hexadécimaux), mon ton et mes liens.
- Garde le bloc {% schema %} et tous ses réglages (identifiants, types, presets) : je dois pouvoir tout régler ensuite dans l’éditeur de thème.
- Rends-moi le fichier complet modifié, prêt à coller, sans faux avis, fausse urgence ni chiffre inventé.
Si tu as le connecteur NAHNAH AI (MCP), récupère directement le code exact avec l’outil obtenir_code_element (id : panier-livraison-offerte).Installer dans ma boutique
En un clic, la section est ajoutée à un thème de ta boutique Shopify connectée (un thème non publié par défaut).
Chargement de tes boutiques…
Installer dans Shopify
- Dans Shopify : Boutique en ligne → Thèmes → bouton « … » du thème → Modifier le code.
- Dossier « sections » → « Ajouter une section » (ou « Nouveau fichier ») → nomme-la « nahnah-panier-livraison-offerte ».
- Efface le contenu proposé, colle le code de l’onglet Liquid (fichier complet), puis Enregistrer.
- Ouvre Personnaliser → Ajouter une section → choisis-la, règle les textes et les couleurs, puis Enregistrer.
Installer via le MCP
Depuis Claude, Claude Code ou ChatGPT connecté à NAHNAH AI, demande : « Donne-moi le code de l’élément panier-livraison-offerte de la bibliothèque NAHNAH AI et les étapes pour l’installer ». L’assistant récupère le code et les étapes (outil obtenir_code_element), gratuitement.
Boutique connectée à NAHNAH AI : l’assistant peut aussi l’installer directement (outil installer_element).
Connecter le MCP