Hallo,
ich bin dabei einen kombinierten B2C / B2B -Shop einzurichten. Probleme bereitet mir noch die Einrichtung eines Mindestbestellwertes. Ich hatte mir eine Quick & Dirty Lösung einfallen lassen, die auch funktioniert hat, jetzt nach zwischenzeitlich zwei Shopware-Updates aber nicht mehr. Basis der Lösung ist eine Rule “Cart >= 6.00” mit der Bedingung “Warenkorbwert >= 6.00”
Bei der Ursachensuche bin ich auf ein wirklich seltsames Phänomen gestoßen. In der Klasse CartAmountRule->match (namespace Shopware\Core\Checkout\Cart\Rule) landet der Vergleichswert 6.00 in der Variable $this->amount.
Damit abgeglichen wird der Warenkorbwert, der so gebildet wird: $cartAmount = $scope->getCart()->getPrice()->getTotalPrice(); Und genau bei $cartAmount hakt es:
Es ist vollkommen egal, ob der Kunde nicht eingeloggt (1) ist, ob er als Händler(2) oder als Endverbraucher(3) eingeloggt ist: immer wird für $cartAmount der Bruttopreis für Händler ausgegeben.
Nach meinem Verständnis dürfte das nicht sein. Im Warenkorb selbst werden die Preise, also die für Endverbraucher bei Variante 1 & 3 und die für Händler bei Variante 2, aber richtig angezeigt.
Ich weiß jetzt nicht, ob ich irgendetwas geändert habe, dass dieses Phänomen auftritt oder ob es durch die Updates gekommen ist. Dann wäre es m.E. ein Bug.
Kann das jemand nachvollziehen?