Jump to content

Les déclinaisons ne sont toujours pas prises en compte quand prix dégressif...


Fabrice

Recommended Posts

Je sais que ce problème a déjà été évoqué.
mais le côté anti-commercial de la chose me pousse à poster à nouveau :

soit un produit avec des prix dégressifs.
ex : à partir de 3 ex : -10 euros

le produit existe en 2 couleurs rouge et bleu

je commande 1 bleu et 2 rouges : le prix dégressif n'est pas appliqué.

quelqu'un a-t-il résolu ce problème ?

merci de partager le bout de code... :-)

Link to comment
Share on other sites

tu sais Zendik, l'interface du BT est tellement mal foutue (pas de recherche, ID à chaque fois avec la même config etc...) que j'y met plus les pieds.
mais ce problème a été reporté et de plus a fait l'objet de posts dans le forum...

personne d'autre que moi n'est gêné par le fait que d'annoncer un prix quantitatif devient "mensonger" lorsque le client choisi 2 coloris par ex ?

Link to comment
Share on other sites

Oui, je sais , mais c'est là qu'il faut poster pour signaler les bugs.

Il y a un champ recherche, qui ne prend pas en compte le pseudo :blank: , mais bon, il existe et il faudrait au moins connaître le statut actuel de ce bug, s'il est en attente, alors il y a de l'espoir. S'il est marqué comme annulé ou résolu, alors il faut le reposter.

Pénible... mais indispensable. Et j'espère autant que toi qu'il évoluera.

Link to comment
Share on other sites

j'ai pas retrouvé dans le bug tracker. vraiment une daube ce truc.

je veux publier un nouveau bug ! et hop !! mrache pas. j'ai juste l'alerte en rouge qui me dit "écris en anglais etc..." mais plus rien d'autre.
p'taing... on n'en sort pas...

Link to comment
Share on other sites

  • 1 year later...

Bonjour,
j'ai trouvé la solution sur le forum us je crois et je l'ai tester pas de bug à signaler ! :-)
Dans la classe Product.php remplacer:

if (intval($id_cart))
       // Quantity discount
       {     
           $totalQuantity = intval(Db::getInstance()->getValue('
               SELECT SUM(`quantity`)
               FROM `'._DB_PREFIX_.'cart_product`
               WHERE `id_product` = '.intval($id_product).' AND `id_cart` = '.intval($id_cart))
           ) + intval($quantity);
       }
       if ($quantity > 1 AND ($qtyD = QuantityDiscount::getDiscountFromQuantity($id_product, $quantity)))
       {                   
           $discount_qty_price = QuantityDiscount::getValue($price, $qtyD->id_discount_type, $qtyD->value, $usetax, floatval($result['rate']), $currency);
           $price -= $discount_qty_price;
       }



Par

if (intval($id_cart))
       // Quantity discount
       {
           $totalQuantity = intval(Db::getInstance()->getValue('
               SELECT SUM(`quantity`)
               FROM `'._DB_PREFIX_.'cart_product`
               WHERE `id_product` = '.intval($id_product).' AND `id_cart` = '.intval($id_cart))
           ) /*+ intval($quantity)*/;

       }
       if ($totalQuantity > 1 AND ($qtyD = QuantityDiscount::getDiscountFromQuantity($id_product, $totalQuantity)))
       {
           if (self::getTaxCalculationMethod($id_customer) == PS_TAX_EXC)
               $discount_qty_price = Tools::ps_round(QuantityDiscount::getValue($price, $qtyD->id_discount_type, $qtyD->value, $usetax, floatval($result['rate']), $currency), 2);
           else
               $discount_qty_price = QuantityDiscount::getValue($price, $qtyD->id_discount_type, $qtyD->value, $usetax, floatval($result['rate']), $currency);
           $price -= $discount_qty_price;
       } 



Et le tour est joué! Le panier en ajax n'est pas tenu immédiatement à jour mais des le prochain refresh de la page et donc du panier c'est bon.

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