GX-Bug #49759
geschlossenDie Ermittlung von Preisen auf checkout_payment ist unter Umständen falsch
100%
DIe Ermittlung von Preisen im Checkout wurde für Nicht-EU-Kunden korrigiert
Beschreibung
Auf checkout_payment kann es unter gewissen, relativ exotischen Bedingungen dazu kommen, dass Preise falsch ermittelt werden. Ein Beispiel:
Kunde aus der Schweiz (Standardadresse in Nicht-EU-Land) bestellt in einem deutschen Shop (EU-Land) mit Lieferadresse in Deutschland. Das ist eigentlich eine gewöhnliche Brutto-Bestellung und wird vom Shopsystem auch korrekt als solche erfasst. Die Artikelpreise werden jedoch fälschlicherweise netto z.B. an PayPal übermittelt.
Problem: $_SESSION['billto']
(und unter Umständen auch $_SESSION['sendto']
) wird erst vom CheckoutPaymentContentControl gesetzt, und somit nach der Instanziierung der xtcPrice in application_top.php. Der Konstruktor von xtcPrice ermittelt jedoch die verwendeten Steuersätze anders, wenn $_SESSION['sendto']
und $_SESSION['billto']
gesetzt sind. Damit verwendet die globale xtcPrice-Instanz ($GLOBALS['xtPrice']
) im weiteren Verlauf von checkout_payment falsche Steuersätze. Das betrifft z.B. die Verarbeitung der Zahlungs- und Zusammenfassungsmodule und vor allem die Preisermittlung von $_SESSION['cart']->get_products()
.
MR mit möglichem Fix:
https://sources.gambio-server.net/gambio/gxdev/merge_requests/442
Bei dem Fix ist zu beachten, dass das Problem vermutlich schon sehr lange existiert (mindestens seit GX1 v1.0.11, wahrscheinlich länger), es könnte daher Seiteneffekte des Fixes geben.