Jump to content
doc.mycro

Affichage déclinaison produit - le prix ne change pas

Recommended Posts

Bonjour à Tous,

Je viens demander vos conseils, je souhaite utiliser les déclinaisons de produits, j'ai donc créé un attribut avec 2 valeurs, une par défaut sans changement de prix et la seconde avec une augmentation de prix de 30,00 € TTC pour faire simple.

 

Le soucis que je rencontre, c'est que dans la fiche produits coté Front, lorsque je sélectionne les valeurs, le prix ne change pas malgré le réglage "Augmentation". Je vois bien la référence du produit changer mais pas le prix.

Quelqu'un as une idée ou me dire quel module gère l'affichage des prix pour je puisse le réinitialiser.

Merci d'avance pour votre aide.

Share this post


Link to post
Share on other sites

Dans 95% des cas, ce type d'erreur provient d'un défaut de thème. La plupart du temps un thème développé sur une version et exploité sur une autre et pour lequel le code n'a pas été révisé.

Comparer avec un thème natif,  les js du thèmes ainsi que product.tpl

Share this post


Link to post
Share on other sites

Bonjour,

Merci pour ce retour, j'y ai déjà pensé. Je tourne en multi-boutique 1.6.1.18, avec le même thème, seul changement l'image de fond. Sur les autres boutiques, tous fonctionne normalement et comme c'est le même thème je n'y crois pas trop. Je vais quand même comparer.

Y-a-t-il un module qui gère l'affichage des prix ?

D'autres idée ?

Share this post


Link to post
Share on other sites

Non pas de module, c'est natif.

J'ai plein d'autres idées, vraiment mais je ne suis pas sûr que je puisse toutes les partager ici.

Que dit la console? Que dit le debug? Quel age avait Rimbaud ?

 

Share this post


Link to post
Share on other sites

Pour le mode Debug => RAS,

Pour la console => tout est OK, je ne vois pas les 2 prix différents lorsque je développe tout.

Share this post


Link to post
Share on other sites

Je ne comprends pas " je ne vois pas les 2 prix différents lorsque je développe tout."

De quoi parles-tu?

Share this post


Link to post
Share on other sites

Quand je développe les balise de la div de l'attribut je m’attendais à vois les 2 prix quand je suis dans l'inspecteur.

 

Share this post


Link to post
Share on other sites

Tu mets plus de  2h à répondre et tu trouves que ça ne va pas assez vite quand tu dois attendre 1h?

Tu nous prends pour une station service?

 

Le prix de la déclinaisons est injecté en js (product.js) lors du findCombination. Il n'est pas présent avant de cliquer

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites

Non je n'ai rien dit de tel, c'est juste que j'explore toutes les pistes d’où je demande si il y a d'autres idées.

Share this post


Link to post
Share on other sites

Bonjour à Tous,

Je reviens sur mon problème d'hier, je n'ai toujours pas trouver de solution.

Voici ce que j'ai fait depuis hier, j'ai comparé tous les fichiers *.tpl et *.js de mon thème thème avec ceux du thème par défaut. Ils sont tous identiques.

J'utilise un module pour la réservation de produits, "MyOwnReservation" que j'ai contacté car les prix change bien dans son module mais pas sur l'affichage de la fiche produit lorsque je choisi une des deux déclinaison que j'ai créé.

Je suis en multi-boutique (x3) V. 1.6.1.18, je n'ai pas de soucis sur 2 d'entre elles mais juste sur une seule, elles utilisent le même thème "DDLX EVOLUTION" avec une image d'arrière plan différent.

Je suis entrain de désactiver différents modules activé dans cette boutique en question, si vous avez une idée je suis preneur.

Merci.

Share this post


Link to post
Share on other sites

Les 3 boutiques utilisent aussi "MyOwnReservation" ?

Et pour gagner du temps, il serait bien que tu fournisse des urls

Share this post


Link to post
Share on other sites

Je trouve étrange ces lignes dans product.js

$(document).on('change', '.attribute_select', function(e){
	e.preventDefault();
	findCombination();
	getProductAttribute();
});

$(document).on('click', '.attribute_radio', function(e){
	e.preventDefault();
	getProductAttribute();
});

Il me semble qu'il manque le findCombination(); lorsque l'attribut est de type radio.

Est-ce le seul produit ayant un attribut de type radio dans tes shop?

 

Edit: s/select/radio/g

 

Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites

OK, mais je suis en mode DEBUG mais je n'ai aucun message, ce qui m'embête d'ailleurs. J'avoue ne pas trouver d’où cela peut provenir.

/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true); 
}

 

Share this post


Link to post
Share on other sites

Je viens de rajouter ce petit bout de code et j'ai changer l'attribut radio pour le select mais toujours pareil, je viens de créer une déclinaison sur un produit de la boutique vente avec le bouton radio sans "findCombination();" et cela fonctionne. Je comprends pas.

https://vente.csf-sonorisation.fr/les-gaffas/13670-gaffer-standard-advance-at171-50-mm-x-50-mm-blanc.html#/8-test-non

findCombination();

 

 

Share this post


Link to post
Share on other sites

Quel sont exactement les réglages des prix

Produit brut, décli, prix spécifique

Share this post


Link to post
Share on other sites

Prix de vente fixe, pas de prix spécifique et juste la déclinaison régler avec augmentation de 30 €. Rien d'autre, simple et efficace enfin normalement.🙄

Je viens de constater que les produits en stock ne s'affiche pas sur l'une des déclinaisons, y-a-t-il un rapport ?

Edited by doc.mycro (see edit history)

Share this post


Link to post
Share on other sites

très bizarre, le tableau javascript combinations ne contient que des variations de prix à 0.

 

Share this post


Link to post
Share on other sites

un vieux produit migré d'une ancienne version? Si tu rechange là le prix de base puis de nouveau 0 puis le prix décli  est-ce que ça change quelque chose

Share this post


Link to post
Share on other sites

Non je viens de le faire, cela ne change rien.

Non pas de produit d'une ancienne version, j'ai créé directement en 1.6 car j'avais lu pas mal de chose sur la 1.7 qui était négatif. D'ailleurs j'ai toujours le message pour la mise à jour en 1.6.1.23 que je n'ai toujours pas mis.

Share this post


Link to post
Share on other sites

là, a moins d'aller dans les entrailles de la bête je n'ai pas d'idées

 

Share this post


Link to post
Share on other sites

C'est ce que j’essaie de faire mais j'avoue que mes compétences vont être limitée.

Merci pour ton aide et ton temps.

Share this post


Link to post
Share on other sites

Suite à un mail du développeur du module de réservation, il m'indique que j'ai " dans le JS de PS  il y a une ligne avec combination.specific_price à false qui veut dire qu'il n'a pas à mettre à jour le tarif" mais je le vois pas dans le JS.

Quelqu'un pourrais m'aider et me dire dans quel fichier il se trouve car je ne le vois pas dans product.js.

Share this post


Link to post
Share on other sites

Bonjour à Tous,

Je reviens vers vous pour savoir si quelqu'un peu m'indiquer ou se trouve le "false de combination.specific_price de le JS de Prestashop comme évoqué dans mon message précédent.

 

Merci

Share this post


Link to post
Share on other sites

que spécific price soit false ou 0 c'est normal si tu n'as pas de remise spéciale sur le produit

c'est combination price qui est à 0 et si ce que tu m'as dit est juste ça devrait être 30 dans le cas oui, Or actuellement c'est 0

 

Share this post


Link to post
Share on other sites

Non pas de remise spécial sur le produit à part la déclinaison avec 2 valeurs avec pas de changement de prix et augmentation de 30.

Share this post


Link to post
Share on other sites

Pour ceux et celles qui auraient ce problème, après de longues recherches non concluantes sur les divers forums, j'ai réglé contourné celui-ci en ajoutant le code jQuery ci-joint au custom.js de mon thème.

À défaut vous pouvez également le mettre entre des balises <script></script> sur votre fichier product.tpl si vous l'adaptez. 

Il permet de refresh la page lorsqu'on change de valeur, ce qui met le prix à jour.

$(document).ready(function(){	
	var variationValue = jQuery("#product .product-variants-item select");
	variationValue.change(function(){
		setTimeout(function(){
			window.location.reload();
		},800);
	});
});

C'est pour l'instant la meilleure solution que j'ai trouvé sans toucher à tout et n'importe quoi.

Vérifiez bien que le chemin variationValue est correct et qu'il pointe bien vers le <select> qui contient les variations.

Si la page refresh trop vite et n'a pas le temps de prendre la bonne url en compte, augmentez le timeout.

Dites moi si ça fonctionne pour vous.

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

×
×
  • Create New...

Important Information

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