Jump to content
jeje13

Bug affiche réductions Default-bootstrap 1.6.1.17

Recommended Posts

Bonjour,

 

C'est ma première vrai install en Prestashop.

 

Je monte une boutique sur Prestashop 1.6.1.17 avec le thème standard.

J'utilise des règles de prix par PRODUIT.

 

Par exemple prix normal 30€

Mais à partir de 1, 10€

A partir de 3, -20€.

 

Dans la fiche du produit, pour une quantité 1 ou 2, c'est ok.

Dès qu'on arrive à 3, au lieu du prix c'est la réduction qui est affiché et le prix ne bouge plus.

Voilà en image:

 

post-1440967-0-37853800-1505523954_thumb.png
post-1440967-0-12090200-1505523987_thumb.png

 

Pour autant si on ajoute au panier, les calculs sont bon, si on modifie au panier, tout est bien prix en compte.

 

J'ai regardé le code et effectivement il y a un gros bug.

Dans product.js l289-302:

$(document).on('change', '#quantity_wanted', function(e){
    e.preventDefault();
    var specificPrice = findSpecificPrice();

    if(false !== specificPrice){
        $('#our_price_display').text(specificPrice);
    }else{
        if (typeof productHasAttributes != 'undefined' && productHasAttributes){
            updateDisplay();
        }else{
            $('#our_price_display').text(formatCurrency(parseFloat($('#our_price_display').attr('content')), currencyFormat, currencySign, currencyBlank));
        }
    }
});

findSpecifcPrice() (ligne 219) retourne la valeur de la réduction. Or c'est cette valeur qui est affichée dans our_price_display; Mais c'est le prix de vente!

De plus, le champ correspondant à la réduction (reduction_amount-display) n'est pas updaté.

 

J'ai modifié le code pour que ça fonctionne. C'est ok quand on incrémente mais en revenant sur la première promo, comme elle ne fait pas parti du  tableau "remise sur quantité", c'est alors dans le else (vert) que l'on passe.

Là, Prestashop arrive à récupérer la valeur originale du prix car elle est stockée dans l'attribut "content", mais la ristourne originale n'ayant pas de "content" et n'étant pas stockée, elle reste à sa valeur précédente!!

 

Je ne comprends pas que ce bug soit encore présent après tant de version 1.6... ?

Quelqu'un a forcément dû l'avoir?!

 

Donc si cette aimable personne avait la solution, grand merci.

A moins qu'il ne faille pas utiliser le thème par défaut et forcément en acheter un!!

 

Cordialement

Jérôme

 

post-1440967-0-37853800-1505523954_thumb.png

post-1440967-0-12090200-1505523987_thumb.png

Share this post


Link to post
Share on other sites

I propose this correction in /default-boostrap/js/product.js
(my version is 1.6.1.18)

lines 237-238 to replace :

			newPrice = $(this).attr('data-real-discount-value');
			return false;

by new lines :

            newPrice = $(this).attr('data-discount');
            var currentPrice = parseFloat($('#our_price_display').attr('content'));
            var finalPrice = currentPrice-newPrice;
            newPrice = formatCurrency(parseFloat(finalPrice), currencyFormat, currencySign, currencyBlank);
            return false;

 

For me, it's ok now for quantity-discount

Edited by pppplus (see edit history)

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