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: Grundpreis in print_order - Berechnung bei Produktpreisen über 1000 Euro falsch

    claudia

    • Fördermitglied
    • Beiträge: 219
    Ich habe ein merkwürdiges Problem. In die Datei /includes/classes/order.php habe ich folgenden Zusatz eingebaut, um den Grundpreis in der print-order bzw. der Bestätigungsmail anzuzeigen:

    Code: PHP  [Auswählen]
    $singleprice = $xtPrice->xtcFormat($order_data_values['final_price']/$order_data_values['products_quantity'], true);
           
    if ($order_data_values['products_vpe_status'] == 1 && $order_data_values['products_vpe_value'] != 0.0 && $singleprice > 0) {
    require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');
    $vpe = $xtPrice->xtcFormat($singleprice * (1 / $order_data_values['products_vpe_value']), true).TXT_PER.xtc_get_vpe_name($order_data_values['products_vpe']);
    //  $vpe = $xtPrice->xtcFormat(5900 * (1 / $order_data_values['products_vpe_value']), true).TXT_PER.xtc_get_vpe_name($order_data_values['products_vpe']);
      }    
    $order_data[] = array ('PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'],'PRODUCTS_SHIPPING_TIME' => $order_data_values['products_shipping_time'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price'], true),'PRODUCTS_SINGLE_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price']/$order_data_values['products_quantity'], true), 'PRODUCTS_QTY' => $order_data_values['products_quantity'], 'PRODUCTS_WEIGHT' => $order_data_values['products_weight']*$order_data_values['products_quantity'],'PRODUCTS_SHORT_DESCRIPTION' => xtc_get_short_description($order_data_values['products_id']),'PRODUCTS_VPE' => $vpe);
     

    Dies funktioniert einwandfrei bis zu einem Produktpreis von 999 Euro. Ab einem Preis von 1000 Euro wird ein falscher Grundpreis berechnet. Z.B. bei einem Produktpreis von 5900 Euro und einer Verpackungsgröße von 1000 kg sollten 5,90 Euro herauskommen. Das System berechnet jedoch 0,01 Euro.
    Trage ich für $singlepreis direkt den Preis 5900 (siehe auskommentierte Zeile) ein, wird der Grundpreis richtig berechnet.
    Fehlt vielleicht noch irgendein Parameter bei xtcFormat?


    Linkback: https://www.modified-shop.org/forum/index.php?topic=18399.0

    hendrik

    • Experte
    • Beiträge: 2.038
    Du rechnest mit formatierten Werten. Das geht schief.

    String "999,00 EUR" kriegt PHP durch automotische Typumwandlung noch auf Real 999.00.
    Allerdings werden aus "1.000,00 EUR" keine 1000 sondern 1.

    Du bruachst kein xtcFormat für dein $singleprice. Formatiere die Werte erst wenn du fertig gerechnet hast.

    Gruß
    Hen

    claudia

    • Fördermitglied
    • Beiträge: 219
    Ein riesengroßes Dankeschön, jetzt funktioniert es perfekt.
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    15 Antworten
    6441 Aufrufe
    16. Oktober 2015, 16:09:26 von noRiddle (revilonetz)
    3 Antworten
    2991 Aufrufe
    12. Januar 2010, 09:17:12 von Tomcraft
    14 Antworten
    8444 Aufrufe
    14. November 2012, 19:43:43 von NicoDeluxe
    1 Antworten
    2332 Aufrufe
    31. Oktober 2014, 11:16:17 von Bonsai