Jump to content

Mengenrabatt Preisanzeige falsch


HappyHartmann

Recommended Posts

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

 

 

 

 

post-1225410-0-17138600-1463130374_thumb.jpg

post-1225410-0-29125000-1463130375_thumb.jpg

post-1225410-0-08288300-1463130377_thumb.jpg

post-1225410-0-83272000-1463130378_thumb.jpg

post-1225410-0-07825100-1463130380_thumb.jpg

Link to comment
Share on other sites

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

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

  • 2 weeks later...

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üße

FarmFritz

Link to comment
Share on other sites

  • 2 months later...

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 by RILUSO (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...

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

  • 3 months later...

Hallo an alle,

 

wir sind mittlerweile in der Version 1.6.1.10 angekommen und das Problem wurde immer noch nicht behoben... :o

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

  • 7 months later...

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

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