Nous allons voir dans ce tutoriel comment créer un bouton lire la suite sur Shopify

Nous avons parfois des descriptions trop longues et d’un point de vue ergonomique ce n’est pas toujours très sexy…

L’idée de ce tutoriel shopify est de vous proposer un bouton lire la suite qui affichera le reste de votre description de vos fiches produits, pages ou collections.

Vous pouvez voir le résultat sur cette page: voir la démo de ce tutoriel.

Vous allez surement vous poser la question suivante… Et côté SEO ce n’est pas pénalisant ?

Et bien non étant donné que l’affichage ou non-affichage est géré en Javascript, les moteurs de recherche liront le contenu complet 😉

Passons maintenant dans le fil du sujet !

Côté tutoriel – code shopify

Vous allez dans un premier temps devoir trouver votre fichier Css ou Scss selon le thème.

Rendez-vous dans les fichiers de votre thème (Personnaliser – Modifier code) – Assets et trouvez un des fichiers suivants:

  • theme.scss.liquid
  • timber.sccs.liquid
  • style.sccs.liquid
  • bref un xxx.scss.liquid :p

Déroulez le fichier et mettez vous tout en bas pour coller le code suivant:

.dg-rm-more {display: none; } 
.dg-rm-more p:last-child { margin-bottom:15px; } 
.dg-rm-dots:after { display:inline-block; content:"..."; }

Dans un deuxième temps trouvez dans le même dossier (Assets) un fichier .js généralement:

  • theme.js.liquid
  • timber.js.liquid
  • style.js.liquid
  • bref un xxx.js.liquid :p

Déroulez le fichier et mettez vous tout en bas pour coller le code suivant:

function dgReadMore(id) {
	let dgReadMoreText1 = "+ En savoir plus";
	let dgReadMoreText2 = "- En savoir moins";    
   
	const dots = document.getElementById("dg-rm-dots-"+id);
	const moreText = document.getElementById("dg-rm-more-"+id);
	const btnText = document.getElementById("dg-rm-btn-"+id);   
    const dotsHeightToTop = moreText.getBoundingClientRect().top;   
   
	if (dots.style.display === "none") {
	  dots.style.display = "inline";
	  btnText.innerHTML = dgReadMoreText1;
	  moreText.style.display = "none";
	} else {
	  dots.style.display = "none";
	  btnText.innerHTML = dgReadMoreText2;
	  moreText.style.display = "inline";
      //window.scrollTo(0, dotsHeightToTop.toFixed());
	}	
  }

Nous avons donc à ce stade le système pour créer un bouton lire la suite dynamique qui permettra d’afficher une description complète.

Côté Shopify – Éditeur

Ouvrez une fiche produit ou autres contenus avec un éditeur de texte et cliquez sur le <> (show html) afin de passer en mode code.

Copiez/collez le code suivant et passons à l’explication !

<h2>Zone "En savoir plus" de la description</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas vitae. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas vitae. <span id="dg-rm-dots-1" class="dg-rm-dots"></span></p>
<div id="dg-rm-more-1" class="dg-rm-more">
<p><strong>Zone à afficher au clic sur "En savoir plus"</strong></p>
<p>erisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet.</p>
<p>Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis.</p>
</div>
<a href="#dg-rm-more-1" id="dg-rm-btn-1" class="btn dg-rm-btn" onclick="dgReadMore('1')">+ En savoir plus</a>

Écrivez votre texte normalement, à l’endroit ou vous souhaitez couper votre texte mettez la balise suivante:

<span id="dg-rm-dots-1" class="dg-rm-dots"></span>

Ensuite englobez le reste de la description dans la balise div suivante (n’oubliez pas la fermeture </div> !!!):

<div id="dg-rm-more-1" class="dg-rm-more">
la suite de votre description qui s'affichera au clic sur le bouton "En savoir plus".
</div>

Il nous reste plus qu’à ajouter le bouton « En savoir plus » en collant la balise suivante tout en bas de votre description:

<a  href="#dg-rm-more-1" id="dg-rm-btn-1" class="btn dg-rm-btn" onclick="dgReadMore('1')">+ En savoir plus</a>

Si vous souhaitez changer les intitulés, il faudra le faire sur le bouton ci-dessus mais également dans le fichier .js.liquid.

Attention à bien respecter les ouvertures et fermetures des bouts de codes afin d’éviter de casser votre mise en page !!!

Le <span id= »dg-rm-dots-1″></span> doit idéalement être avant une fermeture de paragraphe de ce genre </p> pour que les 3 petits points soient bien collé au texte 😉

Et pour en mettre plusieurs sur une même page ?

Le code n’est pas fait pour cela mais vous pouvez vous en sortir en suivant ces étapes:

Si vous avez une 2ème zone dupliquez la partie html et remplacer les : id="dg-rm-btn-1", id="dg-rm-dots-1", id="dg-rm-more-1" par id="dg-rm-btn-2", id="dg-rm-dots-2", id="dg-rm-more-2" et remplacez onclick="dgReadMore('1')" par onclick="dgReadMore('2')"

Vous avez compris le principe 😉 etc pour 3, 4 etc…

Ce tutoriel existe aussi en vidéo

Bon courage pour ce tutoriel souvent demandé mais assez complexe à mettre en place efficacement !

Merci de me laisser une petite note 😉
[Note moyenne de: 4.9 sur 12 votes]

Besoin de déléguer votre SAV ?

Si vous avez besoin d'une personne pour gérer votre SAV j'ai la perle rare 😉 contactez moi en MP ou cliquez sur le bouton ci-dessous:

Je veux déléguer mon SAV

🤗 Vous souhaitez me remercier pour mes Tutos ?

Cliquez sur le bouton ci-dessous pour m'encourager à continuer 😉

Payer un Café à Dgeo Dev

Cet article a 73 commentaires

  1. Merci pour ce tutoriel.
    Je l’ai codé en jquery pour faire simple.

  2. Salut et merci pour tes tutos !
    J’aimerai ajouter une fonction pour que le navigateur remonte à une ancre lorsque l’on clique sur le « lire moins ».
    Tu pourrais m’aiguiller ?

    1. Hello, merci pour le message.
      Hum c’est assez complexe car c’est le même bouton, donc si on met une ancre au clic sur voir plus on ira aussi à l’ancre… Ca demande un dev sur mesure pour le coup 🙂

      1. Hmm oui pas si simple 🙂 Malheureusement mon budget ne me permet pas de me payer les talents d’un développeur pour le moment 🙁 Peut être bientôt ? 😉 Je penserais à te faire un don à l’occase en tous cas, tu le mérite bien !

        1. Ok 🙂 merci c’est sympa 😉

  3. Salut Dgeo !

    Merci pour ce super tuto (bien pratique pour ne pas afficher la description des collections pour coupler SEO et UX).

    Petite question, est-ce possible d’afficher le « En savoir plus » non pas comme un bouton mais comme un lien hypertexte bleu ?

    1. Salut, merci pour le message 🙂 Oui c’est possible en remplacement button par a pour donner un truc sur genre < a ... > < /a ><

  4. Salut! Dev, j’espère que vous allez bien!
    J’ai vraiment besoin de vous, Pouvez-vous me contacter par email, je ne connais pas votre adresse email.

  5. Salut Dgeo Dev et merci pour ce tuto !
    Dommage que je ne l’ai pas vu avant, je viens d’ajouter le bouton « lire la suite » grâce à un codeur 5euros.
    Mais du coup je ne sais pas si mon bouton a été correctement ajouté pour le SEO.
    Je te laisse une capture d’écran de mon code, peut-être que t’y verras plus clair 😉

    Screen : https://imgur.com/a/rPIpOKS

    1. Hello, oui il faut tjs venir ici avant pour regarder si c’est dispo en Gratuit car bcp de personnes sur 5euro revendent mes codes Gratuits… c’est pénible mais bon triste monde… Bref… ca me semble correct même si je trouve qu’il y a un peu trop d’h3 à mon goût 😉 Bon WE

      1. Merci pour le retour rapide
        Et honte à ceux qui revendent ton travail !

  6. Salut Dgeo Dev !
    Merci pour ces tutos très utiles. C’est vraiment très intéressant, tu fais du bon boulot !
    J’ai une petite question, j’ai utilisé ton codage pour mon site il fonctionne parfaitement, mais j’ai un problème, j’ai deux textes différents ( du coup deux boutons  » lire la suite  » ) et lorsque je clique sur le bouton du deuxième texte ça déclenche le bouton du premier texte ( comme un raccourci ) que faut-il faire pour que les deux boutons soient actifs chacun pour leurs propres textes ?
    Passe un bon weekend !
    Amicalement
    Cyril

    1. Hello, merci pour le com. Oui je vois en fait il faudrait adapter le code au niveau des identifiants, le 2eme ne doit pas avoir le même. Ca reste tout de même assez technique à faire :(. Bonne journée.

  7. Bonsoir DGeo,
    merci pour tes tutos très utiles, quand tu parles de modifier le code dans la fiche produit, est il possible de le modifier pour toutes les fiches produits. Bonne soirées 🙂

    1. Hello merci pour le message. Je ne comprends pas la question… d’un point de vue visuel ?

  8. Bonjour, lorsque j’affiche les codes html du produit il y a déjà un code, je colle celui du tuto avant ou après ?

    1. Hello, merci pour le message, ca je peux pas vous dire 🙂 je ne sais pas ce que vos codes font 😉 testez les 2 !

  9. Bonjour Dgeo,
    merci pour tes tutos,
    pour ma part cette fonctionne ne convient pas au theme Jumstart
    je ne trouve pas le fichier ds ASSET
    theme.js.liquid
    timber.js.liquid
    style.sccs.liquid
    bref un xxx.js.liquid :p

    j’ai uniquement trouvé le theme.js

    1. Hello, oui le theme.js devrait être le bon 🙂 à tester. Bonne soirée.

  10. Bonjour, est-il possible de ne pas avoir un bouton mais simplement un texte pour le « lire la suite » ?

    1. Hello, oui c’est possible dans ce cas remplacer dans la partie html le button et /button par span et /span 🙂

  11. Hello, est-ce normal que le titre H2 n’apparaisse pas ? Y’a t-il un moyen pour qu’il soit dans le texte ?

    1. Hello, comment ça n’apparaisse pas ? le H2 est dans l’éditeur, le code ne joue pas la dessus 🙂

  12. Bonsoir,
    Lorsque je fais tout correctement , le bouton « en savoir plus » apparait en effet mais quand je veux réduire un bouton « en savoir moins » devrait apparaitre, cependant il y a écrit « undefined », je comprends pas pourquoi … si tu pouvais m’aider ce serait cool

    1. Hello, étrange me MP au besoin pour voir ensemble

  13. Salut Dgeo Dev

    Merci pour ce bout de code, c’est top.
    J’aimerai avoir « lire la suite » en bas de page sous la collection, c’est possible ?

  14. salut dgeodev!
    merci beaucoup pour tes conseils j’ai vraiment apprécier ta façon de simplifier les choses,
    j’ai une question si vous voulez:
    est ce qu’on peux crée une balise spécifique pour chaque collection de produits?
    comme exemple: pour une boutique en ligne des produits alimentaire et boissons
    – balise pour la collection des produits alimentaires (conservé, bio, conditionné, frac, 1 kg, 500 g…… etc)
    – balise pour la collection des boissons (1 litre, 2 litres…., Boissons gazeuses, Jus, orange… eaux minéraux…)
    – balise pour les produits laitiers…….
    et je veux que la balise n’apparaître que dans la collection concerné !
    j’aimerais bien si vous pouvez me répondre
    merci beaucoup
    cordialement

    1. Hello, si la question est: puis-je appliquer ce tuto sur chaque collection ? la réponse est oui étant donné que le code est individuel et propre à chaque page 🙂

  15. Bonjour,

    Merci pour ce tuto

    Cependant avec le thème narrative, tout est correct le bouton « en savoir plus » apparaît mais il ne se passe rien quand je clique, il n’affiche pas la suite du lorem ipsum.

    une piste pour m’aider ?

    1. Hello, c’est compatible tout thème donc il faut persévérer ou me MP le lien du site pour voir

  16. J’ai finalement trouvé , il fallait utiliser custom.js pour le thème narrative et non theme.js.

    1. Hello 🙂 ok cool bravo ! le commentaire aidera pour les personnes dans le même cas de figure 🙂

    2. Merci Kev pour la précision

  17. Bonjour,

    Je voudrais placer ce code sur ma page d’accueil pour réduire l’espace de mon texte enrichi SEO. A quel endroit faut-il le coller ?

    1. Hello, généralement dans Sections – Featured-product.liquid 🙂

  18. Et un grand merci pour tes tuto gratuit en français pour optimiser les thèmes shopify !

  19. Bonjour j’ai suivi votre tuto super merci le souci ces que j’ai beaucoup de texte et quand ont click sur le bouton sa amène directement en bas de page donc direct a la fin de l’article comment déplier mais que la lecture du texte reste en haut pour le lecteur ?

    1. Bonjour, effectivement vous pouvez remplacer le code js par celui ci :

      function dgReadMore() {
      var dots = document.getElementById("dg-rm-dots");
      var moreText = document.getElementById("dg-rm-more");
      var btnText = document.getElementById("dg-rm-btn");

      if (dots.style.display === "none") {
      dots.style.display = "inline";
      btnText.innerHTML = dgReadMoreText1;
      moreText.style.display = "none";
      } else {
      dots.style.display = "none";
      btnText.innerHTML = dgReadMoreText2;
      moreText.style.display = "inline";
      }
      window.scrollTo(0, 0);
      }

      1. Bonjour,
        Merci pour cette mise à jour de code. De mon côté, quand on clique sur « En savoir plus », il ne se passe rien. Alors même que cela fonctionnait parfaitement avec le tuto d’origine. Ai-je loupé une étape ?

        1. Hello, je ne sais pas trop il faudrait ouvrir la console afin de voir si il y a des erreurs

  20. Bonjour Dgeo et merci pour ce tuto que j’ai installé depuis quelques mois maintenant…. Je rencontre un soucis sur la version Speedfly-2-09-5-2 même en remettant correctement les 2 codes dans le thème, cela ne fonctionne pas, peux tu m’aiguiller ?
    Merci d ‘avance

    1. Hello, étrange par contre si vous avez speedfly il suffit de contacter le support qui pourra mieux vous aider sur ce point car le sav est gratuit 😉 speedecom.freshdesk.com

  21. bonjour,
    merci pour votre tuto.
    J’aimerais mettre ce code sur chacune de mes pages de collection et je rencontre un problème.
    lorsque j’ai mis votre code sur ma première page de collection tout marche parfaitement, mais dès que j’essaie de le mettre sur les autres rien a faire il ne marche pas. Je ne peux que voir le texte en entier aucune action de faite.
    Comment faire pour que cela marche sur toutes les pages de collections !
    Merci

  22. Bonjour,
    Encore merci pour votre tuto qui marche presque très bien, c’est pour sa que j’ai une petite question :

    – J’ai appliquer ce bouton pour mon texte sous ma collection mais a chaque fois que j’appuie sur le bouton « en savoir plus » la page remonte tout en haut, ce qui est problématique pour l’UX. Et c’est la même chose pour le bouton « en savoir moins ».

    J’attend votre réponse , merci . : )

    1. Hello et merci pour le retour 🙂 c’est en effet un problème et le tuto est désormais modifié en conséquence 😉

  23. hello, déjà merci énormément pour ce tuto !!

    je voudrais savoir s’il serait possible de placer la description tout en bas de page, juste en dessous des produits ?

    un développeur me propose 25€ pour faire àça (sur 5euros) mais si je dois payer 25€ pour chacune de mes collections j’ai pas d’abord fini… Merci d’avance ! 🙂

    1. Hello, ne payez pas cette somme c’est de l’arnaque… il suffit de trouver dans le fichier – Sections – collection-template.liquid le {{ collection.description }} et de le déplacer plus bas et le tour est joué 😉 bon courage.

      1. merci beaucoup pour votre réponse Dgeo Dev, vous me redonnez foi en l’humanité, quand je vois certains ce qui peuvent faire pour quelques euros…. merci encore 🙂

  24. Bonjour, déja un grand merci pour votre tuto il m’a été d’une grande aide ! Petite question : savez si il est possible de modifier la taille du bouton et si oui comment ?

    1. Hello, et merci pour le com 🙂 oui c’est possible en modifiant le font-size

  25. Bonjour Dgeo,
    Je te contacte parce que j’adore tes vidéos qui sont très bien expliquées.
    Mais pour une raison que j’ignore, en suivant exactement tes directives, je n’arrive jamais au même résultat que toi.
    J’utilise le thème prestige (liquid) sur shopify. Penses-tu à une raison qui expliquerait pourquoi je n’arrive pas à appliquer tes conseils?
    D’avance, je te remercie et te souhaite une belle journée,
    Caroline

    1. Hello et merci pour le com 😉 je ne connais pas très bien ce thème mais il se peut qu’il y ai un conflit. Le mieux serait de demander à leur support car il me semble que c’est une agence française 🙂

  26. Bonjour Diego,
    Cela fait plusieurs fois que j’utilise tes tutoriel afin de coder et rendre mon site plus attirant. Cependant j’essaie d’ouvrir un site avec plusieurs langues, et je m’y connais pas encore trop en codage. Je voulais savoir s’il était possible pour ce bouton En savoir plus, de proposer les traductions pour les autres langues. Je me suis aussi servi de ton tuto pour afficher « Vous économisez X€ (Y%), mais malgré avoir essayé plusieurs choses, je n’arrive pas à trouver comment faire. Merci pour tes tutos encore une fois, ils aident vraiment !

    1. Hello, dans ce cas il faut utiliser le système de langages de shopify et de mettre les textes dans les trads. Pour savoir comment faire je t’invite à regarder vers la fin de cette vidéo 🙂 https://youtu.be/Cwlge4n6XjQ

      1. Merci ! Je m’en suis bien servis !

  27. Bonjour,
    Je vous remercie pour les codes, ils fonctionnent très bien, je les ai intégré dans les éditeurs des fiches produits, dommage qu’ on ne puisse pas l’installer d’une façon générale, cependant, je tenais a vous signaler que les codes donnés sur le tuto ne sont pas les même que sur la vidéo, ce qui m’a value des erreurs,

    Donc j’ai pris intégralement les codes de la vidéo et tout fonctionne très bien, pour mon thème speedFly
    merci a vous pour toute cette aide

    1. Hey Mireille, chapeau!! auriez vous le code en entier?

  28. Bonjour,

    Tout d’abord génial les tutos, je les adore tous.
    J’ai juste tendance à les utiliser un peu différemment de ce que tu proposes à chaque fois et du coup je me retrouve avec des trucs compliqués (mais j’aime ça hein ^^) alors que je suis totalement débutant..

    Du coup ma question, j’ai utilisé ton tuto pour faire disparaitre ma description sur la page d’accueil qui prenait trop de place, pour la faire apparaitre grâce au bouton « en savoir plus ». Donc tout fonctionne bien mais je n’arrive pas à faire disparaitre les « … » et comme je n’ai pas de texte, bah ça le fait moyen…

    Pourrais-tu m’aider stp?

    1. Hello et merci pour le message 😉 c’est dans le css : .dg-rm-dots:after { display:inline-block; content: »… »; } supprimer les …

  29. Bonjour, merci pour ce tuto ! Je voulais savoir si il était possible d’ajouter le bouton lire plus mais sur une page d’accueil, mon texte fait 500 mots et c’est assez gênant d’un point de vu utilisateur et j’en ai besoin pour le seo. Je passe par le thème SpeedFly. Merci pour ta futur aide.

    1. Hello, oui c’est possible ca reste le même principe 😉 si besoin d’un peu d’aide avec speedfly c’est par ici 😉 speedecom.freshdesk.com

  30. Bonjour w je voudrais mette le bouton lire + sur un texte de ma.page d’accueil. Mais en mettant ce texte sur une autre page à la base comme vous l’expliquer cela fera du duplicate content au sein du site pour le seo? Avez-vous une solution ? Merci à vous

    1. Hello, il suffit de modifier simplement la tournure des phrases ou se renseigner sur le content spinning

  31. Hello,

    Tout d’abord, un grand merci pour le temps passé à nous enseigner. C’est vraiment très utile !
    Pour ma part, Je rencontre le même soucis remonté plus haut par DLR. « A chaque fois que j’appuie sur le bouton « en savoir moins » la page remonte tout en haut ». Je n’ai pas réussi à régler ce soucis en bidouillant toute seule.

    Auriez-vous une solution ? Merci d’avance.

    1. Hello, essayez de supprimer la ligne suivant et ca devrait fonctionner 😉 window.scrollTo(0, 0);

  32. Action Faite, Je ne remonte plus en haut de l’écran ce qui est bon point. Par contre maintenant je reste sur le footer de mon site.
    Je n’ai pas réussi à revenir sur la section que j’essaie de réduire

    1. Oui c’est normal il faudrait un code plus perfectionné…

  33. Une pépite pour tous mes sites ! Merci pour ce tuto !

    1. Hello, merci pour le com c’est sympa 😉

  34. Bonjour, je suis entrain de creer ma boutique en ligne et j’ai un petit soucis, quand je clique sur le bouton la page descend toute seule ce qui n’est pas très beau visuellement.
    Sinon tes vidéos son super merci beaucoup

    1. Bonjour, étrange, pourrais-je avoir le lien svp en me le donnant en MP sur Facebook ? je regarderai ce WE

  35. merci beaucoup, je vous est envoyé sur messenger

Laisser un commentaire

Fermer le menu

Envie d'apprendre à Coder et Maitriser ton Thème Shopify  ?

Alors abonne-toi à la chaine et active la cloche pour ne pas louper l'arrivée des prochaines vidéos !

S'abonner à la chaine