Projekt

Allgemein

Profil

Aktionen

GX-Bug #49759

geschlossen

Die Ermittlung von Preisen auf checkout_payment ist unter Umständen falsch

Von Marco Bruchmann vor mehr als 7 Jahren hinzugefügt. Vor fast 3 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Daniel Würdemann
Kategorie:
Checkout
Zielversion:
% erledigt:

100%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
3.2.2.0, 3.3.2.0
Release Notes Langtext:

DIe Ermittlung von Preisen im Checkout wurde für Nicht-EU-Kunden korrigiert

Tags:

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.


Aktionen

Auch abrufbar als: Atom PDF