Wenn man Staffelpreise hat, und ein Händler eingelogged ist, wird der Preis falsch formatiert, mit durchgestrichenem alten und dem neuen Preis, was natürlich falsch ist... Ursache liegt in xtPrice, Funktion "xtcGetPrice". In diesem Codestück wird auf Staffelpreis geprüft und da einer vorhanden ist, "xtcFormatSpecialGraduated" aufgerufen. PHP: if ($sPrice = $this->xtcGetGraduatedPrice($pID, $qty)){ return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); } Im einem konkreten Fall hat der Artikelpreis ("$pPrice") z.B. den Wert 6.64, der Händlerstaffelpreis ("$sPrice") den Wert 5.9664. In "xtcFormatSpecialGraduated" gibt es nun die Codesequenz PHP: if ($sPrice < $pPrice) { $price = ''; if(gm_get_conf('SHOW_OLD_GROUP_PRICE') == '1') { $price .= '<span class="productOldPrice">' . $this->v_coo_language_text_manager->get_text('old_group_price') . $this->xtcFormat($pPrice, $format) . '</span><br />'; } $price .= $this->v_coo_language_text_manager->get_text('new_group_price') . $this->checkAttributes($pID) . $this->xtcFormat($sPrice, $format); } else { $price = $this->checkAttributes($pID).$this->xtcFormat($sPrice, $format); } Da der $sPrice < $pPrice ist (siehe oben) wird dann der Preis als rabattierter Preis formatiert, was natürlich falsch ist.....
Lösung: PHP: if ($sPrice = $this->xtcGetGraduatedPrice($pID, $qty)){ return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); } ändern zu PHP: if ($sPrice = $this->xtcGetGraduatedPrice($pID, $qty)){ $sPrice=$this->xtcAddTax($sPrice, $products_tax); return $this->xtcFormatSpecialGraduated($pID, $sPrice, $sPrice, $format, $vpeStatus, $pID); } Da vorher mit PHP: if ($sPrice = $this->xtcCheckSpecial($pID)) return $this->xtcFormatSpecial($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus); schon sicher gestellt wurde, dass kein Sonderpreis vorliegt, kann an dieser Stelle nämlich kein Sonderpreis mehr vorliegen! Durch die Verwendung desselben Preises als Artikel- und Staffelpreis verhindere ich so die Formatierung als Sonderpreis.
So Avenger... und wenn du deine Lösung jetzt nochmal per Git einreichst (ja, ich spiel die Karte immer mal wieder gern ), dann gibts gute Chancen das in einem der nächsten Servicepacks zu sehen.
Das hab ich nicht gesagt. Richtiger wäre: Sonst machst du es uns unnötig schwer, weil wir aus dem Forum und aus Mails immer alles herauspuzzlen müssen und das einfach viel schwerer zu tracken ist. Ich weiss, dass du ein Freund konstanter Strukturen bist, aber wenns doch besser geht und der Aufwand für dich gar nicht mal hoch ist wie ich schätze versuche ich einfach mal dich ein bisschen zu erziehen
Ich habe mich jetzt einige Zeit durch das Thema gekämpft, da einer unserer Kunden massiv Probleme damit hat. Fazit: das Problem geht weit über eine falsche Formatierung hinaus. Staffelpreise und Sonderangebote vertragen sich gar nicht. Vor allem (aber nicht nur) dann nicht, wenn das Ganze auch noch auf einen eingeloggten Händler trifft..... Dann werden total falsche Preise berechnet. Ich habe das jetzt bereinigt, so dass die definierten Staffelpreise auch um den Prozentsatz "Sonderangebotspreis/Standardpreis" reduziert und richtig berechnet werden. Das erfordert das Uberladen einiger Methoden der xtPrice-Klasse, um die Preisreduzierungen bei Sonderangeboten und Staffelpreisen durchgängig abzubilden und richtig zu formatieren... Ebenso bei dem "GMAttributesCalculator.php", damit bei einem Sonderangebot auch der richtige (Staffel-)Preis bei der Preisberechnung verwendet wird, (Derzeit wir dabei der normale Preis verwendet.) Und auch eine Anpassung an "attributes_calculator.php", damit bei einer Mengenänderung in der Detailseite der richtige Preis angezeigt wird...