Aller au contenu

❓ FAQGratuit · 0 NahnahPar NAHNAH

FAQ avec vote « utile »

Accordéon où chaque réponse se termine par un vote « Cette réponse t'a aidé ? » mémorisé dans le navigateur, avec données structurées FAQPage.

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-faq-vote-utile.liquid (Liquid, CSS et JS inclus).

{%- comment -%} NAHNAH AI · FAQ avec vote « utile » {%- endcomment -%}
<section class="nn-faq-vote-utile" data-nn-section="{{ section.id }}" style="--nn-fond: {{ section.settings.couleur_fond }}; --nn-accent: {{ section.settings.couleur_accent }}; --nn-texte: {{ section.settings.couleur_texte }};">
  {%- if section.settings.titre != blank -%}<h2>{{ section.settings.titre | escape }}</h2>{%- endif -%}
  <div class="nn-faq-vote-utile__liste">
    {%- for bloc in section.blocks -%}
      <details class="nn-faq-vote-utile__item" {{ bloc.shopify_attributes }}>
        <summary>{{ bloc.settings.question | escape }}<span aria-hidden="true">+</span></summary>
        <div class="nn-faq-vote-utile__reponse">
          {{ bloc.settings.reponse }}
          <div class="nn-faq-vote-utile__vote" data-nn-cle="{{ section.id }}-{{ bloc.id }}">
            <span>{{ section.settings.texte_vote | escape }}</span>
            <button type="button" data-nn-vote="oui" aria-pressed="false">👍 {{ section.settings.texte_oui | escape }}</button>
            <button type="button" data-nn-vote="non" aria-pressed="false">👎 {{ section.settings.texte_non | escape }}</button>
            <em class="nn-faq-vote-utile__merci" aria-live="polite"></em>
          </div>
        </div>
      </details>
    {%- endfor -%}
  </div>
  <p class="nn-faq-vote-utile__merci-modele" hidden>{{ section.settings.texte_merci | escape }}</p>
  <script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{%- for bloc in section.blocks -%}{"@type":"Question","name":{{ bloc.settings.question | json }},"acceptedAnswer":{"@type":"Answer","text":{{ bloc.settings.reponse | strip_html | json }}}}{%- unless forloop.last -%},{%- endunless -%}{%- endfor -%}]}</script>
</section>
{% schema %}
{"name":"FAQ vote utile","settings":[
{"type":"text","id":"titre","label":"Titre","default":"Questions fréquentes"},
{"type":"text","id":"texte_vote","label":"Texte du vote","default":"Cette réponse t'a aidé ?"},
{"type":"text","id":"texte_oui","label":"Bouton oui","default":"Oui"},
{"type":"text","id":"texte_non","label":"Bouton non","default":"Non"},
{"type":"text","id":"texte_merci","label":"Message de remerciement","default":"Merci pour ton retour !"},
{"type":"color","id":"couleur_fond","label":"Fond","default":"#FFFFFF"},
{"type":"color","id":"couleur_accent","label":"Accent","default":"#16A34A"},
{"type":"color","id":"couleur_texte","label":"Texte","default":"#111827"}],
"blocks":[{"type":"question","name":"Question","settings":[{"type":"text","id":"question","label":"Question","default":"Combien de temps prend la livraison ?"},{"type":"richtext","id":"reponse","label":"Réponse","default":"<p>Indique ici tes délais réels de livraison.</p>"}]}],
"presets":[{"name":"FAQ avec vote utile","blocks":[{"type":"question"},{"type":"question"},{"type":"question"}]}]}
{% endschema %}

{% stylesheet %}
/* Accordéon sobre avec boutons de vote en bas de chaque réponse */
.nn-faq-vote-utile{background:var(--nn-fond);color:var(--nn-texte);padding:56px 16px;font-family:system-ui,sans-serif}
.nn-faq-vote-utile h2{text-align:center;margin:0 0 28px;font-size:clamp(26px,4vw,40px)}
.nn-faq-vote-utile__liste{max-width:760px;margin:0 auto;display:grid;gap:12px}
.nn-faq-vote-utile__item{border:1px solid rgba(0,0,0,.1);border-radius:14px;background:#fff;overflow:hidden}
.nn-faq-vote-utile summary{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;list-style:none;font-weight:600;font-size:17px}
.nn-faq-vote-utile summary::-webkit-details-marker{display:none}
.nn-faq-vote-utile summary span{transition:transform .25s;color:var(--nn-accent);font-size:22px;line-height:1}
.nn-faq-vote-utile__item[open] summary span{transform:rotate(45deg)}
.nn-faq-vote-utile summary:focus-visible{outline:2px solid var(--nn-accent);outline-offset:-2px}
.nn-faq-vote-utile__reponse{padding:0 20px 18px;line-height:1.6}
.nn-faq-vote-utile__vote{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px dashed rgba(0,0,0,.12);font-size:14px}
.nn-faq-vote-utile__vote button{border:1px solid rgba(0,0,0,.15);background:transparent;border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit;transition:background .2s,color .2s}
.nn-faq-vote-utile__vote button[aria-pressed="true"]{background:var(--nn-accent);border-color:var(--nn-accent);color:#fff}
.nn-faq-vote-utile__merci{color:var(--nn-accent);font-style:normal}
@media (prefers-reduced-motion: reduce){.nn-faq-vote-utile summary span,.nn-faq-vote-utile__vote button{transition:none}}
{% endstylesheet %}

{% javascript %}
/* Vote « utile » : mémorise le choix du visiteur dans le navigateur */
(function () {
  document.querySelectorAll('.nn-faq-vote-utile').forEach(function (section) {
    var merci = section.querySelector('.nn-faq-vote-utile__merci-modele');
    section.querySelectorAll('.nn-faq-vote-utile__vote').forEach(function (zone) {
      var cle = 'nn-faq-vote-' + zone.dataset.nnCle;
      var boutons = zone.querySelectorAll('button');
      // Applique visuellement un choix
      function appliquer(choix) {
        boutons.forEach(function (b) { b.setAttribute('aria-pressed', String(b.dataset.nnVote === choix)); });
        zone.querySelector('.nn-faq-vote-utile__merci').textContent = choix ? merci.textContent : '';
      }
      try { appliquer(localStorage.getItem(cle)); } catch (e) {}
      boutons.forEach(function (b) {
        b.addEventListener('click', function () {
          appliquer(b.dataset.nnVote);
          try { localStorage.setItem(cle, b.dataset.nnVote); } catch (e) {}
        });
      });
    });
  });
})();
{% endjavascript %}
Télécharger le fichier .liquid

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 : « FAQ avec vote « utile » » (FAQ)
Description : Accordéon où chaque réponse se termine par un vote « Cette réponse t'a aidé ? » mémorisé dans le navigateur, avec données structurées FAQPage.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/faq-vote-utile
Fichier : nahnah-faq-vote-utile.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-faq-vote-utile.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-faq-vote-utile ».
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 : faq-vote-utile).

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

  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-faq-vote-utile ».
  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.

Installer via le MCP

Depuis Claude, Claude Code ou ChatGPT connecté à NAHNAH AI, demande : « Donne-moi le code de l’élément faq-vote-utile 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

Dans la même catégorie