Jump to content
Tom1967

Rundungsfehler PayPal beseitigen

Recommended Posts

Hallo,

scheinbar gibt es das Problem mit dem Rundungsfehler beim PayPal-Modul öfter.
Zumindest habe ich schon den einen oder anderen Beitrag dazu hier im Forum gesehen.
Irgendwie habe ich aber nicht die Lösung dafür gefunden :-(

Bei mir kommt bei jeder Bestellung mit PayPal-Zahlung eine Fehlermeldung:

1. ist der Status auf "Fehler bei der Bezahlung" und

2. Vorsicht xy,15 € bezahlt statt xy,14 € bezahlt

 

Dabei kommt es vor, dass es mal ein Cent zu viel aber auch ein Cent zu wenig ist.

Kann mir bitte jemand eine Lösung dafür geben?
Denn das geht ja garnicht!

 

VG
Tom

Edited by Tom1967 (see edit history)

Share this post


Link to post
Share on other sites

Die Lösung kann aktuell nur heißen: Ein fehlerbereinigtes oder komplett anderes Paypal-Modul. Denn dieses Modul rechnet überflüssigerweise selbst nochmal und rundet dabei an den falschen Stellen. Tut mir leid, aber eine bessere Auskunft gibt es z.Z. nicht.

Share this post


Link to post
Share on other sites

Wo bekomme ich denn ein fehlerbereinigtes?
Und bitte nicht das für 120,- Euro!

Share this post


Link to post
Share on other sites

...langsam kommen mir dann doch Zweifel ob das wirklich die richtige Entscheidung war zu Presta zu wechseln :-(

Share this post


Link to post
Share on other sites

Ich habe das Problem noch nicht gehabt, muß also wohl mit irgendeiner Einstellung oder der Shopversion zu tun haben.

Share this post


Link to post
Share on other sites

Bei uns ist das Problem auch aufgetaucht. Gibt es inzwischen eine richtige Lösung dafür? Ich meine es kann doch nicht sein, dass PayPal da einfach rundet wie die wollen, sondern es sollte sich nach dem Shop gerichtet werden.

Wir hatten den Rundungsfehler nämlich vorher im Shop, weshalb sich der Kunde beschwerte, dass der Shop nicht richtig rundet, was dadurch gelöst werden konnte, dass wir auf "Runden der Gesamtsumme" umgestellt haben! Dementsprechend ist es hier keine Lösung einfach wieder auf "Runden der einzelnen Artikel" umzustellen, denn das hat genau den gleichen Rundungsfehler verursacht wie ihn PayPal jetzt macht. Klar im Endeffekt liegt das Problem in den krummen Preisen, die der Kunde vorgibt, aber die denkt der sich ja auch nicht einfach aus!

Prestshopversion ist die akutelle 1.7er und das PayPal Modul ist auch aktuell! Immerhin gibt PayPal im Modul den Hinweis auf den Rundungsfehler schon selbst, aber das kann es doch nicht sein, dass da nichts gemacht wird.
 

Share this post


Link to post
Share on other sites

Das Modul stammt übrigens nicht von Paypal selbst, sondern vom französischen Entwickler 202ecommerce, der für solche Bugs seit Jahren berüchtigt ist. Hier hat man wohl aus der Not, etwas ändern zu müssen, eine Tugend gemacht. Die User sollen lieber unsinnige Einstellungen wählen. Der Casus knacktus scheint die folgende Funktion in der paypal.php zu sein: 

public function validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method = 'Unknown', $message = null, $transaction = array(), $currency_special = null, $dont_touch_amount = false, $secure_key = false, Shop $shop = null)
    {
        if ($this->needConvert()) {
            $amount_paid_curr = Tools::ps_round(Tools::convertPrice($amount_paid, new Currency($currency_special), true), 2);
        } else {
            $amount_paid_curr = Tools::ps_round($amount_paid, 2);
        }
        $amount_paid = Tools::ps_round($amount_paid, 2);
        $cart = new Cart((int) $id_cart);
        $total_ps = (float)$cart->getOrderTotal(true, Cart::BOTH);
        if ($amount_paid_curr > $total_ps+0.10 || $amount_paid_curr < $total_ps-0.10) {
            $total_ps = $amount_paid_curr;
        }

Hier wird gerundet, was das Zeug hält, und die Logik scheint dabei irgendwie auf der Strecke zu bleiben. 

Share this post


Link to post
Share on other sites
On 6/7/2019 at 3:20 PM, Wuschel said:

Das Modul stammt übrigens nicht von Paypal selbst, sondern vom französischen Entwickler 202ecommerce, der für solche Bugs seit Jahren berüchtigt ist. Hier hat man wohl aus der Not, etwas ändern zu müssen, eine Tugend gemacht. Die User sollen lieber unsinnige Einstellungen wählen. Der Casus knacktus scheint die folgende Funktion in der paypal.php zu sein

Naja, aber es wird immerhin mit "offiziell" betitelt ... 

Ansonsten schon Mal danke für die schnelle Antwort. Wenn ich das aber richtig sehe, geht es hier um die Verifikation der Zahlung, durch Vergleich des Preises, den der Shop errechnet hat und den Preis, der an PayPal gezahlt wurde. Sprich die ganze Funktion wird erst aufgerufen, wenn der Kunde von PayPal zurückkommt. Zwar ist das der Grund für die Fehlermeldung an den Kunden, dennoch entsteht der eigentliche Fehler ja schon früher bei der Übergabe der Zahlungsinformationen an PayPal.

Dabei muss, so wie ich das bisher in Erfahrung bringen konnte, entweder ein richtig gerundeter Preis übergeben werden, wenn das Rundungsproblem durch das Modul entsteht und/oder PayPal angewiesen werden, dass keine Einzelstückangaben ausgewertet werden sollen, wenn das Problem auf der Seite von PayPal liegt. Sprich die ganze Bestellung müsste als ein Produkt verarbeitet werden, so dass nur die Gesamtsumme gerundet wird. Bisher konnte ich noch nicht rausfinden, wo das gemacht wird, dabei bin ich aber auch schon über die von dir angesprochene Funktion gestoßen, wobei da jedoch bei mir der korrekte Rundungsmodus von Prestashop verwendet wird.

Share this post


Link to post
Share on other sites
Posted (edited)

Gerundet wird in diesem Modul leider ausgiebig. Vielleicht wirst du ja eher in der Klasse PaypalCapture.php fündig oder in der ApiPaypalPlus.php. Ich bin mir aber nicht mal sicher, ob das eigentliche Problem nicht Rundungsfehler in Presstashop selbst sind, denn Paypal rundet nicht mathematisch, sondern kaufmännisch - schau mal hier:

 

Edited by Wuschel (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

×

Important Information

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