Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Staffelpreis - Nachkommastellen

    dongsen

    • Neu im Forum
    • Beiträge: 2
    Staffelpreis - Nachkommastellen
    am: 26. April 2016, 17:32:06
    Guten Tag,

    bevor ich dieses Thema erstellt habe, hab ich mich natürlich gründlich nach ähnlichen Problemstellungen hier im Forum umgesehen.VPE Grundpreis - Nachkommastellen kommt meinem Problem ziemlich nahe. Allerdings hat mir die Lösung von web28 dort leider auch nicht weitergeholfen, weil es dort um die VPE Preise geht - nicht um die Staffelpreisanzeige.
    Meine Kenntnisse von PHP und modified reichen auch leider nicht aus um das entsprechend für Staffelpreise anzugleichen. :-/

    Ich benutze die Shopversion 1.06 rev 4642 SP4 und möchte Staffelpreise mit 4 Nachkommastellen angeben.
    (also z.b. ab 10Stk. -> 0.0005 EUR, ab 100 Stk. -> 0.0004 usw.)

    Die Staffelpreise werden auch korrekt in der Tabelle personal_offers bzw. personal_offers_by_customers_satus_X für das jeweilige Produkt abgespeichert. Die Nachkommastellen für die Rundungen habe ich auch bereits im Backend auf 4 gesetzt. Ich gehe auch davon aus, dass nun korrekt gerundet und berechnet wird.

    Die Preisausgabe jedoch erfolgt leider nur mit 2 Nachkommastellen. (in der product_info, dem warenkorb usw.) In meinem Falle also leider 0,00 EUR.

    Habt ihr vielleicht schonmal das selbe Problem gehabt und eine schnelle und elegante Lösung dafür gefunden?

    Wo und welche Änderungen muss ich vornehmen um nur die Staffelpreise mit 4 Nachkommastellen anzeigen zu lassen ?

    Beste Grüße,
    Philipp

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34891.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Staffelpreis - Nachkommastellen
    Antwort #1 am: 26. April 2016, 18:17:39
    Was spricht eigentlich dagegen bei Stückpreisen von 0,0005 EUR in der Administration unter 'Land/Steuer -> Währungen' die Dezimalstellen generell auf 4 zu setzen?

    Gruss
    Hanspeter

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Staffelpreis - Nachkommastellen
    Antwort #2 am: 26. April 2016, 20:23:30
    Meine damals gepostete Änderung für die xtcFormat Methode ist 1.06 bereits enthalten.

    Die Staffelpreise werden in includes/classes/product.php function getGraduated() zusammengebastelt.

    106:
    Code: PHP  [Auswählen]
    $vpe = BASICPRICE_VPE_TEXT.$xtPrice->xtcFormat($vpe, true, $this->data['products_tax_class_id']).TXT_PER.xtc_get_vpe_name($this->data['products_vpe']);

    angepasst für 4 Nachkommastellen
    Code: PHP  [Auswählen]
    $vpe = BASICPRICE_VPE_TEXT.$xtPrice->xtcFormat($vpe, true, $this->data['products_tax_class_id'],false,0,0,4).TXT_PER.xtc_get_vpe_name($this->data['products_vpe']);

    106
    Code: PHP  [Auswählen]
    'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount, true, $this->data['products_tax_class_id']));

    angepasst für 4 Nachkommastellen
    Code: PHP  [Auswählen]
    'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount, true, $this->data['products_tax_class_id'],false,0,0,4));

    dongsen

    • Neu im Forum
    • Beiträge: 2
    Re: Staffelpreis - Nachkommastellen
    Antwort #3 am: 27. April 2016, 10:17:00
    Danke für die schnelle Hilfe!

    Ich habe die Änderungen vorgenommen, die Staffelpreise werden jetzt auf jeden Fall mit 4 Nachkommastellen angezeigt  :thumbs: Jetzt habe ich nurnoch folgende Probleme dazu:

    Die Preise scheinen wohl auf 2 Dezimalstellen gerundet zu werden. (unter Mein Shop -> Umrechnungsgenauigkeit bzw. Brutto/Netto Dezimalstellen habe ich bereits 4 eingestellt)

    Die Anzeige erfolgt also z.b. so:
    1-99 Stk. -> je 0,0000 EUR  (angegeben war aber 0,0004)
    100-999 Stk -> je 0,0000 EUR (angegeben war 0,0003)

    Die Hauptpreis-Anzeige, wo jetzt normalerweise (bei anderen Staffelpreis-Artikeln ohne 4 Nachkommastellen) nochmal der günstigste Staffelpreis und der Einzelpreis genannt werden, zeigt 0,00 EUR an.
    (gewünscht wäre aber "Ab 0,0003 , Stückpreis 0,0004)

    Kaufe ich jetzt z.b. 5000 Stück des Artikels werden mir im Warenkorb leider auch 0,00 EUR angezeigt, das ist natürlich nicht richtig so.

    Der Tipp oben von hpzeller (unter Land/Steuer -> Währungen die Dezimalstellen generall auf 4 zu setzen) löst auf jeden Fall dieses Problem, Preise werden dann korrekt angezeigt und auch im Warenkorb korrekt berechnet. Allerdings werden dann einfach alle Preise mit 4 Nachkommastellen angezeigt, das ist leider auch nicht optimal  :-|

    Ich möchte nur die Staffelpreise und dessen Hauptpreise richtig auf 4 Dezimalstellen runden und anzeigen lassen. Gibt es dazu eventuell noch eine Möglichkeit ohne die komplette Währung / Preisanzeige der anderen Preise umzustellen ?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Staffelpreis - Nachkommastellen
    Antwort #4 am: 28. April 2016, 07:28:32
    Das funktioniert nicht wie du das wünschst, denn wenn ein Produkt zur korrekten Preisdarstellung vier Nachkommastellen benötigt, so wie du das in deinen Beispielen zeigst, dann benötigt man vier Nachkommastellen auch für z.B. die Zwischensumme und die Summe.

    Deshalb mein Tipp, auch wenn er provokant klingt, verkaufe deine Erbsen nicht Stückweise, sondern verkaufe sie in Dosen und dein Problem ist gelöst

    Gruss
    Hanspeter

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Staffelpreis - Nachkommastellen
    Antwort #5 am: 28. April 2016, 12:34:46
    Was ginge ist 4Stellig nehmen und die Ausgabe im Template, wo gewünscht, nochmal auf 2 Stellen runden.

    Einfach überall im Template wo ein Preis ausgegeben wird:
    Code: XML  [Auswählen]
    {$PRODUCTS_PRICE}
    Das bauen:
    Code: XML  [Auswählen]
    {$PRODUCTS_PRICE|round:2}

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Staffelpreis - Nachkommastellen
    Antwort #6 am: 28. April 2016, 23:55:02
    Denke so etwas {$PRODUCTS_PRICE|round:2} funktioniert eher nicht, weil {$PRODUCTS_PRICE} einen formatierten, also mit Währungsangabe und eventuell weiteren nicht numerischen Zeichen behafteten Preis-String repräsentiert.

    Gruss
    Hanspeter

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Staffelpreis - Nachkommastellen
    Antwort #7 am: 29. April 2016, 11:25:04
    :datz:  :doh:  :oops:
    Stimmt.

    Was ginge ist eine benutzerdefinierte smarty Funktion.

    per regex oder explode alle Stellen im Preis finden, die zwischen Komma und Leerzeichen stehen, diese auf 2 stellen verkürzen und den String wieder zusammensetzen.

    Fakrae

    • Viel Schreiber
    • Beiträge: 997
    Re: Staffelpreis - Nachkommastellen
    Antwort #8 am: 30. April 2016, 09:20:38
    Ich hatte mich mit dem Problem auch schon beschäftigt - und es dann erstmal zurückgestellt bis ich mit der 2.0 die nächste große Umbauerei anfange. Der Grund dafür liegt in der Berechnung der Staffelpreise:

    Die Berechnung findet nach folgendem Muster statt:
    Artikel hat Preis 0,0004€ pro Stück, vielleicht bei 1000 Stück.
    Wenn es jetzt um die Preisanzeige geht (Warenkorb, Bestellung etc)
    1) Es wird geprüft welcher Preis gültig ist (-> 1000 Stück = 0,0004€/Stück)
    2) Der Stückpreis wird genommen, auf die Nachkommastellen des Shops gerundet (2 Nachkommastellen) und aus der xtc_price (glaube ich) zurückgegeben an bspw den Warenkorb
    3) Stückpreis wird im Warenkorb, der Bestellung etc. genommen und mit der Artikelmenge multipliziert.

    Es gibt nun zwei Wege aus dem Dilemma:
    1) Der Shop wird generell auf 4 Nachkommastellen gestellt und im Template (und bei endgültigen Anlegen der Bestellung, vielleicht in der checkout_process.php oder so) auf 2 Kommastellen gerundet.
    Das hat den Vorteil, dass nur Änderungen im Template nötig sind, diese aber wiederrum nicht so einfach sind (habt ihr ja in den letzten Beiträgen gesehen)
    2) Mittlere Änderungen im Core: Die Reihenfolge der Berechnung des Preises muss geändert werden. Hierzu muss die xtc_price (glaube ich) so geändert werden, dass bei der Anfrage nach mehreren Artikeln als Rückgabewert nicht der gerundete Einzelpreis sondern der gerundete Summenpreis übergeben wird (die nötigen Informationen stehen da glaube ich sogar zur Verfügung). Zusätzlich muss an den relevanten Stellen (Warenkorb, Bestellung etc) anschließend die Multiplikation mit der Menge (bisher: Summenpreis = Rückgabe (Einzelpreis) * Menge, jetzt: Rückgabe (Summenpreis)) entfernt werden.

    In wieweit sich durch 2) jetzt aber andere Punkte ergeben (bspw in der Statistik des Adminbereichs), weil in der Datenbank jetzt die Summenpreise stehen, habe ich mir noch nicht angeschaut.
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    16 Antworten
    15423 Aufrufe
    29. November 2013, 10:03:07 von Eichenhorn
    5 Antworten
    5927 Aufrufe
    06. Juni 2012, 13:23:35 von tinchen
    3 Antworten
    2861 Aufrufe
    25. August 2022, 21:39:42 von Q
    1 Antworten
    1409 Aufrufe
    22. Februar 2017, 19:10:46 von Lottemann
               
    anything