Comment gérer les extraits enrichis (rich snippets) des avis avec mon thème ?

Le but de cette FAQ est de vous aider à mettre en place les extraits enrichis des avis publiés sur votre boutique.

Par défaut, PrestaShop ne gère pas ce balisage, c'est pour cela qu'il est nécessaire de modifier un peu de code.

Avant toute chose :

  1. Vérifiez que vous avez une version du module supérieure ou égale à la version 5.0.3. Si ce n'est pas le cas, mettez à jour votre module.
  2. Toutes les modifications se feront dans le template : themes/votre_theme/templates/_partials/microdata/product-jsonld.tpl Pensez a bien faire une backup de votre fichier d'origine pour pouvoir revenir en arrière si besoin.

 

Étape 1

Remplacez le code suivant :

{if !empty($product.productComments.averageRating) && !empty($product.productComments.nbComments)}
  {assign var=hasAggregateRating value=true}
  {assign var=ratingValue value=$product.productComments.averageRating}
  {assign var=ratingReviewCount value=$product.productComments.nbComments}
{/if}

par :

{if !empty($product.productComments.averageRating) && !empty($product.productComments.nbComments)}
  {assign var=hasAggregateRating value=true}
  {assign var=ratingValue value=$product.productComments.averageRating}
  {assign var=ratingReviewCount value=$product.productComments.nbComments}
  {assign var=reviews value=$product.productComments.reviews}
{/if}

pour assigner les avis venant de notre module.

En réalité on ne fait qu'ajouter la ligne :

  {assign var=reviews value=$product.productComments.reviews} 

 

Étape 2

Remplacez le code suivant :

    {if $hasAggregateRating},
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "{$ratingValue|round:1|escape:'html':'UTF-8'}",
        "reviewCount": "{$ratingReviewCount|escape:'html':'UTF-8'}"
        } 
{/if}

Par :

    {if $hasAggregateRating},
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "{$ratingValue|round:1|escape:'html':'UTF-8'}",
        "reviewCount": "{$ratingReviewCount|escape:'html':'UTF-8'}"
      }
      {if $reviews}
      ,
      "review": [
        {foreach from=$reviews item=comment}
          {if $comment.content}
            {
              "@type": "Review",
              "author": {
                "@type": "Person",
                "name": "{$comment.customer_name|escape:'html':'UTF-8'}"
              },
              "datePublished": "{$comment.date_add|escape:'html':'UTF-8'|substr:0:10}",
              "reviewRating": {
                "@type": "Rating",
                "description": "{$comment.content|nl2br nofilter}",
                "ratingValue": "{$comment.grade|escape:'html':'UTF-8'}",
                "bestRating": "5",
                "worstRating": "1"
              }
            {if $comment@last}
                }
            {else}
              },
            {/if}
          {/if}
        {/foreach}
      ]
      {/if}
    {/if}

Cela permettra la gestion des avis dans le JSON-TLD, et cela mettra les données à disposition pour Google.

Autres FAQ dans la même catégorie