HappyHartmann Posted May 13, 2016 Share Posted May 13, 2016 Hallo Prestashop User, ich habe folgendes Problem: Wenn ich einen Artikel erstelle mit mehreren Varianten und Mengenrabatte für alle Varianten erstelle, wird der Preis falsch angezeigt. Im Warenkorb wiederum rechnet Prestashop richtig. Bei der Artikelanzeige rechnet er immer nur mit dem Artikelpreis und berücksichtigt nicht den Variantenaufpreis. Artikelpreis = 158,00€ Variante 190cm = keine Preisveränderung Variante 200cm = Aufpreis 2.40€ Wäre super froh wenn jemand eine Lösung für dieses Problem hat. Prestashop Version 1.6.1.5 Standard Template Viele Grüße Andreas Happy-Hartmann GmbH Link to comment Share on other sites More sharing options...
sroesler Posted May 14, 2016 Share Posted May 14, 2016 Wir haben das Problem erst einmal "schmutzig" gelöst.Wenn du in der Datei themes/default-bootstrap/product.tpl nach der Zeile 426 folgende Zeile einfügst:<td style="display:none;"></td><td style="display:none;"></td>also wird aus: {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'} {$realDiscountPrice=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval} {else} {$realDiscountPrice=$productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval} {/if} <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-real-discount-value="{convertPrice price = $realDiscountPrice}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}"> <td> {$quantity_discount.quantity|intval} </td> <td> {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'} {if $display_discount_price} {if $quantity_discount.reduction_tax == 0 && !$quantity_discount.price}das: {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'} {$realDiscountPrice=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval} {else} {$realDiscountPrice=$productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval} {/if} <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-real-discount-value="{convertPrice price = $realDiscountPrice}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}"> <td> {$quantity_discount.quantity|intval} </td> <td style="display:none;"></td><td style="display:none;"></td> <td> {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'} {if $display_discount_price} {if $quantity_discount.reduction_tax == 0 && !$quantity_discount.price}Ich hoffe das schafft Abhilfe. Viele Grüße aus Magdeburg, Link to comment Share on other sites More sharing options...
HappyHartmann Posted May 17, 2016 Author Share Posted May 17, 2016 Leider hat sich mein Problem nicht gelöst. Ich habe wie oben angegeben die Zeile eingefügt. Hat sich aber nix verändert. Was bewirkt diese Zeile? Viele Grüße aus Wünnenberg-Haaren Andreas Happy-Hartmann GmbH Link to comment Share on other sites More sharing options...
sroesler Posted May 17, 2016 Share Posted May 17, 2016 Es gibt ein Javascript, was den Preis bei dem Mengenrabatten neu berechnet. Die zwei Zeilen bewirken, dass das javascript die berechnungen in zwei Spalten vornimmt, die versteckt werden. Hast du nach dem einfügen der zeilen einmal den Cache in PrestaShop geleert? Link to comment Share on other sites More sharing options...
HappyHartmann Posted May 17, 2016 Author Share Posted May 17, 2016 Ja hab ich gemacht. Im Anhang einmal der Quellcode wo ich die Zeile reinkopieren sollte. Den Cache lösche ich doch bei "erweiterte Einstellung, Leistung" oder? Link to comment Share on other sites More sharing options...
sroesler Posted May 21, 2016 Share Posted May 21, 2016 Hatte Dir eine Nachricht geschickt, mit der Bitte, mir mal einen Link zu senden. Oder ist das Problem schön gelöst? Link to comment Share on other sites More sharing options...
FarmFritz Posted May 31, 2016 Share Posted May 31, 2016 Hallo!Bei uns besteht exakt das gleiche Problem. Wir haben den Lösungsweg wie oben beschrieben ausprobiert, leider führt es auch mit Reset des Caches zu keiner Lösung. Gibt es noch andere Lösungsansätze/Möglichkeiten? Viele GrüßeFarmFritz Link to comment Share on other sites More sharing options...
michaa Posted May 31, 2016 Share Posted May 31, 2016 Das ist für mich bisher das größte Problem, neben dem das man den Mengenrabatt nicht bearbeiten kann. Lasst mich wissen, wenn die schmutzige Lösung funktioniert. Danke! Link to comment Share on other sites More sharing options...
HappyHartmann Posted August 26, 2016 Author Share Posted August 26, 2016 Hallo, hat keiner eine Lösung für dieses Problem?? Es ist nicht grade förderlich wenn der Kunde erst im Warenkorb die richtige Summe angezeigt bekommt. Prestashop Version 1.6.1.6 Template: default bootsrap 1.0 Viele Grüße Andreas Happy-Hartmann GmbH Link to comment Share on other sites More sharing options...
RILUSO Posted August 28, 2016 Share Posted August 28, 2016 (edited) Hallo zusammen Arbeiten mit Version 1.6.1.6 und haben das Problem auch. - Bei Mengenrabatten rechnet Prestashop die Rabatte auf der Vorderen Maske manchmal nicht, manchmal schon. - Beim ersten Klick auf das Pluszeichen um die Menge zu erhöhen, wechselt die Anzeige der Währung von zB. CHF 50.00 auf 50.00 CHF - Es wird lediglich der Rabatt der ersten Abstufung angezeigt. Wenn die Menge soweit erhöht wird, dass es den zweiten Rabatt zieht, rechnet es zwar richtig (manchmal) aber der Rabatt der ersten Rabattstufe bleibt bestehen. Dies ist in sich falsch und schaut gar nicht professionell aus. Bitte um Hilfestellung. Besten Dank Jérôme TEQUILA INICIO Edited August 28, 2016 by RILUSO (see edit history) Link to comment Share on other sites More sharing options...
sroesler Posted September 13, 2016 Share Posted September 13, 2016 erst einmal eine Lösung, wenn ihr 1.6.1.7 habt und eure Kombinationen nicht einen unterschiedlichen Preis haben: Datei: themes/default-bootstrap/js/product.js Zeile 944-946 auskommentieren: // if (displayDiscountPrice != 0) // $(this).children('td').eq(1).text( formatCurrency(discountedPrice * currencyRate, currencyFormat, currencySign, currencyBlank) ); // $(this).children('td').eq(2).text(upToTxt + ' ' + formatCurrency(discountUpTo * currencyRate, currencyFormat, currencySign, currencyBlank)); Bei uns funktioniert es nun, ein bugfix für die unterschiedlichen Preise innerhalb eines Produktes müsste man dann nochmal genauer betrachten. Bitte auch um Rückmeldung, wer eine bessere Lösung hat ... Link to comment Share on other sites More sharing options...
HappyHartmann Posted January 4, 2017 Author Share Posted January 4, 2017 Hallo an alle, wir sind mittlerweile in der Version 1.6.1.10 angekommen und das Problem wurde immer noch nicht behoben... Gibt es eine Möglichkeit dieses Problem zu beheben?? Prestashop Version 1.6.1.5 Standard Template Viele Grüße Andreas Happy-Hartmann GmbH Link to comment Share on other sites More sharing options...
HappyHartmann Posted August 25, 2017 Author Share Posted August 25, 2017 Hallo an alle die dieses Problem haben, hier die Lösung die bei uns funktioniert hat: Datei "product.js" im Ordner Themes / Dein Theme / js / öffnen. Folgenden Code unten bei function updateDiscountTable(newPrice) hinzufügen: $(this).attr('data-real-discount-value',formatCurrency(discountedPrice * currencyRate, currencyFormat, currencySign, currencyBlank)); Aussehen muss es dann wie folgt: function updateDiscountTable(newPrice){$('#quantityDiscount tbody tr').each(function(){var type = $(this).data("discount-type");var discount = $(this).data("discount");var quantity = $(this).data("discount-quantity"); if (type == 'percentage') { var discountedPrice = newPrice * (1 - discount/100); var discountUpTo = newPrice * (discount/100) * quantity; } else if (type == 'amount') { var discountedPrice = newPrice - discount; var discountUpTo = discount * quantity; } if (displayDiscountPrice != 0)$(this).children('td').eq(1).text( formatCurrency(discountedPrice * currencyRate, currencyFormat, currencySign, currencyBlank) );$(this).children('td').eq(2).text(upToTxt + ' ' + formatCurrency(discountUpTo * currencyRate, currencyFormat, currencySign, currencyBlank));$(this).attr('data-real-discount-value',formatCurrency(discountedPrice * currencyRate, currencyFormat, currencySign, currencyBlank));});} Grüße Andreas Dück Happy-Hartmann GmbH Prestashop Version 1.6.1.11 Standard Template Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now