Tuto Prestashop : Mode catalogue avec affichage des prix


Après avoir chercher sur le web, je n’ai trouvé nul part un tutoriel pour afficher le prix des articles en mode « catalogue » dans Prestashop.

J’ai bien lu quelques posts sur le fait que ça n’était pas possible dans le backend de Prestashop, et que la solution consistait à modifier le code de deux fichiers, mais pas la démarche à suivre dans son ensemble. Je vous livre ici, les lignes que j’ai modifié pour arriver à mes fins !

1- Tout d’abord, activer le mode « catalogue » (i.e. sans le panier)

Préférences > Produits :

catalogue

2- Récupérer les fichiers « product.tpl » et « product-list.tpl » dans le dossier de votre thème sur le FTP de votre site. Pour moi, avec le thème par défaut, ça donne « /themes/default-bootstrap ».

3- Modifier les fichiers.

Dans le fichier product-list.tpl qui sert à afficher les produits :

{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
<div class= »content_price » itemprop= »offers » itemscope itemtype= »http://schema.org/Offer »>

et aussi :

<div class= »button-container »>
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
{if ($product.allow_oosp || $product.quantity > 0)}
{if isset($static_token)}
<a class= »button ajax_add_to_cart_button btn btn-default » href= »{$link->getPageLink(‘cart’,false, NULL, « add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token} », false)|escape:’html’:’UTF-8′} » rel= »nofollow » title= »{l s=’Add to cart’} » data-id-product= »{$product.id_product|intval} »>
<span>{l s=’Add to cart’}</span></a>
{else}
<a class= »button ajax_add_to_cart_button btn btn-default » href= »{$link->getPageLink(‘cart’,false, NULL, ‘add=1&amp;id_product={$product.id_product|intval}’, false)|escape:’html’:’UTF-8′} » rel= »nofollow » title= »{l s=’Add to cart’} » data-id-product= »{$product.id_product|intval} »>
<span>{l s=’Add to cart’}</span></a>
{/if}
{else}
<span class= »button ajax_add_to_cart_button btn btn-default disabled »>
<span>{l s=’Add to cart’}</span></span>

Dans le fichier product.tpl qui sert à afficher les listes :

<form id= »buy_block »{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0} class= »hidden »{/if} action= »{$link->getPageLink(‘cart’)|escape:’html’:’UTF-8′} » method= »post »>
<!– hidden datas –>
<p class= »hidden »>
<input type= »hidden » name= »token » value= »{$static_token} » />
<input type= »hidden » name= »id_product » value= »{$product->id|intval} » id= »product_page_product_id » />
<input type= »hidden » name= »add » value= »1″ />
<input type= »hidden » name= »id_product_attribute » id= »idCombination » value= » » />
</p>
<div class= »box-info-product »>
<div class= »content_prices clearfix »>
{if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}

4- Écraser les fichiers avec les versions modifiées sur votre FTP. Dernier conseil : garder une version des fichiers originaux, en cas de mauvaise manip, cela peut s’avérer fort utile.

J’espère que ça marchera sur votre site aussi !
Kenavo.


13 réponses à « Tuto Prestashop : Mode catalogue avec affichage des prix »

  1. Avatar de Joris D.
    Joris D.

    Quelle version de Prestashop as-tu ?

    Je vois que tu as sorti ton article il y a quelques jours (bien détaillé d’ailleurs, merci), je supposais donc que tu avais la dernière en date, Prestashop 1.6.0.6.

    Seulement, c’est celle que j’utilise, et mes fichiers ne sont pas construits de la même façon.

    Par exemple, product-list.tpl ne contient pas une seule fois le terme « hidden ».

    Je me trompe ?

  2. Avatar de Joris D.
    Joris D.

    Aah, Eureka !

    Dans ton tuto, tu as inversé product.tpl et product-list.tpl
    Forcément, je ne risquais pas de trouver…
    Tu peux faire la correction pour les suivants si tu veux…

    J’ai un problème de boucle de redirection, donc je ne sais pas encore si ça fonctionne. Je corrige ça, et je vous redis. Merci beaucoup !

  3. Avatar de A. Taubin

    Merci Joris, je viens de modifier l’article !

  4. Avatar de Vanille Perro
    Vanille Perro

    Bonjour,

    J’ai suivi ce petit tutoriel car je travaille sur un site web en local qui va servir de vitrine pour des produits. J’ai donc souhaité avoir le mode catalogue avec affichage des prix.

    Après avoir suivi ces instruction il ne m’est plus possible d’afficher le site, je me retrouve avec une erreur (Après avoir activé le mode dev’) :

    Fatal error: Uncaught –> Smarty Compiler: Syntax error in template « C:\Program Files (x86)\EasyPHP\www\CashTransformers\themes\default-bootstrap\product-list.tpl » on line 135 « {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2* && !$PS_CATALOG_MODE*}" – Unexpected "&& " <– thrown in C:\Program Files (x86)\EasyPHP\www\CashTransformers\tools\smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 135

    Avez-vous rencontré ce problème également ?

  5. Avatar de A. Taubin

    Non, désolé Vanille, je n’ai pas eu cette erreur. A priori, tu as un problème avec le fichier product-list.tpl à la ligne 135. Il y a un ‘&&’ en trop.
    Cordialement

  6. Avatar de Claire K.
    Claire K.

    Bonjour,
    J’ai essayé les modifications que vous proposées pour obtenir l’affichage des prix en mode catalogue. J’apporterai un complément. En effet pour la fiche détaillée du produit c’est nickel. Par contre lorsque les produits sont présentés en liste (produits nouveaux, produits d’une catégorie …) et lorsque le curseur survole un produit, le bouton « Ajouter au panier » s’affiche ! J’ai contourné cela en passant le paramètre « Afficher le bouton ‘ajouter au panier’ lorsque le produit a des attributs » à NON (dans Préférences / Produits ) et en définissant un attribut au moins pour chaque produit…

  7. Avatar de A. Taubin

    Merci Claire pour ces précisions !

  8. Avatar de Benoit
    Benoit

    Bonjour,
    Je voudrais afficher les prix uniquement une fois arrivé dans le panier.
    C’est-à-dire supprimer la visibilité des prix sur l’accueil, les catégories et les fiches produits. Pensez-vous que ce soit possible en modifiant les fichiers .tpl?
    Merci d’avance pour vos précisions.

  9. Avatar de A. Taubin

    Bonjour
    Effectivement, cela doit être possible ! À vous de creuser et de revenir nous donner la réponse. @+

  10. Avatar de Audrey G.

    Bonjour,

    Super, merci pour ce tuto très utile !!
    Par contre, petit souci lorsque les produits ont des déclinaisons :

    par exemple, pour une même fiche produit, je voudrais inscrire 2 poids, et donc, 2 prix. Or, le prix du deuxième poids ne s’affiche pas en FO une fois sélectionné.
    Tout semble bien paramétré en BO.

    Y aurait-il un ajustement à faire dans le fichier product.tpl ? Si oui, lequel ?

    Merci de m’éclairer 🙂

    Audrey
    site catalogue avec affichage de prix
    PS 1.6.1.0

  11. Avatar de A. Taubin

    Bonjour

    Désolé Audrey, je n’utilise pas les déclinaisons.

    @ ++

  12. Avatar de Rémi Guérin

    Bonjour,

    j’ai effectué les modifications à plusieurs reprise (au cas ou je me sois trompé) mais aucun changement sur le site. Je ne comprend rien du tout.
    Il y aurait un cache à vider ? J’utilise la version 1.6.1.4, est ce différent ?

  13. Avatar de A. Taubin

    Bonjour Rémi
    Je ne sais pas, j’avoue ne pas avoir vérifié depuis un moment.
    Cordialement

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *