Jump to content

Afficher Prix à partir de... sur product-list.tpl


Recommended Posts

Bonjour à la communauté,

Je tente en vain d'afficher l'intitulé "Prix à partir de" sur le fichier product-list.tpl avec la manip ci-dessous, je suis actuellement sur une version Prestashop (1.2.5)

En essayant de modifier le code

{if !$priceDisplay || $priceDisplay == 2}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if}

, j'ai ajouté la fonction ci-dessous

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


ce qui donne :

{if !$priceDisplay || $priceDisplay == 2}{if ($product.id_product_attribute!=’‘)}A partir de {/if}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if}


mais cela ne m'affiche ni le prix le plus bas du produit, ni l'intitulé "A partir de", même pas une erreur !

Je me suis trompé quelque part ?

Si quelqu’un peut me corriger, ce serait super sympa.

Merci à vous.

Olivier

Link to comment
Share on other sites

Salut,

tu peux comme cela :

{l s='from'}
               {if !$priceDisplay || $priceDisplay == 2}{convertPrice price=$product.price}{if $priceDisplay == 2} {l s='+Tx'}{/if}{/if}



Après il faut traduire le from par A partir de dans le backoffice avec l'outil de traduction.

tu peux aussi l'intégrer dans un span afin de lui appliquer un style particulier.

Link to comment
Share on other sites

Bonjour,

Merci de ta réponse, j'ai appliqué le code donné, cela fonctionne parfaitement, avec l'ajout de la langue française, impecc !

Mon seul soucis est encore l'intégration du code pour afficher le prix de l'attribut le moins cher, afin d'afficher à partir de...

le code

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

ne m'affiche aucune modification, d'ou peut venir l'erreur ?

Link to comment
Share on other sites

Absolument, cependant, j'applique mes différents tarifs au travers de remise en pourcentage dans l'onglet "Prix dégressifs" de la fiche article, et la cela pose un problème.

La variable à récupérer est bien celle du product-attribute, et c'est la que je coince...

Link to comment
Share on other sites

Si tu fait une réduction sur le volume alors il faut chercher cette information pour connaitre la méthode de calcule de prix.

Mais cela ne concerne les attributs que pour trouver le prix le plus bas et ensuite lui appliquer la réduction par volume.

Link to comment
Share on other sites

Oui c'est exact, d'ou le fait d'intégrer le code

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

dans le product-list.tpl
qui en théorie, devrait faire apparaitre l'attribut le plus bas, mais ce n'est pas le cas !

Le but est de trouver la bonne variable qui permettrait d'afficher cet attribut, mais basé sur les prix dégressifs que l'on peut également appliquer sur ces fameuses déclinaisons !

Link to comment
Share on other sites

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

merci pour ce code qui fonctionne très bien.

par contre qqun aurait une idée pour modifier l'apparence de ce texte?

j'ai utilisé firebug pour voir ou se trouvais le code dans le css mais pas moyen "d'examiner" l'objet avec firebug.

je ne suis pas assez douée pour savoir comment faire ca.
merci d'avance.

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

Avec la dernière version de Prestashop, le fichier product-list.tpl n'est plus structuré de la même façon...
Pourriez-vous me dire quelles sont les lignes à remplacer et par quel code.
Merci à la communauté.

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

je remonte le sujet, car j'ai absolument besoin d'afficher le "à partir de" lorsqu'il y a des déclinaisons au produit. Sachant que pour le choix du produit par défaut je prend la déclinaison la moins chère (au moins pour que ça colle avec le "à partir de").

J'ai eu beau modier le product-list.tpl comme indiqué ou avec diverses variantes prises sur d'autres topic, rien n'y fait.

voici tout le début du bloc de droite .. où rajouter le test et la mention "à partir de" lorsque le nombre d'attribut est différent ou supérieur à 0 ??? .. Merci d'avance !!!

               {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='On sale!'}
               {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='Reduced price!'}{/if}
               {if isset($product.online_only) && $product.online_only}{l s='Online only!'}{/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)}{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
{/if}
                   {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}{/if}
Link to comment
Share on other sites

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



Ceci affiche A partir de uniquement pour les produits qui ont des déclinaisons. J'ai testé sur PS 1.4.

Pour l'affichage du prix, pour que le prix de la déclinaison la moins cher soit affiché, il faut que cette même déclinaison soit la déclinaison par défaut.

Thierry

Link to comment
Share on other sites

Bonjour Thierry et merci

j'ai aussi PS 1.4

hélas j'ai essayé de l'intégrer dans le code

d'abord à la 8° ligne du bloc que j'ai décrit ci-dessus
puis à la 10°
chargé à chaque fois le fichier mais rien n'y fait.
le A partir de de s'affiche pas ...

je dois passer à côté d'un truc évident mais je ne vois pas quoi.

exemple à la 8° ligne :




ou à la 10° ligne imbriqué dans un autre IF :




qu'est ce que je ne fais pas bien ?

Bruno

               {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='On sale!'}
               {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='Reduced price!'}{/if}
               {if isset($product.online_only) && $product.online_only}{l s='Online only!'}{/if}
                {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}

                   {if $product.id_product_attribute!='O'}A partir de :{/if} 
                   {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
{/if}
                   {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}{/if}
               {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='On sale!'}
               {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='Reduced price!'}{/if}
               {if isset($product.online_only) && $product.online_only}{l s='Online only!'}{/if}
               {if $product.id_product_attribute!='O'}A partir de :{/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)}{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
{/if}
                   {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}{/if}
Link to comment
Share on other sites

Avez-vous vidé le cache PrestaShop (tools/smarty/compile) ou bien forcé la recompilation (menu Préférences/Performance/Forcer la compilation) ?

Eventuellement, petit test à faire :
1/ ajouter un msg quelconque ("hello !") avant le {if...}. Ce texte devra alors s'afficher. Si ce n'est pas le cas c'est que le cache n'a pas été vidé ou PS n'a pas recompilé
2/ en début du TPL, mettre {debug} afin que les données smarty de la page s'affiche dans une fenêtre séparée, et cela vous permettra de voir la valeur exact de $product et de tous ses champs.

Thierry

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

J'ai le même problème mais ce que je souhaite faire c'est mettre "à partir de " uniquement sur les déclinaisons de prix parce qu'avec la méthode utilisée, ça marque "à partir de " également sur les déclinaisons couleurs.

Merci par avance pour votre aide.

Cyril

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

D'après ce que j'ai compris, dans la page liste des produits, on n'a pas les dégressifs, il faut donc modifier le fichier Category.php pour pouvoir les utiser.
Sur ma version de presta, la 1.4.2, j'ai fait comme ça:

Modification du fichier category.php:
A la fin de la fonction getProducts (L.534), j'ai ajouté:

        /* Modify SQL result */
       $resultArray = array();
       foreach ($result AS $row)
       {
           $productid = $row['id_product'];
           $sql = 'SELECT MIN(`price`) AS mindeg FROM `'._DB_PREFIX_.'specific_price` WHERE `id_product` = '.$productid;
           $deg = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql);
           $row['deg'] = $deg[0]['mindeg'];
           $resultArray[] = $row;
       }

       return Product::getProductsProperties($id_lang, $resultArray);



Et dans le fichier product-list.tp, je peux utiliser la variable deg:

                
                   {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}{if isset($product.deg)}{l s='From'}{/if}                
                   {if !$priceDisplay}{if isset($product.deg)}{convertPrice price=$product.deg*(1+($product.rate/100))|floatval}{else}{convertPrice price=$product.price}{/if}{else}{convertPrice price=$product.price_tax_exc}{/if}
{/if}
  • Like 1
Link to comment
Share on other sites

  • 2 months later...

J'ai utiliser la même manipulation (avant de découvrir ce post) pour afficher le prix le plus bas sur ma boutique 1.2.5, alors j'ai ajouté cette requête après la ligne 71 du fichier category.php :

 $attributeCombinations = Db::getInstance()->ExecuteS('SELECT pac.`id_attribute`, pa.`id_product`,pa.`price`
 FROM `'._DB_PREFIX_.'product_attribute` pa
 LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pa.`id_product_attribute` = pac.`id_product_attribute`)
 WHERE pac.`id_attribute`= xx');
 $smarty->assign('prixbas', $attributeCombinations);

puis ajouter ce bout de code dans le fichier product-list.tpl du thème :

 {foreach from=$prixbas item=pbas name=pbas}
 {if $pbas.id_product == $product.id_product}
 {assign var='prixdec' value=$product.price+$pbas.price}
 {convertPrice price=$prixdec}
 {/if}{/foreach}		

cela m'affiche le prix le plus bas mais pas pour quelques produits épuisé parce que dans la liste des produit initiale du prestashop c'est programmé pour afficher le prix de la déclinaisons par défaut dont je l'ajoute le montant de la déclinaisons la plus bas prix mais c pas toujours le même cas surtout pour les produits épuisés ou parfois prestashop (sans ma manipulation) m'affiche le prix de la première déclinaison dans la liste (et c'est pas la déclinaison par défaut), alors je veut savoir comment récupérer le prix TTC de mon produit dans ma première requête dans le fichier category.php quelque soit le prix de la déclinaison par défaut et comme ça j'aurais le prix le plus bas dans ma liste des produits.

Link to comment
Share on other sites

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

Ceci affiche A partir de uniquement pour les produits qui ont des déclinaisons. J'ai testé sur PS 1.4.

Pour l'affichage du prix, pour que le prix de la déclinaison la moins cher soit affiché, il faut que cette même déclinaison soit la déclinaison par défaut.

Thierry

 

Bonjour,

j'ai collé ce bout de code {if $product.id_product_attribute!='0'}A partir de :{/if} dans le fichier product-list.tpl

mais le "A partir de" n'apparait pas... pourtant j'ai bien pris le soin de vider le cache de mon navigateur.

Y-a_t_il un endroit précis ou coller ce bout de code dans le fichier product-list.tpl ?

Quelqu'un peut-il m'aider ?

merci

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

 

Je me permets de remonter le poste.

Le code {if $product.id_product_attribute!='0'}A partir de :{/if}

Marche parfaitement, cependant il affiche " a partir de" lorsque le produit à 0 ou plus d'attributs.

Je cherche à modifier ce code pour que "a partir de" s'affiche seulement lorsque le produit possède certains attributs...

Une idée?

 

Merci à tous

 

Yann

Link to comment
Share on other sites

Je précise, par exemple j'ai un atttribut taille, un attribut longueur sur un produit. La longueur engendre une augmentation de prix.

Sur un autre produit, j'ai un attribut couleur, un autre attribut taille, donc ici aucun des attributs n'engendre une augmentation de prix.

Enfin, sur un autre produit, j'ai un attribut diamètre et un attribut couleur. l'attribut diamètre engendre une augmentation de prix.

Donc le code cité dans le post ci-dessus n'est pas valable pour moi car un produit peut avoir certains attributs qui n'engendrent pas d'augmentation de prix.

Merci de votre aide..

 

Yann

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

D'après ce que j'ai compris, dans la page liste des produits, on n'a pas les dégressifs, il faut donc modifier le fichier Category.php pour pouvoir les utiser.

Sur ma version de presta, la 1.4.2, j'ai fait comme ça:

Modification du fichier category.php:

A la fin de la fonction getProducts (L.534), j'ai ajouté:

		/* Modify SQL result */
	$resultArray = array();
	foreach ($result AS $row)
	{
		$productid = $row['id_product'];
		$sql = 'SELECT MIN(`price`) AS mindeg FROM `'._DB_PREFIX_.'specific_price` WHERE `id_product` = '.$productid;
		$deg = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql);
		$row['deg'] = $deg[0]['mindeg'];
		$resultArray[] = $row;
	}

	return Product::getProductsProperties($id_lang, $resultArray);

Et dans le fichier product-list.tp, je peux utiliser la variable deg:

				

				{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}{if isset($product.deg)}{l s='From'}{/if}				
				{if !$priceDisplay}{if isset($product.deg)}{convertPrice price=$product.deg*(1+($product.rate/100))|floatval}{else}{convertPrice price=$product.price}{/if}{else}{convertPrice price=$product.price_tax_exc}{/if}

{/if}

J'ai aussi enlever le bouton "Ajouter au panier" pour éviter d'induire les clients en erreur.

 

 

Bonjour j ai besoin exactement de ce que julien à fait mais je n'arrive pas à le mettre en oeuvre, j'ai presta version 1.4.6 .J'ai copié le premier code dans dans category.php que j'ai trouvé dans le repertoire "classes" ( est ce le bon ?) et le deuxieme dans productlist.tpl. et là je perds tous mes produits : "aucun produits dans cette catégorie... ) que lqu un peut il m aidé et m expliquer ou mettre exactement ces bouts de code car je ne sais pas trop ou les mettre dans mettre dans les fichiers cités.. ? merci beaucoup.

 

JB

Link to comment
Share on other sites

est ce que cette modif permettrait d'obtenir ce qui suit:

 

lorsque par exemple j'ai un produit en 2 conditionnement 500ml et 2L, mon stock est épuisé en 500ml mais pas en 1L, je modifie donc mes déclinaisons et mets la déclinaison par défaut sur le 1L cela évite que les clients pensent que le produit est complétement épuisé.

mais du coup dans ma product-list c'est le prix le plus élevé qui s'affiche et non le produit le moins cher. je souhaiterais donc afficher le moins cher, même si la déclinaison par défaut n'est pas la moins cher.

j'ai l'impression que le code de julien pourrait faire ca mais avant de me lancer dnas la bidouille je voudrais être sure.

merci

Link to comment
Share on other sites

  • 3 months later...

Je déterre ce topic, j'ai trouvé une soluce pour afficher le prix le plus bas des déclinaisons !! donc ça pourra intéressé des membres de la communauté ;)

 

Edit : Finalement j'ai créé une fonction, c'est plus propre !!

 

D'abord, il faut surcharger la classe SpecificPrice.

Donc, créer le fichier override/classes/SpecificPrice.php, avec ce contenu :

class SpecificPrice extends SpecificPriceCore
{
public static function getMinPriceValue($id_product, $price)
{
	$reductions = DB::getInstance()-&gtExecuteS('
		SELECT max(reduction) AS max_reduction, reduction_type
		FROM `'._DB_PREFIX_.'specific_price`
		WHERE id_product = '.$id_product.'
		GROUP BY reduction_type');

	foreach($reductions as $reduction){
		if($reduction['reduction_type'] == "amount"){
			$amount = $reduction['max_reduction'] / 1.196;
		}
		else {
			$percentage = $reduction['max_reduction'];
		}

		if($amount &gt $reduc_percent) {
			return $price - $amount;
		}
		else {
			return $price * (1 - $percentage);
		}
	}

}
}

]

 

Pour ma part, j'utilise la "Navigation à facettes" donc j'ai modifié le fichier : modules/blocklayered/blocklayered.php.

Dans la fonction :

public function getProductByFilters($selected_filters = array()) { }

juste avant le :

return $this->products;

 

J'ai ajouté ce code :

if(count($this->products) > 0) {
for ($i=0;$i<=count($this->products);$i++){
 if(isset($this->products[$i]['id_product']) AND $this->products[$i]['id_product'] != "") {
$this-&gtproducts[$i]['min_price'] = SpecificPrice::getMinPriceValue($this-&gtproducts[$i]['id_product'], $this-&gtproducts[$i]['price']);
 }
}
}

 

Si vous n'utilisez pas la déclinaison par facette, vous pouvez utiliser la fonction getMinPriceValue dans la fonction getProducts() de la classe Categories.php.

 

Ensuite, dans themes/mon_theme/product-list.tpl, j'ai ajouté ceci :

{if !$priceDisplay}
 {assign var="pprice" value=$product.price}
{elseif $product.min_price != 0}
 {assign var="pprice" value=$product.min_price}
  <span class="bold">{l s='A partir de'}</span>
{else}
  {assign var="pprice" value=$product.price_tax_exc}
{/if}

 

J'ai pas mal modifié mon thème donc je ne sais plus quel est le code de base à remplacer par ceci mais en tout cas ça permet d'avoir le prix le plus bas.

A vous de voir où vous voulez l'afficher sur votre page.

 

Edit : ATTENTION : dans la fonction getMinPriceValue(), j'ai mis ceci :

$amount = $reduction['max_reduction'] / 1.196;

car j'affiche mes prix en HT.

Dans le cas du TTC, il ne faut tout simplement pas diviser par 1.196

 

Enjoy ;)

Edited by GhosToM (see edit history)
Link to comment
Share on other sites

  • 1 month later...

pour la version 1.4.7.3 de prestashop ps : autoentrepreneur = pas de taxe

je me suis inspiré du post du dessus

dans product-list.tpl :

   <div class="but" style="margin-left:10px">{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="pprice" style="display: inline;">
 {if !$priceDisplay && $product.min_price}
     <span class="bold">{l s='A partir de'}</span>
   {convertPrice price=$product.min_price}
 {else}
     {convertPrice price=$product.price}{/if}</span><br />{/if}</div>

 

SprecificPrice.php ne pas oublié les balises php soit :

<?php
class SpecificPrice extends SpecificPriceCore
{
	public static function getMinPriceValue($id_product, $price)
	{
			$reductions = DB::getInstance()->ExecuteS('
					SELECT max(reduction) AS max_reduction, reduction_type
					FROM `'._DB_PREFIX_.'specific_price`
					WHERE id_product = '.$id_product.'
					GROUP BY reduction_type');
			foreach($reductions as $reduction){
					if($reduction['reduction_type'] == "amount"){
							$amount = $reduction['max_reduction'];
					}
					else {
							$percentage = $reduction['max_reduction'];
					}

					if($amount > $reduc_percent) {
	return $price - $amount;
					}
					else {
	return $price * (1 - $percentage);
					}
			}
	}
}
?>

 

dans blocklayered.php fonction getProductByFilters dans la requete rajouter p.price dans le select sinon il ne trouve pas le prix, changement entre version de prestashop ?

SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`,
  p.ean13, p.price, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend,  m.name manufacturer_name, p.condition, p.id_manufacturer,
  DATEDIFF(p.`date_add`,
  DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
  FROM `'._DB_PREFIX_.'category_product` cp
  LEFT JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category)
  LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product`
  LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product)
  LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
  LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
  LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
  WHERE p.`active` = 1 AND c.nleft >= '.(int)$parent->nleft.' AND c.nright <= '.(int)$parent->nright.' AND pl.id_lang = '.(int)$cookie->id_lang.'
  AND p.id_product IN ('.implode(',', $productIdList).')'
  .' GROUP BY p.id_product ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).
  ' LIMIT '.(((int)Tools::getValue('p', 1) - 1) * $n.','.$n));

Edited by nox23 (see edit history)
Link to comment
Share on other sites

Bonjour Nox23, j'ai exactement la même version de prestashop et je voulais faire à peu près la même chose à partir de ton code mais rien à faire, ça ne fonctionne pas, il me retourne rien pour $product.min_price. Pour SpecificPrice.php c'est dans override/classes ?

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 years later...
  • 7 months later...

Bonjour,

je rafraichis un peu le post car j'ai un petit souci.

Sur certain de mes produits j'applique une remise en fonction de la quantité acheté.

Pour cela dans la fiche article rubrique prix, j'ai créé un ligne prix spécifique avec la remise proposé à partir d'une certaine quantité.

Dans le front cela marche parfaitement.

 

Mais lors de la recherche produit en front cela indique toujours le tarif unitaire. J'aimerai faire afficher le prix le plus bas possible avec la mention " à partir de". Quelqu'un aurait une solution?

Merci d'avance

Link to comment
Share on other sites

  • 9 months later...
  • 4 months later...
  • 4 months later...

Bonjour,

 

Petit déterrage de topic ^_^ car j'ai besoin de pouvoir afficher "à partir de" sur mes produits.

 

Le premier post du sujet indique ceci :

 

 

{if !$priceDisplay || $priceDisplay == 2}<div><span class="price" style="display: inline;">{convertPrice price=$product.price}</span>{if $priceDisplay == 2} {l s='+Tx'}{/if}</div>{/if}

 

 

Hors impossible de mettre la main dessus.

J'ai par contre trouvé dans le fichier product-list.tpl les lignes suivantes :

 

{if (!$PS_CATALOG_MODE && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
                            <div class="content_price" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
                                {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
                                    <span itemprop="price" class="price product-price">
                                        {hook h="displayProductPriceBlock" product=$product type="before_price"}
                                        {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

 

Est-ce que c'est ce code qu'il faut modifier ? J'avoue que sorti du HTML et du CSS, je suis perdue :blush:

 

Merci d'avance pour l'aide !

 

Tiphaine

Link to comment
Share on other sites

Salut,J'ai réglé le sujet dans le product-list.tpl comme ca :

 

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

 

<p class="price_container">

{l s='From'} <span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>

</p>

 

J'ai inséré le {l s='From'}, le from s'inscrit en anglais et je l''ai traduit dans les fichiers de traduction.J'espère t'avoir aidé...

Edited by picnoc (see edit history)
Link to comment
Share on other sites

Salut,J'ai réglé le sujet dans le product-list.tpl comme ca :

 

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

 

<p class="price_container">

{l s='From'} <span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>

</p>

 

J'ai inséré le {l s='From'}, le from s'inscrit en anglais et je l''ai traduit dans les fichiers de traduction.J'espère t'avoir aidé...

 

Bonjour et Merci Picnoc,

 

Impossible de retrouver tes balises dans ce que j'ai (j'ai la version 1.6), j'ai donc inséré { ls='From'} comme ceci :

<div class="content_price" itemprop="offers" itemscope itemtype="https://schema.org/Offer">

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

                                    {l s='From'}<span itemprop="price" class="price product-price">

                                        {hook h="displayProductPriceBlock" product=$product type="before_price"}

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

 

Mais cela n'affiche rien.

Chez moi dans Dreamweaver cela s'affiche entre les lignes 67 et 71.

 

Une idée de pourquoi ça ne fonctionne pas chez moi ? :(

 

Tiphaine

Link to comment
Share on other sites

Egalement essayé comme ceci :

 

{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">
                        {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
                            {hook h="displayProductPriceBlock" product=$product type='before_price'}
                            {l s='From'} <span class="price product-price">
                                {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
                            </span>

 

Mais rien ne s'affiche non plus :(

Link to comment
Share on other sites

Salut,

 

Je ne suis pas un pro de prestashop ni de la programation donc je suis pas forcement le meilleur pour t'aider juste avec de la théorie. Je bidouille pas trop mal mais c'est tout ce à quoi je peux prétendre ;) Me faudrait le lien de ta page et un accès FTP provisoire... c'est un peu beaucoup mais j'ai pas mieux à te proposer. En MP bien sûr... ;)

Link to comment
Share on other sites

  • 7 months later...

bonjour,

 

Nous avons tenté ceci sur une page catégorie (product-item très précisément). Celà vérifie la présence de déclinaisons mais aussi de l'activation d'un module sur la page... c'est fonctionnel.

{if !($product.id_product_attribute == 0)|| $cart->isMegaProduct($product.id_product)} <span class="from-price">{l s='From'}</span>{/if}   

La même chose ne fonctionne pas sur une page d'article (product). La première partie if isset($groups) fonctionne à merveille. Mais la suite au delà du || n'a aucun succès. Quelqu'un verrait l'erreur ci-dessous? 

{if isset($groups) || $cart->isMegaProduct($product.id_product)} <span class="from-price">{l s='From'}</span>{/if}   
Link to comment
Share on other sites

  • 3 years later...
On 6/21/2011 at 1:47 PM, Thierryh said:

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



Ceci affiche A partir de uniquement pour les produits qui ont des déclinaisons. J'ai testé sur PS 1.4.

Pour l'affichage du prix, pour que le prix de la déclinaison la moins cher soit affiché, il faut que cette même déclinaison soit la déclinaison par défaut.

Thierry

{if $product.id_product_attribute != 0 && $product.id_product_attribute < $product.price }                    
{l s='A partir de'} {/if} 

Link to comment
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
×
×
  • Create New...