GX-Bug #49759
Von Marco Bruchmann vor fast 8 Jahren aktualisiert
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']` $_SESSION['billto'] (und unter Umständen auch `$_SESSION['sendto']`) $_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']` $_SESSION['sendto'] *und* `$_SESSION['billto']` $_SESSION['billto'] gesetzt sind. Damit verwendet die globale xtcPrice-Instanz (`$GLOBALS['xtPrice']`) ($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()`. $_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.