Jump to content

recap d'infos utiles à ajouter sur product-list.tpl et product.tpl


Recommended Posts

pour ceux qui comme moi ont galéré à trouver des infos pour ajouter des petits trucs dans product-list.tpl et product.tpl, voici un recap de ce que j'ai fait sur mon site:


Product-list
toutes les modifs se font dans la div "right block"

1/ afficher le pourcentage de réduction :
ajouter ce code:

{if $product.specific_prices.reduction_type == 'percentage'}
- {$product.specific_prices.reduction*100} %
{/if}

2/ afficher l'ancien prix barré pour les réducs, ajouter ce code, (en dessous du 1er)

{if $product.specific_prices.reduction_type == 'percentage'}
<s>{convertPrice price=$product.price_without_reduction} </s>
{/if}

3/ afficher le prix TTC en gros et le prix HT en petit pour les particuliers et innversement pour les pro:
Important: Choisir l'affichae tax incluse pour les particulier et taxe exclue pour les pro puis ajouter le code suivant:
pour 1.4 et 1.5:

{if !$priceDisplay==1}{convertPrice price=$product.price_tax_exc}{l s='HT'}{else}{convertPrice price=$product.price} {l s='TTC'} {/if}</span><br />

(à ajouter en dessous de ce code:

{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;"> {if !$priceDisplay}{convertPrice price=$product.price}{l s='TTC'}{else}{convertPrice price=$product.price_tax_exc}{l s='HT'}{/if}</span><br />{/if}
<span class="priceht" style="display: inline;">

)

 

pour 1.6: a la ligne 70 remplacer

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

par

{if !$priceDisplay}{convertPrice price=$product.price}{l s='TTC'}{else}{convertPrice price=$product.price_tax_exc}{l s='HT'}{/if}

4/ ajouter a partir de pour les produits qui ont des déclinaisons :
ajouter ce code (avant celui cité juste au dessus)

pour 1.4 et 1.5:

{if ($product.id_product_attribute!='')}A partir de {/if}

pour 1.6:

Donc le bloc à ajouter devient celui-ci :

{if $product.id_product_attribute != 0}A partir de {/if} 

Ensuite, il y a deux zones à modifier, celle affichée par défaut et celle qui s'affiche quand on survole le produit :

Recherchez le bloc suivant

<span itemprop="price" class="price product-price">

Vous devriez le trouver en ligne 69 et 114 (à peu près). Il suffit de mettre le bloc juste avant et hop !

 

 

Product.tpl:

afficher le prix TTC en gros et le prix HT en petit pour les particuliers et innversement pour les pro:
code un peu différent du précédent:
sous le code

fonctionne pour 1.4/1.5/ et 1.6

{if $priceDisplay == 2}
<br />
<span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}</span>
{/if}

ajoutez ce code:

<br />


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

tout ca fonctionne sur ma v1.4.6. si pb vous pouvez poster ici mais je n'y connais pas grand chose alors je ne pourrais peut etre pas aider.

pour afficher le montant de réduction (quand réduc en montant et non en %):

@cockpitinferno, j'ai trouvé l'info !
 

{number_format(((($product.price_without_reduction - $product.price) / $product.price_without_reduction) * 100), 0)}%
C'est tout bête, un simple calcul quoi mais quand on a pas la tête dans smarty ecetera ça parait une montagne !

le post correspondant est le suivant:
http://www.prestasho...s-tout-le-site/

Merci de ta réponse.

 

Edited by cockpitinferno (see edit history)
  • Like 6

Share this post


Link to post
Share on other sites

  • 1 month later...

petit rectificatif, en fait cette modif est incomplète.

en effet, si vous avez des produits qui ont des déclinaisons affectant les prix, seul le 1er prix (ht pour les pros et ttc pour les particuliers et visiteurs) va changer, le second prix reste le même.

 

j'ai réussi à modifier le prix HT pour la partie visiteurs et particuliers ca donne ca:

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

 

mais pour la 2e partie qui concerne les pro, pas moyen d'obtenir le changement en fonction de la déclinaison.

je ne comprends d'ailleurs pas pourquoi.

si qqun passant par là peut aider, ce serait cool. je sais que ej pourrais mettre la même règle de prix (TTC ou HT) pour tous mes groupes vu que les 2 prix sont affichés mais je souhaite donner la priorité au ht dans le panier pour les pros, c'est pour ca que je souhaite avoir ce système.

Share this post


Link to post
Share on other sites

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

Merci est il possible de mettre en pièce jointe les bons fichiers ou de faire un récap?

 

J'ai réussi à le mettre en place mais cela ne marche pas pour les produits en page d'accueil?

Share this post


Link to post
Share on other sites

  • 1 month later...

Un grand Merci à toi Cockpitinferno pour tes supers infos.

Cela faisait un moment que je cherchais.

Je suis tombée par hasard sur ton poste et c'est génial (surtout que ce sont bientôt les soldes).

Et le petit "A partir de" est le bienvenu :)

Encore Merci.......

Share this post


Link to post
Share on other sites

pour le changement de prix des déclinaisons vous pouvez aller voir ce post:

http://www.prestashop.com/forums/index.php?/topic/162524-resoluaffichage-de-prix-ht-et-declinaisons/page__fromsearch__1

 

@medhi: ton lien ne fonctionne pas.

@papich: c'est déjà un recap donc je ne peux pas faire un recap d'un recap. j'ai choisi de ne pas mettre les fichiers en pièces jointes car c'est à chacun de mettre les modifs qui l'interesse. chaque modif n'interesse pas tout le monde.

ce n'est pas très compliqué car je n'y connais pas grand chose, si j'ai pu y arriver franchement tout le monde peut le faire.

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Salut ^_^

 

je viens vous demander un conseil.

J'ai des produits en "promo" sur le site.

Dans le product-list, j'ai fait les modifs vues plus haut et ça marche bien. Merci !

 

Par contre sur la fiche produit, le prix promo seul s'affiche, en rouge, l'ancien prix barré n'apparait pas, ni le % de réduction.

Y a t-il une ligne de code à vérifier dans le product.tpl ?

 

Merci de votre aide.

Share this post


Link to post
Share on other sites

Bonjour,

oui, j'ai modifié le product-list pour voir le prix barré ET le %.

Mais en fait le problème vient uniquement du fichier product.tpl.

 

j'ai un "product.tpl" pour presta version 1.3, j'ai adapté ce thème pour presta 1.4.6.2.

 

Si je modifie le fichier product.tpl en prenant du code du fichier de la version 1.4 le prix barré et le % apparaissent (je copie des ligne des code d'un fichier à l'autre). Mais j'ai un problème d'affichage (les cadres css sont décalés, la mise en page n'est pas terrible).

Si je reste avec le fichier product.tpl de la version 1.3, le css est nickel, mais les prix barré et les % de réduction n'apparaissent pas.

 

En fait je ne pense pas que ce soit en relation avec les modifs faites plus haut...

Edited by jujutte24 (see edit history)

Share this post


Link to post
Share on other sites

En fait je viens de trouver le problème :)

 

J'ai copié les fichiers de la version 1.4, ceux qui prennent en compte les réductions, dans le product.tpl.

Je les aient collés sur la version 1.3.

Le problème venait de l'appel à Smarty pour les dates des promos

Là ça marche. :D

Share this post


Link to post
Share on other sites

J'ai un soucis depuis plusieurs mois, quand j'essaie de modifier ce fameux fichier product.tpl, j'ai ce message qui s'affiche en haut dans un cadre rouge :

"convertAndFormatPrice" , "convertAndFormatPrice" , "pprice=$productPrice" , "punit_price=$product->unit_price_ratio" , -> non autorisé

 

 

et bien sur ça ne valide pas ma modif.

Quelqu'un peut m'aider à régler le soucis?

 

Merci!

Share this post


Link to post
Share on other sites

Bonjour,

 

Tout d'abord, merci beaucoup de nous faire partager ces astuces!

 

Je n'ai pas eu de soucis avec les premières, par contre j'essayais d'intégrer celle-ci :

4/ ajouter a partir de pour les produits qui ont des déclinaisons :

ajouter ce code (avant celui cité juste au dessus)

{if ($product.id_product_attribute!='')}A partir de {/if}

et là j'ai un soucis, voici le message d'erreur qui s'affiche :

"=''" , -> non autorisé

 

 

est-ce que quelqu'un peut m'aider?

 

Merci!

Share this post


Link to post
Share on other sites

Bonjour cockpitinferno, merci pour ces petites lignes qui nous font gagner un temps fou !

 

J'ai une question à propos de l'affichage du % de réduction. Dans notre boutique, les réductions ne sont pas toujours en pourcentage mais parfois en montant ( 1€, 3€ de réduction sur le pdt... ), si j'utilise:

- {$product.specific_prices.reduction*100} %

le pourcentage de réduction s'affiche correctement pour les produits dont la réduc est en % mais m'affiche -300% ou -400% sur les produits donc la réductions est un montant, type (3€ de réduction sur tel produit).

 

Avez vous une idée de la solution. Peut être faudrait-il faire un calcul permettant de générer le % de réduction se basant sur le prix avant réduction et la prix après.

 

Qu'en pensez vous ?

 

Merci encore pour ces astuces !

Share this post


Link to post
Share on other sites

Bonjour,

 

Merci pour toutes ces infos.

 

Super utiles.

 

Petite information complémentaire, qui me semble plus simple.

 

Pour afficher TTC et HT une modif simple sur product.tpl

 

 

remplacer seulement 2 par 0

 

{if $priceDisplay == 2}
  <br />
  <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL, 2)}</span> {l s='tax excl.'}</span>
 {/if}

 

Par

 

{if $priceDisplay == 0}
  <br />
  <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL, 2)}</span> {l s='tax excl.'}</span>
 {/if}

 

Le 0 permet d'afficher les 2 TTC et HT

 

 

Au passage pour "typhoon"

 

Pour la modif dans product-list.tpl

 

{if ($product.id_product_attribute!=0)}A partir de {/if}

 

A bientôt

 

Bernard77

Edited by bernard77 (see edit history)

Share this post


Link to post
Share on other sites

@skewo, comme dit précédemment mes connaissances sont limitées, pour ce que tu veux faire il faut surement utiliser tout autre chose, je te conseille de faire une recherche sur le forum et eventuellement de poster un autre post.

mon post ne sert que de récap pour eviter de chercher les infos partout.

j'ai mis des heurs à trouver ce que je cherchais, c'est pour ca que j'ai créé ce post.

je n'ai pas le temps de faire la recherche à ta place. désolée.

 

par contre si tu trouve l'info, hésite pas à la poster ici (j'éditerais mon post pour l'ajouter) ca aidera les prochains.

Edited by cockpitinferno (see edit history)

Share this post


Link to post
Share on other sites

@cockpitinferno, j'ai trouvé l'info !

 

{number_format(((($product.price_without_reduction - $product.price) / $product.price_without_reduction) * 100), 0)}%

 

C'est tout bête, un simple calcul quoi mais quand on a pas la tête dans smarty ecetera ça parait une montagne !

 

le post correspondant est le suivant:

http://www.prestashop.com/forums/topic/118347-afficher-les-pourcentages-de-reductions-dans-tout-le-site/

 

Merci de ta réponse.

  • Like 1

Share this post


Link to post
Share on other sites

  • 3 weeks later...

Salut !!

 

Merci pour ce récap bien utile. J'ai passé bien des heures pour obtenir un résultat similaire à vos bouts de code =))

 

Sauriez-vous comment utiliser ce bout de code SI ET SEULEMENT SI la valeur d'unité = 'kg'.

Je voudrais que cette ligne ne s'affiche QUE SI j'ai inscrit "kg" dans le champ 'unity' du BO / onglets "Infos" (je travaille sous V1.4.8)

 

J'ai tenté ce code (parmi tant d'autres) :

 

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

 

..mais cela ne fonctionne pas. Je ne parviens à trouver la bonne syntaxe pour cette valeur de unity...

 

MErci pour votre aide

Edited by Lilhouh (see edit history)

Share this post


Link to post
Share on other sites

désolée je ne connais pas la bonne variable. moi j'ai surtout fait un récap d'infos trouvée sur le forum. le mieux serait de faire une recherche ou de créer un post spécifique.

 

un fois que vous aurez la réponse, hésitez pas à poster ici, je mettrai l'info dans le 1er post avec les autres.

Share this post


Link to post
Share on other sites

  • 2 weeks later...
  • 3 months later...

Bonjour

 

Moi je galère complet : impossible de faire afficher le prix barré et la réduc, que ce soit en liste ou dans la fiche produit. Je suis en 1.4.8 et voici ce que j'ai dans le Div Right Block :

 

<div class="right_block">

{if $product.on_sale}

<span class="on_sale">{l s='On sale!'}</span>

{elseif ($product.reduction_price != 0 || $product.reduction_percent != 0) && ($product.reduction_from == $product.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product.reduction_from))}

<span class="discount">{l s='Price lowered!'}</span>

{/if}

<div>

<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />

<span class="availability">{if ($product.allow_oosp OR $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}</span>

</div>

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

<a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$base_dir}cart.php?add&id_product={$product.id_product|intval}&token={$static_token}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>

{else}

<span class="exclusive">{l s='Add to cart'}</span>

{/if}

<a class="button" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>

</div>

 

J'ai essayé les modifs indiquées plus haut et ça ne change strictement rien à l'affichage !

Je précise que j'utilise le thème presta standard, mais en Smarty2

 

Quelqu'un a une idée ?.. (suis super frustré de ne pas pouvoir mettre en place mes promos Noël...)

Share this post


Link to post
Share on other sites

  • 4 weeks later...

Bonjour,

les modifs pour le productlist ne fonctionne pas avec mon template "MATRICE" sur 1.4.8.3

ci joint mon code:

 

 

 

{if isset($products)}

<!-- Products list -->

<ul id="product_list" class="categorie_product clear">

{foreach from=$products item=product name=products}

<li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix">

 

<p id="product_list_stuffs">

{if isset($product.new) && $product.new == 1}<span class="new_product"><strong>{l s='New'}</strong><br /></span>{/if}

{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}

<span class="new_product"><strong>{l s='On sale!'}</strong></span>

{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}

<span class="on_sale"><strong>{l s='Reduced price!'}</strong> <strike>{convertPrice price=$product.price_without_reduction}</strike><br /></span>

{/if}

{if isset($product.online_only) && $product.online_only}<span class="online_only"><strong>{l s='Online only!'}</strong></span>{/if}

</p>

 

<p>

<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}">

<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'large')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />

</a>

</p>

 

<h3>

<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:25:'...'|escape:'htmlall':'UTF-8'}</a>

</h3>

 

<p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short|truncate:130:'...'|strip_tags:'UTF-8'}</a></p>

 

{if isset($comparator_max_item) && $comparator_max_item}

<p class="check_list_compare" style="margin-top:0.5em">

<input type="checkbox" onclick="checkForComparison({$comparator_max_item})" class="comparator" id="comparator_item_{$product.id_product}" value="{$product.id_product}" checked="checked" />

<label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label>

</p>

{/if}

 

 

<p class="pprice">

{if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}

<span>

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

</span>

{/if}

<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='view'}</a>

{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}

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

<a class="ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='cart'}</a>

{else}

<strike>{l s='Add to cart'}<strike>

{/if}

{/if}

</p>

 

</li>

{/foreach}

</ul>

<!-- /Products list -->

{/if}

 

 

Quelqu'un pour m'aider??

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Super, merci!

 

Est-ce que vous savez comment on peut ajouter à product-list.tpl le prix dégrèssif en plus du prix normal. Je m'éxpilque,

j'ai un produit a 2€ pour X, mais si X est plus grand que 5, le prix diminue à 1€75.

Et j'aimerai afficher les deux prix dans product-list.tpl .

 

Dans le genre:

2€ pour 1

1€75 pour 5

 

Si vous avez une idée, merci!

 

ps: c'est un prestashop 1.5.1

Edited by Dedra (see edit history)

Share this post


Link to post
Share on other sites

J'ai trouvé la solution:

 

Dans CategoryController.php

Dans la methode:

public function assignProductList()

ajoutez à la fin de la methode.:

$id_customer = (isset(self::$cookie->id_customer) AND self::$cookie->id_customer) ? (int)(self::$cookie->id_customer) : 0;
$id_group = $id_customer ? (int)(Customer::getDefaultGroupId($id_customer)) : _PS_DEFAULT_CUSTOMER_GROUP_;
$id_country = (int)($id_customer ? Customer::getCurrentCountry($id_customer) : Configuration::get('PS_COUNTRY_DEFAULT'));

foreach($this->cat_products as &$cat_product){
$cat_product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$cat_product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);
}

 

Ensuite, dans product-list.tpl

ajoutez

{foreach from=$product.quantity_discount|@array_reverse item=reduc}
		{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
	   {/foreach}

La ou vous voulez afficher la liste des "reductions sur quantité" du produit.

That's it!

 

ps:testé sur un PS 1.5.X

Edited by Dedra (see edit history)

Share this post


Link to post
Share on other sites

Merci beaucoup Dedra, je tiens juste à préciser qu'il faut pas oublier '}' à la fin du foreach :

foreach($this->cat_products as &$cat_product){
$cat_product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$cat_product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);[color=#ff0000]}[/color]

Share this post


Link to post
Share on other sites

tu as tout bien copié au bon endroit?

 

essaies peut etre ceci:

 

 

{foreach from=$product.quantity_discount item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

à la place de ceci

 

 

{foreach from=$product.quantity_discount|@array_reverse item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

Edited by Dedra (see edit history)

Share this post


Link to post
Share on other sites

tu as une erreur dans ton fichier product-list.tpl

 

tu dois ecrire:

{foreach from=$product.quantity_discount item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

ou

 

{foreach from=$product.quantity_discount|@array_reverse item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

(pour un tri inversé)

 

tu as:

{foreach from=$product.quantity_discount}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

j'ai testé ta page, elle fonctionne... ( sur un prestashop 1.5.x )

Edited by Dedra (see edit history)

Share this post


Link to post
Share on other sites

Ce code fonctionne, merci

 

{foreach from=$product.quantity_discount item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

Mais montrez-moi € 0.00 / 0

 

Après tout, je ne sais vraiment pas si ce code fait ce que je veux

C'est pour montrer les réductions sur les produits que la liste viking

 

http://www.vikingdirect.fr/a/browse/business/Blocs-cubes/N=2+1030/

 

Est le code pour cela?

 

Merci beaucoup

Share this post


Link to post
Share on other sites

bha si, avec ce que tu as, tu peux obtenir le même résultat que sur le site

http://www.vikingdir...cubes/N=2+1030/

 

cependant tu dois un peu le modifier... pour adapter tes besoins. Je ne peux pas le faire pour toi...

un petit tableau devrait faire l'affaire

 

{foreach from=$product.quantity_discount item=reduc}
{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
{/foreach}

 

explication:

 

{foreach from=$product.quantity_discount item=reduc}

le script va lister toutes les quantity_discount pour un produit

 

{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>

pour chaque "quantity_discount", il affiche le prix soumit à la reduction ($reduc.price formaté avec "convertPrice")

il affiche un "/".

il affiche la quantité minimum necessaire pour cette reduction "$reduc.from_quantity"

pour finir, il passe à la ligne.

 

{/foreach}

termine la boucle

 

avec ces explications, tu dois pouvoir te debrouiller pour modifier à ta convenance...

 

 

ps:pour ajouter un "quantity_discount" tu dois aller dans le back office.

ps': est-ce qu'un modo pourrait déplacer les posts, ça devient hors sujet...

Edited by Dedra (see edit history)

Share this post


Link to post
Share on other sites

  • 3 months later...
  • 2 weeks later...

Hi,

 

I replaced in controller/front CategoryController.php in this topic (i have download it) and add in product-list.tpl in default theme.

 

{foreach from=$product.quantity_discount item=reduc}

{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>

{/foreach}

 

 

 

In product posted i have a 2 euro discount for quantity more than 6 pz.

In product-list quantity appears exactly but discount appears -1,00 euro istead of -2,00 euro.

 

 

 

I apologize for the bad English

 

Help me, please! Thank you very much!

Share this post


Link to post
Share on other sites

it seems that your SpecificPrice::getQuantityDiscounts() function returns you a bad value...investigate...

I can't give you a more accurate answer since I don't know what you have...

 

Does't give you -1€ for every products or only this specific one?

 

I'm sorry i can't help you more...i'm on vacation right now...i don't have prestashop source to give you a hand...i'll help you further on next monday, if you still need help....

 

Since then, backup your files and do tests...that's the best advice I can give you...

Share this post


Link to post
Share on other sites

  • 1 month later...
  • 3 months later...
  • 2 months later...
  • 1 month later...
  • 3 weeks later...

4/ ajouter a partir de pour les produits qui ont des déclinaisons :

ajouter ce code (avant celui cité juste au dessus)

{if ($product.id_product_attribute!='')}A partir de {/if}

 

 

Bonjour,

 

Super ce topic par contre je suis entrain d'essayer d'afficher la mention "A partir de" sur product-list uniquement si le produit comporte des prix spécifiques (pas avec une réduction mais en "prix fixé" par quantité) mais je n'y arrive pas..

J'ai essayé :

{if $product->specificPrice}A partir de {/if}

ou

{if $product->specificPrice.price}A partir de {/if}

 

Quelqu'un pourrait-il m'éclairer... ?

Share this post


Link to post
Share on other sites

J'ai trouvé la solution:

 

Dans CategoryController.php

Dans la methode:

public function assignProductList()
ajoutez à la fin de la methode.:

$id_customer = (isset(self::$cookie->id_customer) AND self::$cookie->id_customer) ? (int)(self::$cookie->id_customer) : 0;
$id_group = $id_customer ? (int)(Customer::getDefaultGroupId($id_customer)) : _PS_DEFAULT_CUSTOMER_GROUP_;
$id_country = (int)($id_customer ? Customer::getCurrentCountry($id_customer) : Configuration::get('PS_COUNTRY_DEFAULT'));

foreach($this->cat_products as &$cat_product){
$cat_product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$cat_product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);
}
Ensuite, dans product-list.tpl

ajoutez

{foreach from=$product.quantity_discount|@array_reverse item=reduc}
			{convertPrice price=$reduc.price}/{$reduc.from_quantity}<br/>
		   {/foreach}
La ou vous voulez afficher la liste des "reductions sur quantité" du produit.

That's it!

 

ps:testé sur un PS 1.5.X

 

Bonjour et merci pour ce code qui fonction très bien sous PS1.5.6.2

 

En revanche je n'ai pas trouvé les fonctions php des modules bestsellers et search dans lesquelles ajouter ce code afin de récuperer le tableau quantity_discount dans les templates correspondants.

Merci par avance pour votre aide

  • Like 1

Share this post


Link to post
Share on other sites

  • 3 weeks later...

Bonjour et merci pour ce code qui fonction très bien sous PS1.5.6.2

 

En revanche je n'ai pas trouvé les fonctions php des modules bestsellers et search dans lesquelles ajouter ce code afin de récuperer le tableau quantity_discount dans les templates correspondants.

Merci par avance pour votre aide

 

I have the same problem, any have solution for this already?

Share this post


Link to post
Share on other sites

  • 1 month later...
  • 3 months later...

Pour ceux que ça intéressent, voilà les modifs à faire sur le product-list.tpl pour afficher "à partir de" devant le prix des produits déclinés pour la version 1.6 et le thème par default (bootstrap) :

 

Premièrement, le paramètre id.product.attribute a changé de type, ce n'est plus une chaîne de caractère, mais un O ou 1.

Donc le bloc à ajouter devient celui-ci :

{if $product.id_product_attribute != 0}A partir de {/if} 

Ensuite, il y a deux zones à modifier, celle affichée par défaut et celle qui s'affiche quand on survole le produit :

Recherchez le bloc suivant

<span itemprop="price" class="price product-price">

Vous devriez le trouver en ligne 69 et 114 (à peu près). Il suffit de mettre le bloc juste avant et hop !

Share this post


Link to post
Share on other sites

  • 2 months later...

merci pour ton info elmanu, je l'ai ajouté au 1er post

je viens d'éditer mon post car certains codes ont été testés sur 1.6 et d'autres modifiés. je n'ai pas le temps de tout vérifier. si d'autres on des modifs à ajouter qu'ils n'hésitent pas, j'éditerais dès que j'aurais 5 min.

Edited by cockpitinferno (see edit history)

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Bonjour,

 

Merci pour toutes ces infos.

 

Super utiles.

 

Petite information complémentaire, qui me semble plus simple.

 

Pour afficher TTC et HT une modif simple sur product.tpl

 

 

remplacer seulement 2 par 0

 

{if $priceDisplay == 2}
	  <br />
	  <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL, 2)}</span> {l s='tax excl.'}</span>
	 {/if}
Par

 

{if $priceDisplay == 0}
	  <br />
	  <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL, 2)}</span> {l s='tax excl.'}</span>
	 {/if}
Le 0 permet d'afficher les 2 TTC et HT

 

A bientôt

 

Bernard77

 

 

Merci pour cette astuce qui fonctionne très bien sous PS 1.6.0.9, par contre comment afficher TTC à coté du sigle € ?

En dessous j'ai bien le prix formaté comme ça : 40,05 € HT, pour le prix ttc juste : 48,06 €

Edited by Shido (see edit history)

Share this post


Link to post
Share on other sites

Salut,

 

Merci pour l'info, juste une chose que j'ai du mal à comprendre :

thème d'origine en 1.6.0.9, dans le product.tpl ligne 261 :

{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
     {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}
     {/if}
{/if}

Ces lignes étaient en commentaire avec les <!-- et -->, du coup les lettres TTC ne s'affichaient pas

 

va comprendre Charles . . .

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

Une idée, en utilisant la même condition que product.tpl, dans product-list.tpl.

{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}

Enfin voila l'idée, a mettre au bon endroit.

 

Bon courage

 

Bernard77

Share this post


Link to post
Share on other sites

Le bon endroit :

product-list.tpl à deux endroits :

ligne 119

<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
 {if $priceDisplay == 1}{l s='tax excl'}{else}{l s='tax incl'}{/if}

ligne 72:

<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
{if $priceDisplay == 1}{l s='tax excl'}{else}{l s='tax incl'}{/if}

bonne continuation

Share this post


Link to post
Share on other sites

  • 4 months later...

bonjour,

 

j ai un gros soucis sur mon site web, les visiteurs voient les prix HT mais les personnes connectées en TTC et pourtant les taxes sont activées partout dans tous les groupes, j ai bien pensé du coup à afficher les deux prix mais je n'y arrive pas...

 

j ai besoin d'aide

 

je suis sous presta 1.6.14

 

merci a tous

Share this post


Link to post
Share on other sites

es tu bien sur de ta configuration. le groupe par défaut est il bien sur TTC?

je pense que tu devrais ouvrir un nouveau topic car c'est un peu hors sujet d'une part et d'autre part les modifs que j'ai indiqué concernent des versions plus anciennes de presta. as tu fait une recherche pour voir si d'autres avaient eu ce même pb.

Share this post


Link to post
Share on other sites

  • 3 weeks later...

bonjour,

 

ça fait un moment que je galère... je voudrai ne pas afficher les prix des produits sur ma page d'accueil j'ai les modules blocbestseller blocnewproducts et des fois je met homefeatured qui sont dans hometabcontent je suis en 1.6.0.6

 

si quelqu'un sais ce qu'il faut faire parce que moi je galère vraiment je trouve pas...

 

cordialement

Share this post


Link to post
Share on other sites

bonjour,

 

ça fait un moment que je galère... je voudrai ne pas afficher les prix des produits sur ma page d'accueil j'ai les modules blocbestseller blocnewproducts et des fois je met homefeatured qui sont dans hometabcontent je suis en 1.6.0.6

 

si quelqu'un sais ce qu'il faut faire parce que moi je galère vraiment je trouve pas...

 

cordialement

Bonjour, Va sur Préférences = Produits = Tu mets Mode catalogue oui ! Amitiés

Share this post


Link to post
Share on other sites

bonjour,

 

oui... mais non... j'y avais déjà pensé mais du coup ça enlève tous les prix du site, moi ce que je voudrai c'est juste qu'ils n'apparaissent pas sur la page d'accueil

 

j'ai beau chercher je patine

 

merci quand même pour ta réponse

 

cordialement

Share this post


Link to post
Share on other sites

Bonjour,

 

Je ferais ça en éditant les templates des modules concernés : fichiers .tpl, pour y supprimer l'affichage du prix.

Et pour que ce soit propre, mettre ces fichiers modifiés dans les dossiers des modules du thème pour faire des override.

 

Bon courage.

Share this post


Link to post
Share on other sites

  • 2 months later...

Bonjour,

 

Tout d'abord merci pour ce petit tuto. Il fonctionne très bien sur 1.6.0.13 pour les réductions sur prix fixés d'avance (exemple : 3€ dès 5 quantité à la place de 3,5€) mais ne fonctionne pas avec des réductions en pourcentage (-10% dès 5 quantité par exemple). A la place, cela affiche -1,00€ comme pour les posts 42 et 47 (page 3) de ce topic.

 

Est-ce que quelqu'un aurait une idée du souci ?

 

Merci d'avance

Share this post


Link to post
Share on other sites

  • 3 months later...
  • 1 month later...

Bonjour à tous,

 

Je suis sous prestashop 1.6.1

Je cherche en vain comment afficher sur ma page produit (product.tpl) l'impact du prix de mes déclinaisons.

 

Je souhaite afficher ce prix dans la petite liste déroulante des déclinaisons à droite du nom de la déclinaison

 

exemple : "option mon produit 1" +150 €

 

 

Quelles variable utiliser ? comment ajouter cette fonctionnalité ?

 

jma

Share this post


Link to post
Share on other sites

  • 6 months later...
Ex:
 {foreach from=$products item=product name=products}
       		{foreach from=$product.features item=feature}
		        {if $feature.name == '...'}
		            {assign "..." $feature.value}
<tr>
           <script type="text/javascript">
           if ($(window).width() > 767)
                function lienProductList()
                {
                document.location ='{$product.link}'
                };
            </script>

                <td onclick="lienProductList()">
<span>...</span>
	        </td>
		</tr>
{/foreach} 

Bonjour je viens me greffer à ce sujet, donc voilà j'ai créé une product-list sur mesure et mes cellules conduisent à la page produit via un onclick. Pour simplifier j'ai appliqué une classe au lieu de répéter la fonction onclick sur chaque lien. Donc les liens fonctionnent le soucis c'est qu'ils renvoient tous vers le lien de mon dernier produit de la liste. Hors j'aimerais qu'ils se réfèrent au lien cliqué. 

Si vous pouviez m'aiguiller ? 

Merci passez une belle journée 

Edited by ledmounting (see edit history)

Share this post


Link to post
Share on other sites

  • 6 months later...
  • 1 month later...
{if $priceDisplay != 1}
{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}{l s='tax excl.'}
{/if}
{if $priceDisplay == 1}
{convertPrice price=$product->getPrice(true, $smarty.const.NULL)}{l s='tax incl.'}
{/if}

 

Bonjour,

 

Super merci pour ces astuces !!

 

Je suis sur presta 1.6.1.11 et j'ai modifié mon product.tpl avec l'ajout des lignes ci-dessus et ça fonctionne très bien ! Juste j'aimerais afficher mon pris HT en plus petit et voir entre parenthèse car pour le moment les 2 prix s'affiche exactement de la même façon ! 

 

Merci d'avance 

Olivier

Share this post


Link to post
Share on other sites

Bonjour,

pour les parenthèses il faut que tu modifies dans la traduction et que tu les rajoutes, pour le reste il faut toucher au CSS, et il faudrait  que j'ai l'url de ton site, pour voir quelle ligne toucher.

au fait "Orb" comme la rivière ?

  • Like 1

Share this post


Link to post
Share on other sites