Jump to content

[Résolu] Si prix = 0 alors demande d’info par mail


 Share

Recommended Posts

Bonjour à tous,

Je cherche à faire un truc tout simple, tellement simple que je ne trouve pas la bonne méthode ;-)

Pour les produits avec un prix à 0 j'aimerais que le prix ne s'affiche pas et qu'à la place on puisse envoyer un mail directement concernant ce produit afin d'avoir d'autres informations.

Au départ je voulais faire un module, mais comme l'affichage du prix n'est pas un hook, je suppose que ce n'est pas possible.
donc je vais directement modifier mon fichier product.tpl dans mon thème.

j'ai ajouté la condition suivante pour éviter que le prix ne s'affiche :

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}
   {if !$priceDisplay || $priceDisplay == 2}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}
           {l s='tax incl.'}
   {/if}
{/if}



Cela fonctionne bien.

Puis je vais surement utiliser le module interesatdeprodus pour faire un lien faire le formulaire de demande d'information.

Qu'en pensez-vous, et connaissez vous une meilleur solution ?

Share this post


Link to post
Share on other sites

hello
je n'y connais rien en programmation, mais est ce qu'une pitse ne pourrait pas etre de désactiver le panier sur les articles dont le prix est zéro, voire ceux que tu select-ionnes avec un critere éventuellement maison (style un attribut) ? je sais qu'iul y a eu un post ou peut etre un module sur comment déactiver le panier...
Désactivation peut etre a coupler avec "poser une question sur ce produit".
http://www.prestashop.com/forums/viewthread/30121/developpement_et_modules/question_directement_sur_un_produit

désolée de ne pas pouvoir t'aider plus

Share this post


Link to post
Share on other sites

@atch : Merci, mais c'est un hack et non un module. Donc à surveiller à chaque évolution.

En faisant une modification dans le thème cela réduit la charge de suivit.

J'ai réussit à le faire fonctionner sans problème.

Il suffit de mettre en place le module interesatdeprodus sans l'installer pour pouvoir utiliser le formulaire. Formulaire que j'ai modifié pour qu'il récupère automatiquement le mail de la boutique et éviter de le coder en dure comme c'est le cas actuellement.

Pour intégrer la fonction il faut aussi penser à la page product-list.tpl qui doit aussi être modifié.


Par contre si quelqu'un trouve une meilleur solution avec un module, je suis preneur.

Share this post


Link to post
Share on other sites

on doit travailler sur 2 fichiers.

product-list.tpl et product.tpl dans ton thème.

attention, dans product-list, ce n'est pas la même variable à tester :

{if $product.price != 0}



bien entendu, on englobe l'affichage du prix dans les 2 fichiers.

product.tpl : ligne 196

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}
                   {if !$priceDisplay || $priceDisplay == 2}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}
                           {l s='tax incl.'}
                   {/if}
             {/if}



puis on fait disparaitre le bouton d'achat, plus on ajoute le lien vers le formulaire de demande d'information :

 {if $product->getPrice(true, $smarty.const.NULL, 0) != 0}

quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>
           {else}

{l s='Interested in product'}
           {/if}

Share this post


Link to post
Share on other sites

ca n'a pas fonctionné pour moi, plus aucun produit ne s'affichait dans les categories. Je pense que je ne suis pas en train de mettre le bon code sur la bonne ligne. Je n'arrive pas a savoir ou je dois mettre le code exactement... Je dois remplacer le code existant ou ajouter ton code a la suite?

je dois ajouter ce code n'importe ou dans product-list?
{if $product.price != 0}

Et pour ces 2 codes: if $product->getPrice...
je dois les mettre l'un a la suite de l'autre?

Est-ce que ca enleve aussi le prix du module "featured products"?

Share this post


Link to post
Share on other sites

Dans product.tpl à la ligne 196 tu remplace

{if !$priceDisplay || $priceDisplay == 2}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}
                           {l s='tax incl.'}
                   {/if}


par

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}
                   {if !$priceDisplay || $priceDisplay == 2}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}
                           {l s='tax incl.'}
                   {/if}
               {/if}

Share this post


Link to post
Share on other sites

Superbe! ca a fonctionne! le prix de la page produit est partie.

Maintenant, quel code je dois remplacer pour enlever le prix si Prix=0$ de: la "section categorie produits" et de "de Featured products". Et quel code je dois remplacer pour enlever le cart button si Prix=0$?

je vais m'aventurer un petit peu dans le code et essayer, mais si tu sais ce que je dois changer ca me serais beaucoup plus facile pour pas que je fasse de degats :)

UPDATE: lolll tout seul je m'en sors pas, j'ai suivi ton truc avec les if et if/ mais je n'y arrive pas :P. Jusqu'a present tout ce que j'ai reussi a faire c'est enlever le prix de la page produit grace a tes instructions.

Share this post


Link to post
Share on other sites

  • 1 month later...
  • 2 months later...

Bonjour,
je cherche également à remplacer l'affichage du prix, par "prix, nous consulter"
Or voici mon code de product.tpl :

<!-- 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))}
               {/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}

           {if ($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))}

{convertPrice price=$product->getPriceWithoutReduct()} {l s='incl. tax'}
           {/if}
           {if $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 reduced by'} {$product->reduction_percent|floatval} %{l s=')'}
           {/if}
           {if $product->ecotax != 0}

{l s='include'} {convertPrice price=$product->ecotax} {l s='for green tax'}
           {/if}



A quel endroit dois-je positionner ma condition ?

D'avance merci pour votre aide...

Share this post


Link to post
Share on other sites

  • 4 weeks later...
  • 2 weeks later...

ça me bouffe quand les gens viennent dans les forum,
posent leur questions, une fois qu'ils ont eu ce qu'ils cherchaient ils se barre comme des voleurs !
Exemple ici Tropical dream a trouver l'astuce mais semble la garder pour lui ... !!!

Vais devoir trouver aussi par moi meme ou chercher sur le forum comment retirer le bouton add to cart si le prix = zero car je demarre prestashop et en code (meme si j'ai une certaine logique) j'ai pas encore trop pigé !
si quelqun a donc pigé : car je viens d'y passer encore 3 h
rappel de procedure : si le prix = 0
1 - retrait du prix
2 - du retrait du bouton ajout au panier (bouton)
3 - d'y mettre un text comme quelqun le souhaite (ou un lien)

les fichiers à travailler et a quelle ligne remplacer !!
Merci encore Tropical dream ! :-( bel exemple de partage d'informations !!

Share this post


Link to post
Share on other sites

bonjour,

tout d'abord merci pour ce post qui je pense est utile à beaucoup de monde.
Pour ma part, il m'est d'une grande aide.

J'ai suivi toutes les explications données en page 1 et je suis arrivée à enlever le prix sans difficulté mais je n'ai pas dut rentrer le code au bon endroit concernant le panier car il n'a pas disparu.

Serait-il possible de m'indiquer quelle ligne je dois modifier pour que mon bouton "ajouter au panier" disparaisse lorsque mon prix est à 0?

Merci beaucoup

Share this post


Link to post
Share on other sites

Bonjour,

J'ai réussi à remplacer 0,00 € par "PRIX, NOUS CONSULTER" dans la fiche produit, mais comment faire pareil dans product-list.tpl ?

Mon code d'origine est le suivant :

         

{displayWtPrice p=$product.price}

      



D'avance merci pour vos conseils !

Share this post


Link to post
Share on other sites

on doit travailler sur 2 fichiers.

product-list.tpl et product.tpl dans ton thème.

attention, dans product-list, ce n'est pas la même variable à tester :
{if $product.price != 0}



bien entendu, on englobe l'affichage du prix dans les 2 fichiers.

product.tpl : ligne 196

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}
                   {if !$priceDisplay || $priceDisplay == 2}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}
                           {l s='tax incl.'}
                   {/if}
             {/if}



puis on fait disparaitre le bouton d'achat, plus on ajoute le lien vers le formulaire de demande d'information :

 {if $product->getPrice(true, $smarty.const.NULL, 0) != 0}

quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>
           {else}

{l s='Interested in product'}
           {/if}



Merci jekyl pour cette aide cependant chez moi non plus cela ne fonctionne pas. pourrais tu nous donner la dernière version du fichier product.tpl cela serait plus simple car je pense qu'à nos yeux de noob :) cela n'est pas trop clair.

merci d'avance

Share this post


Link to post
Share on other sites

bonjour,

Je suis débutante en programmation et je ne connais pas grande chose au php mais en suivant les explications de la page 1,
j'ai réussi à supprimer le prix lorsque celui-ci est = 0 et je l'ai remplacé par un lien "demande de devis".
Le seul code à modifier et celui de product.tpl qui est donnée.

Pour créer mon formulaire de devis, j'ai télécharger le module interesatdeprodus énoncé en page 1 également et tout fonctionne.

Le seul problème que j'ai rencontré, c'est pour bloquer l'Ajout au panier. Mais c'est très simple, il suffit juste d'indiquer quantité=0 lorsque l'on créé la fiche article.

J'espère que j'ai pu vous aider. En tout cas ce topic est vraiment très utile.

UN GRAND GRAND MERCI à Jeckyl et à tous ceux qui ont posté.

Share this post


Link to post
Share on other sites

voila !
pour product-list.tpl j'ai reussi a ne plus afficher le prix et le bouton ajouté au panier j'ai fait comme a dit l'auteur du post !
ci dessous j'ai mis une photo du fichier avec le code
vous remarquerez à la ligne 20 j'y est mis la commande {if $product.price != 0} sans oublié ligne 25 d'y ajouter la fin de la balise {/if}
voila pour ma part ce que j'ai reussi a faire ! je suis sur le fichier product.tpl j'ai pas encore trop reperé le fonctionnement ! mais bon ça ne saurait tarder
Comme j'aime bien comprendre ce que je fait c'est un peu plus long ! et donc je veux comprendre a quoi correspondent les variables !
bn courage a tous !

20795_1axCodzm1LAeW6pr6GnQ_t

Share this post


Link to post
Share on other sites

Moi ça ne fonctionne pas dans product-list !!
J'ai toujours 0 € qui s'affiche !

mon code est le suivant :

        

{displayWtPrice p=$product.price}



Où et comment dois-je placer cette condition :

{if $product.price != 0}{convertPrice price=$product.price_tax_exc}{/if}

??


D'avance merci pour un avis éclairé...

Share this post


Link to post
Share on other sites

  • 1 month later...

J'ai enfin réussi à adapter le product.tpl comme je voulais. Jeckyl n'avais pas répondu complètement, du moins voici ce que jai fait:

J'ai ajouté la condition permettant de cacher les éléments tarif,quantité et infos stock et ajout au panier, un peu avant ce qu'a dit Jeckyl. Enfin à la place je peux y mettre ce que je désire.

Ces éléments sont dans un cadre/div. L information éventuelle qui remplace ces éléments sera placé soit dans ce cadre, soit à l'extérieur.

Si vous désirez que ce qui remplacera ces éléments (panier,tarif..) soit pas dans le cadre, mais libre, dans une div que vous pouvez créer par ex, faites ainsi :

Ajouter ces lignes :

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}
{if !$priceDisplay || $priceDisplay == 2}



à la ligne 174, juste avant le

<!-- add to cart form-->
       <form id="buy_block" action="{$base_dir}cart.php" method="post">



si vous désirez que l information qui remplacera ces éléments soit dans le cadre, insérez ces lignes un peu plus bas juste avant <!--prices --> < class="price">

Enfin il faut fermer la condition et insérer le contenu (éventuel) qui remplacera les éléments de base.
Rendez vous juste après l affichage de toutes ces infos, plus bas après quantity wanted, availability,number of item, out of stock, warning-inline vous trouverez ces lignes:

{if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}





Juste après la première ligne de ce bloc (if #HOO_EXTRA...) ajoutez ceci si vous désirez faire un lien vers le module "interestedinproduct" (qui ne fonctionne pas chez moi :( ):

{/if}
{else}

{l s='Interested in product'}
{/if}

soit un texte de votre choix (ici sans aucun  formattage css) :
[code]{/if}
{else}
{l s='votre texte'}
{/if}


[/code]

Share this post


Link to post
Share on other sites

Super mais concernant product-list ??
Toujours pas d'info concrète pour virer aussi le 0 € ?
D'avance merci...

Dur, dur... de suivre un Sujet quand on a la même question qui revient
sans cesse (4 ou 5 fois) !
Essayes de te creuser un peu plus la tête... et ménage ton impatience !
Merci !

PS : et quand tu réussi à résoudre un problème, tu peux aussi partager la solution !
Merci (bis) !

Share this post


Link to post
Share on other sites

Super mais concernant product-list ??
Toujours pas d'info concrète pour virer aussi le 0 € ?
D'avance merci...


bein la réponse c'est eliote7 qui viens de la donner avec l'ajout dun code à la ligne 20 et 25

Share this post


Link to post
Share on other sites

Oui bien-sûr ce qu'a dit Eliote7 est intéressant mais cela ne fonctionne pas avec mon theme !

J'ai toujours 0€ qui s'affiche via product-list !

Voici mon code, peut-être ai-je fait une erreur de positionnement ?
D'avance merci pour vos avis éclairés...

>      </pre>
<ul style="background:transparent;">
       {foreach from=$products item=product name=homeFeaturedProducts}
       {assign var='productLink' value=$link->getProductLink($product.id_product, $product.link_rewrite, $product.category)}





{$product.name|escape:htmlall:'UTF-8'|truncate:1000}


{$product.description_short|strip_tags|truncate:220:'...'}


{displayWtPrice p=$product.price}

      


{if $product.price != 0}
{if ($product.quantity > 0 OR $product.allow_oosp) AND $product.customizable != 2}

            {else}
{l s='Add to cart'}
           {/if}{/if}


        {/foreach}
</ul>
<br><br>   {else}<br><p>{l s='No Top sellers'}</p>
<br> {/if}<br><br>{include file=$tpl_dir./paginatio

Share this post


Link to post
Share on other sites

du genre comme ça ?

          {$product.name|escape:htmlall:'UTF-8'|truncate:1000}


{$product.description_short|strip_tags|truncate:220:'...'}


{if $product.price !=0}
{displayWtPrice p=$product.price}
{/if}

      


{if ($product.quantity > 0 OR $product.allow_oosp) AND $product.customizable != 2}

            {else}
{l s='Add to cart'}
           {/if}


        {/foreach}




Mais cela ne donne toujours rien de plus et surtout, à quel moment j'écris éventuellement "Nous Consulter" ou rien du tout mais pas 0 € !?

Merci beaucoup...

Share this post


Link to post
Share on other sites

  • 6 months later...

Bonjour,
Si cela interesse j'ai trouver une solution assez simple codé par mes soin pour ne pas afficher quand les prix sont à 0 dans la product-list.

dans le product-list.tpl ligne 18 pour ma part. A placer avant le span class=price

{if $product.price !=0}



ne pas oublier après les 2 span de fermer le if

{/if}



en suite pour afficher un message style "Nous contacter".Aprè avoir fermer le if copier se code toujours dans le div mes aprè les span encadré par le if précédement.

{if $product.price == 0}
Nous contacter au 03-20-16-26-66
{/if}



en espérant que comme moi cela vous aide ;)

Share this post


Link to post
Share on other sites

  • 2 weeks later...

J'ai attentivement suivi les instructions de ce forum... et ça fonctionne au poils ! Bravo les gars ! Seul problème, c'est seulement valable pour les clics à partir des "Catégories"... par contre pour le "Déja Vu", "Nouveau Produits", et "Produits phare" rien à changé. Pourriez vous m'indiquer les fichiers où il faut faire les mêmes modifs svp ?

Share this post


Link to post
Share on other sites

  • 2 weeks later...
  • 1 month later...

Bravo à tous pour ce poste c'est vraiment intéressant.
J'ai un peu galéré mais j'y suis arrivé.
Par contre pour reprendre l'idée de Jeckyl, vous avez des tuyaux pour créer un module qui permettra de renvoyer le client sur un formulaire tout en récupérant le produit concerné?
Perso, j'ai juste mis un lien vers le formulaire de contact, c'est bcp plus simple...;)
D'avance merci.

Pst.

Share this post


Link to post
Share on other sites

Bravo à tous pour ce poste c'est vraiment intéressant.
J'ai un peu galéré mais j'y suis arrivé.
Par contre pour reprendre l'idée de Jeckyl, vous avez des tuyaux pour créer un module qui permettra de renvoyer le client sur un formulaire tout en récupérant le produit concerné?
Perso, j'ai juste mis un lien vers le formulaire de contact, c'est bcp plus simple...;)
D'avance merci.

Pst.


Je l'ai fait sur mon site avec un module interestedproduct.

Share this post


Link to post
Share on other sites



Je l'ai fait sur mon site avec un module interestedproduct.


Oui j'ai vu ça et c'est vraiment super.
Mais c toi qui a créé ce module je suppose ?
Bidouiller un peu de code j'ai déjà du mal, alors créer un moduel de zéro...
Si tu as de pistes.
Merci !

Share this post


Link to post
Share on other sites

En fait j'avais pas bien épluchéce que j'avais fait à partir de tout ce que j'ai trouvé ici.
Je sais pas si certains on eut ce problème, mais j'ai un gros bug avec le ficher produits-list.tpl.
Seul le prix HT des produits s'affiche dans les listes...
J'y travaile.

Share this post


Link to post
Share on other sites

  • 1 year later...
  • 2 months later...

je me permet de remonter ce post;

je coince sur le masquage du prix dans la liste des produits;

bien que la solution semble être annoncé ici, impossible de la faire fonctionner chez moi sur une version 1.5.2

 

voici un morceau du code de product-list

<div class="right_block bordercolor">
	 {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale">{l s='On sale!'}</span>
  {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>{/if}
  {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
	    {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)} <span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>{/if}
  {/if}
	   {if isset($comparator_max_item) && $comparator_max_item}
   <p class="compare checkbox"> 
		    <input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product,	  $compareProducts)}checked="checked"{/if} />
   <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>
  {/if}
  {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="ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}&token={$static_token}", true)}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
 {else}
  <a class="ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}", true)} title="{l s='Add to cart'}">{l s='Add to cart'}</a>
 {/if}	 

 

j'ai bien essaye d'ajouter la condition smarty mais rien à faire. y aurait il un changement par rapport à la version ou est ce que je m'y prends mal ?

Share this post


Link to post
Share on other sites

  • 3 years later...
  • 3 weeks later...

on doit travailler sur 2 fichiers.

 

product-list.tpl et product.tpl dans ton thème.

 

attention, dans product-list, ce n'est pas la même variable à tester :

{if $product.price != 0}

bien entendu, on englobe l'affichage du prix dans les 2 fichiers.

 

product.tpl : ligne 196

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}                    {if !$priceDisplay || $priceDisplay == 2}                        <span id="our_price_display">{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}</span>                            {l s='tax incl.'}                    {/if}              {/if}

puis on fait disparaitre le bouton d'achat, plus on ajoute le lien vers le formulaire de demande d'information :

{if $product->getPrice(true, $smarty.const.NULL, 0) != 0}                <p{if !$allow_oosp && $product->quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>            {else}                <p id="interestedinproduct"><a href="/modules/interestedinproduct/interestedinproduct-form.php?id_product={$smarty.get.id_product}"><strong>{l s='Interested in product'}</strong></a></p>            {/if}

Impossible de faire disparaître le prix à 0€ meme avec votre module je suis en version 1.6.1.1 !!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More