Stacy Ann Posted August 22, 2010 Share Posted August 22, 2010 Bonjour,je suis surprise de ne pas avoir vu cette question sur le forum.... Ce doit être bien simple alors... enfin, sauf pour une bleue comme moi! :red: Comment ne pas afficher le prix d'un produit si celui-ci est nul.... dans la liste de produits ainsi que dans le descriptif du produit...?Merci d'avance.Cordialement.Stacy Ann. Link to comment Share on other sites More sharing options...
domi77185 Posted August 22, 2010 Share Posted August 22, 2010 Bonsoir,Pour ma part, dans la page product.tpl de mon théme, j'utilise la condition : {if $product->getPrice(false, $smarty.const.NULL) == 0} {/if} Pour mettre des informations si le prix est égal à zéro, ou en combinant avec {else} pour mettre des infos si le pris n'est pas égal à 0.Cordialement,Dominique Link to comment Share on other sites More sharing options...
jeckyl Posted August 23, 2010 Share Posted August 23, 2010 je suis surprise de ne pas avoir vu cette question sur le forum.... Ce doit être bien simple alors... enfin, sauf pour une bleue comme moi! :red: Bonjour,c'est que vous n'avez pas trouvé, car ce problème a déjà était traité plusieurs fois. Link to comment Share on other sites More sharing options...
Stacy Ann Posted August 23, 2010 Author Share Posted August 23, 2010 Jeckyl, je te crois... mais après avoir passé des heures à taper divers mot-clefs en français et anglais.... je n'ai rien trouvé! Désolée....Merci Domi77185, puis-je encore abuser de toi et te demander où placer ce bout de code? En remplacement d'un autre ou en l'ajoutant? Et où? Encore merci de ton aide.Cordialement.Stacy Ann Link to comment Share on other sites More sharing options...
domi77185 Posted August 24, 2010 Share Posted August 24, 2010 Ou souhaites tu ne pas afficher le prix ?dans la fiche produit je suppose, sur le prix affiché au dessus du bouton "ajout au panier".tu ouvres le fichier product.tpl qui se trouve dans le template que tu utilises.tu cherches le paragraphe traitant du prix (code ci-dessous, vers la ligne 152 pour moi) : <!-- prices --> {if $product->on_sale} {l s='On sale!'} {elseif ($product->reduction_price != 0 || $product->reduction_percent != 0) && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $product->reduction_from))} {l s='Price lowered!'} {/if} {convertPrice price=$product->getPrice(true, NULL, 2)} {if $product->getPrice(true, NULL, 2) != $product->getPrice(false, NULL, 2)}{l s='incl. tax'}{/if} {if $displayPreTax AND $display_ht AND $product->id_tax} {l s='('}{convertPrice price=$product->getPrice(false, NULL, 2)} {l s='tax not incl.)'} {/if} devant ce block de code tu ajoutes : {if $product->getPrice(false, $smarty.const.NULL) != 0} et à la fin de ce block tu ajoutes : {/if} Dans ce cas il n'y aura pas de prix affiché su prix = 0, mais tu aura toujours le bouton "ajouter au panier", c'est pourquoi il faut savoir exactement ce que tu veux faire.A+Dominique Link to comment Share on other sites More sharing options...
Stacy Ann Posted August 26, 2010 Author Share Posted August 26, 2010 bonjour,et merci de ton aide.En effet je souhaite masquer le prix si = 0 dans la liste produit et dans le produit lui-même, celui qui apparait au dessus du bouton "ajouter au panier"...En fait je crée quelques articles qui n'en sont pas... Ils ne sont là que pour décrire ce que je vends la catégorie... J'ai déjà viré le bouton "ajouter au panier" depuis le product-list.tpl pour tout mon catalogue...Et donc pour ces articles de description, je met le stock à 0 et désactive l'achat... donc pas de bouton "ajouter au panier" de toute façon.Ta solution a donc marché à la perfection pour product.tpl...Pourrais-je abuser encore un peu de toi et te demander comment procéder dans product-list.tpl?Encore merci.Cordialement.Stacy Ann Link to comment Share on other sites More sharing options...
domi77185 Posted August 26, 2010 Share Posted August 26, 2010 Bonjour stacy,Petite histoire pour t'expliquer les modifications que j'ai effectué dans Presta concernant les prix = 0.Pour ma boutique, je ne gère pas des objets à vendre, mais plutôt un équivalent de prestations.Pour cela, je me sert donc beaucoup des packs qui ont un prix, et qui comporte une package de plusieurs prestations (soit des articles dans Presta). Mais parfois je propose également un article seul, il ne faut donc pas que je retire tout de partout.L'intérêt d'utiliser les packs me permet de créer une fiche bien détaillée avec photos pour chacune des prestations.Afin de ne pas vendre une prestation seule, je met leur prix à "0".dans le "product-list.tpl" voici les modifs que j'ai faites afin que le bouton "ajouté au panier" ne soit plus visible (oblige à passer par la fiche détail pour pouvoir acheter).Cela se situe vers la fin du code, mais Attention car moi je suis en Presta 1.3.1 <!-- Modif Domi - Ne pas afficher de lien "Ajout au panier" et pas afficher prix si <= 0 --> {if ($product.price > 0)} {if ($product.allow_oosp OR $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if} {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if} <!-- Modif Domi - Code ci-dessous désactivé, Permet de ne pas pouvoir ajouter au panier directement. Oblige à passer par la description de l'objet. {if ($product.allow_oosp OR $product.quantity > 0) && $product.customizable != 2} {l s='Add to cart'} {else} {l s='Add to cart'} {/if} Fin du code désactivé --> {l s='View'} {/if} <!-- FIN Modif Domi - Ne pas afficher de lien "Ajout au panier" et pas afficher prix si <= 0 --> L'avantage ici, est que seul les articles à "0" n'ont pas de prix, si il y a un prix >0, alors il s'affiche. Dans tous les cas j'interdit l'ajout au panier depuis la "product-list".En espérant que tout cela puisse t'aider, car je ne sais pas ce que tu cherches à faire au final.A+Dominique Link to comment Share on other sites More sharing options...
promoshop Posted December 22, 2010 Share Posted December 22, 2010 Bonjour.Dans ma liste produits, je souhaiterai masquer la possibilité d'ajout au panier et les prix lorsque ces derniers sont égaux à 0 uniquement. J'ai essayé votre code mais cela ma masque tout sauf ... les prix et l'ajout au panier :s Je me suis surement trompé dans l'endroit d'insertion du code... Si vous pouviez me préciser quel code insérer à quel endroit se serait super.Je vous joint mon fichier product-list.tpl au cas ou.Merci Link to comment Share on other sites More sharing options...
domi77185 Posted December 22, 2010 Share Posted December 22, 2010 Bonjour,Pas de fichier joint.Le code ci-dessus permet de ne pas afficher les prix égaux à 0.Et de ne jamais afficher le bouton "ajouter au panier", ce qui oblige à passer par la fiche détaillé du produit pour pouvoir l'ajouter au panier.Il fonctionne en prestashop >= 1.3.1, je n'ai pas testé sur les versions antérieures. Link to comment Share on other sites More sharing options...
promoshop Posted December 25, 2010 Share Posted December 25, 2010 Désolé j'ai la PJ ...Je suis sous Presta 1.2.5.0 c'est peut être pour ça que le code ne fonctionne pas. >{if isset($products)} <!-- Products list --> </pre> <ul> {foreach from=$products item=product name=products} {if ($product.allow_oosp OR $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if} getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {if $product.nouveaute == 1}{l s='new'}{/if}{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'} {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} {if $product.destock} Destockage !{/if} {if $product.livraison} Livraison incluse !{/if} {if $product.on_sale} {l s='On sale!'} {elseif ($product.reduction_price != 0 || $product.reduction_percent != 0) && ($product.reduction_from == $product.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $product.reduction_from))} {l s='Price lowered!'} {/if} {if !$priceDisplay || $priceDisplay == 2}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if} {if $priceDisplay}{convertPrice price=$product.price_tax_exc}{if $priceDisplay == 2} {l s='-Tx'}{/if}{/if} {if ($product.allow_oosp OR $product.quantity > 0) && $product.customizable != 2} {l s='Add to cart'} {else} {l s='Add to cart'} {/if} {l s='View'} {/foreach} </ul> <br> <!-- /Products list --><br Je suppose que le changement se fait au niveau de ces quelques lignes. {if !$priceDisplay || $priceDisplay == 2}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if} {if $priceDisplay}{convertPrice price=$product.price_tax_exc}{if $priceDisplay == 2} {l s='-Tx'}{/if}{/if} J'ai "bricolé" pas mal de solutions en essayant de m'inspirer de votre code mais rien de concluant...Une solution fonctionnelle serait un magnifique cadeau de noel !!Bonnes fêtes à tous ! Link to comment Share on other sites More sharing options...
domi77185 Posted December 26, 2010 Share Posted December 26, 2010 Bonjour,N'ayant pas de version 1.2.5 de Prestashop d'installé je n'ai pas pu tester mon code ci-dessous.Mais je pense qu'il devrait fonctionner.Par sécurité, faites une sauvegarde de votre code original avant. > {if isset($products)} <!-- Products list --> </pre> <ul> {foreach from=$products item=product name=products} {if ($product.allow_oosp OR $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if} getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {if $product.nouveaute == 1}{l s='new'}{/if}{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'} {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} {if $product.destock} Destockage !{/if} {if $product.livraison} Livraison incluse !{/if} {if $product.on_sale} {l s='On sale!'} {elseif ($product.reduction_price != 0 || $product.reduction_percent != 0) && ($product.reduction_from == $product.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $product.reduction_from))} {l s='Price lowered!'} {/if} <!-- Modif Domi - Ne pas afficher de prix ni de lien "Ajouter au panier" si prix <= 0 --> {if ($product.price > 0)} {if !$priceDisplay || $priceDisplay == 2}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if} {if $priceDisplay}{convertPrice price=$product.price_tax_exc}{if $priceDisplay == 2} {l s='-Tx'}{/if}{/if} {if ($product.allow_oosp OR $product.quantity > 0) && $product.customizable != 2} {l s='Add to cart'} {else} {l s='Add to cart'} {/if} {/if} <!-- FIN Modif Domi - Ne pas afficher de prix ni de lien "Ajouter au panier" si prix <= 0 --> {l s='View'} {/foreach} </ul> <br> <!-- /Products list --><br>{/if Ce code doit permettre de ne pas afficher les prix si ils sont inférieurs ou égaux à ZERO.et dans ce cas le bouton "Ajouté au panier" n'est pas affiché non plus. Link to comment Share on other sites More sharing options...
promoshop Posted December 26, 2010 Share Posted December 26, 2010 Merci Domi on se rapproche de la solution mais ça à aussi supprimé les photos et la mise en page de ma liste (cf image jointe). Link to comment Share on other sites More sharing options...
domi77185 Posted December 27, 2010 Share Posted December 27, 2010 tien c'est bizarre, car le code qui affiche l'image est bien plus haut et il n'est pas impacté.Je soupçonne l'affichage du code sur le forum qui parfois (pour des raison de sécurité du forum) modifie le code que l'on écrit (supprime des balises).Afin de s'assurer que le probléme ne vient pas de là, peux tu me mettre ton fichier TPL en pièce jointe. Je modifierai directement le fichier, et si cela ne fonctionne toujours pas, on aura au moins éliminé ce risque.Après recherche avant l'envoi du mail, le code est bien modifié par le forum.La preuve en ligne 8 ou il y a le code pour les images.Vers la fin de la ligne : getImageLink($product.link_rewrite, $product.id_image, 'home')} C'est certain que ce n'est pas le code d'origine.Donc je confirme, envoi moi ton fichier TPL en pièce jointe. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now