Staffelpreise über Varianten hinweg, SQL-Problem - Ab dem zweiten Artikel im Warenkorb: Preis 0 Euro

Hallo zusammen,

in einem Shop (V4.2.3) gibt es aktuell ein Problem mit Artikeln, die in Varianten mit Staffelpreise versehen sind.

Der Shop ist aufgeteilt in Brutto und Netto Shop, es gibt also zwei Kundengruppen und das Problem tritt nur im Netto-Shop auf.

Um die Staffelpreise über die Varianten hinweg zu berechnen, ist ein kleines SQL-Skript als Pluigin hinterlegt, welches die Abfrage und das Update der Preise machen soll.

Wenn ein Artikel mit der Stückzahl 25 (Beispiel: Artikel in Farbe Blau, Größe L) gewählt wird, wird der Staffelpreis für diese Variante korrekt im Warenkorb angezeigt.

Wählt der Kunde dann noch den selben Artikel in der Farbe Weiß in Gröe L aus, so wird im Warenkorb der Preis bei beiden Artikeln direkt auf 0 Euro gesetzt, siehe Screenshots.

1 Artikel:

2 Artikel:

Da es im Brutto-Shop funktioniert, denke ich, dass das Skript generell nicht so falsch rechnet.

Die betroffenen Stellen im SQL-Skript müssen also in einem Zusammenhang mit Brutto/Netto sein, diese wären dann:

$brutto = (float) 0;
	        // Check if tax-free
	        if (($this->Application()->System()->sCONFIG['sARTICLESOUTPUTNETTO']
	        		&& !$this->Application()->System()->sUSERGROUPDATA["tax"])
	        		|| (!$this->Application()->System()->sUSERGROUPDATA["tax"]
	        		&& $this->Application()->System()->sUSERGROUPDATA["id"])) {
	        			
	            // Brutto is equal to net - price
	            $brutto = $StepPrice['price'];
				
	        }else {
	            $brutto = $StepPrice['price'] / 100 * (100 + $StepPrice['tax']);
	        }
			
			$sql = "
	            UPDATE s_order_basket SET quantity = ".Shopware()->DB()->quote($args->getQuantity()).",
            							  price = ".Shopware()->DB()->quote($brutto).",
										  netprice = ".Shopware()->DB()->quote($StepPrice['price']).",
										  currencyFactor = ".Shopware()->DB()->quote($args->get('currencyFactor')).",
            							  tax_rate = ".Shopware()->DB()->quote($StepPrice['tax'])."
            						  WHERE id = ".Shopware()->DB()->quote($args->getId())."
        						  		AND sessionID = ".Shopware()->DB()->quote($this->Application()->System()->sSESSION_ID)."
        						  		AND modus = 0
	            ";
		}

Ich habe bisher leider noch nicht den Geistesblitz gehabt um zu erkennen wo hier der Haken ist…

Kann mir einer von Euch Licht ins Dunkle bringen?

Danke schon mal im voraus und viele Grüße,

Sven