Falsche Preisformatierung in xtPrice

Thema wurde von Avenger, 30. Oktober 2014 erstellt.

  1. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    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.....
     
  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    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.
     
  3. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    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.
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Sonst bleibt das ungefixed????
     
  5. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    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 ;)
     
  6. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Träum' weiter Baby....
     
  7. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.167
    Danke erhalten:
    6.199
    Danke vergeben:
    1.103
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Ach komm Avenger, auch alte Hunde können neue Tricks lernen :D
     
  8. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    Alt hat nur Dennis laut gesagt... ;)
     
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    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...
     
  10. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Das ist ein grässliches Übel! :mad:
    Läßt sich diese Anpassung separat einbauen?
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein, da wird alles gebraucht...