Jump to content

Prix déclinaison default


Recommended Posts

Bonjour,

 

Nous sommes en cours de développement d'une boutique mais nous rencontrons un problème ! Nous avons installé le module de navigation à facette (blocklayered) qui fonctionne très bien.

 

Cela-dit, le prix affiché n'est pas celui de la déclinaison par défaut mais celui de la dernière (qui est en générale la plus chère, comportement inverse de ce que nous souhaitons obtenir).

 

Je n'arrive pas à isoler la requête qui sélectionne ces données. Ma seule piste est la suivante :

- Dans le fichier : classes/Product.php, fonction "priceCalculation", ligne 2660, il y a ces lignes :

// Attribute price
   if (is_array($result) && (!$specific_price || !$specific_price['id_product_attribute'] || $specific_price['price'] < 0))
	{
		$attribute_price = Tools::convertPrice($result['attribute_price'] !== null ? (float)$result['attribute_price'] : 0, $id_currency);
		// If you want the default combination, please use NULL value instead
		if ($id_product_attribute !== false)
			$price += $attribute_price;
	}

 

Serait-ce par la qu'il faut regarder ? Je lis le commentaire "if you want the default combination", c'est ce que je veux... Mais mettre null à la place de false ne résout pas le problème.

 

Toute suggestion est bonne à prendre, je suis peut-être à côté de la plaque !

 

Merci d'avance à tous ! :)

 

PS : j'ai un autre problème, dans la navigation à facette pour l'option prix (le slider) : le prix le plus faible est HT et le plus élevé est TTC alors que j'ai coché "utilisé les taxes" dans le module blocklayered. Si quelqu'un a une idée la dessus :)

Link to comment
Share on other sites

  • 7 months later...

Bonjour,

 

je relance la question que je trouve extremement pertinente

Pourquoi l'installation du module navigation a facette modifie de maniere erronnee le prix d'un produit ayant des declinaisons. C'est toujours la plus elevee qui est affichee et non pas celle selectionnee par defaut.

 

C'est un bug majeur car les prix du filtre ne sont plus synchro avec ce qui est affiche et le client n'y comprend plus rien

 

Merci

Link to comment
Share on other sites

Le probleme vient d'une query dans le fichier blocklayered.php

l.1972 : c'est le MAX des id d'attribut qui est pris en compte ?!

donc changer cette ligne en

pa.id_product_attribute id_product_attribute,

 

et rajouter dans les conditions plus bas AND pa.default_on = 1

et voila, le prix retenu sera celui de la declinaison par defaut.

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

Merci thoreking pour la résolution de ce problème.

 

Juste une petite précision au niveau de la condition AND pa.default_on = 1, il faut faire attention à la rajouter à la suite de :

LEFT JOIN '._DB_PREFIX_.'product_attribute pa ON (p.id_product = pa.id_product) AND pa.default_on = 1

Car si on la rajoute dans les conditions de fin de requête, cela n'affiche que les produits qui ont des attributs, ceux qui n'en n'ont pas ne s'affiche plus dans le listing produit.

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...