Werbung / Banner buchen
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: alle Infos aus order_mail.* auch in change_order_mail.* anzeigen?

    arno_nuehm

    • Mitglied
    • Beiträge: 102
    • Geschlecht:
    Hallo Forengemeinde,

    nach mehreren Stunden probieren, googlen und erfolglosem Suchen im Forum komme ich leider am posten folg. Frage nicht vorbei:

    Von xt:c und Gambio bin ich es gewohnt, dass man durch eine kleine Erweiterung am Quellcode alle Felder aus der order_mail.* auch in der change_order_mail.* ausgeben kann.
    Diese Erweiterung ist für beide Systeme geringfügig unterschiedlich.
    (Die zu ändernden Dateien sind aber in beiden Fällen die admin/includes/classes/order.php und admin/orders)
    Leider gelingt es mir im modified eCommerce Shopsoftware nicht, diese Erweiterung funktionsfähig einzubauen. :-(

    Konkrete Beispielfelder, die ich gerne in der change_order_mail.* hätte, wären:
    • csID
    • PAYMENT_METHOD
    • PRODUCTS_QTY
    • PRODUCTS_MODEL
    • PRODUCTS_NAME
    • PRODUCTS_PRICE
    • PRODUCTS_ATTRIBUTES
    • PRODUCTS_ATTRIBUTES
    Ich könnte mir vorstellen, dass sicherlich schon jemand vor dieser Aufgabe gestanden ist.
    Konnte Sie auch jemand erfolgreich lösen?

    Gruß
    Manu

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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    DB-Query erweitern und Smarties definieren ?
    Ist doch nicht schwer.
    Wie hast du's denn vorher in xt:c gemacht ?

    Gruß,
    noRiddle

    arno_nuehm

    • Mitglied
    • Beiträge: 102
    • Geschlecht:
    Genau, ist auch eigentlich nicht schwer. Ich bekomm es aber irgendwie im xtc:m nicht gebacken. :-(

    Hab`s gerade nochmal an einem xt:c ausprobiert, funzt bestens.

    Zur Vorgehensweise:
    /admin/includes/classes/order.php
    1. suche
    Code: PHP  [Auswählen]
    function order($order_id) {
    füge danach ein
    Code: PHP  [Auswählen]
    global $xtPrice;
    2. suche
    Code: PHP  [Auswählen]
      }
    ?>
     
    für davor ein
    Code: PHP  [Auswählen]
    function getOrderData($oID) {
            global $xtPrice;

            require_once(DIR_FS_INC . 'xtc_get_attributes_model.inc.php');

            $order_query = "SELECT
                                products_id,
                                orders_products_id,
                                products_model,
                                products_name,
                                final_price,
                                  products_shipping_time,
                                products_quantity
                                FROM "
    .TABLE_ORDERS_PRODUCTS."
                                WHERE orders_id='"
    .(int) $oID."'";
            $order_data = array ();
            $order_query = xtc_db_query($order_query);
            while ($order_data_values = xtc_db_fetch_array($order_query)) {
                $attributes_query = "SELECT
                                    products_options,
                                    products_options_values,
                                    price_prefix,
                                    options_values_price
                                    FROM "
    .TABLE_ORDERS_PRODUCTS_ATTRIBUTES."
                                    WHERE orders_products_id='"
    .$order_data_values['orders_products_id']."'";
                $attributes_data = '';
                $attributes_model = '';
                $attributes_query = xtc_db_query($attributes_query);
                while ($attributes_data_values = xtc_db_fetch_array($attributes_query)) {
                    $attributes_data .= '<br />'.$attributes_data_values['products_options'].':'.$attributes_data_values['products_options_values'];
                    $attributes_model .= '<br />'.xtc_get_attributes_model($order_data_values['products_id'], $attributes_data_values['products_options_values'],$attributes_data_values['products_options']);

                }
                $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']);

            }

            return $order_data;

        }

        function getTotalData($oID) {
            global $xtPrice,$db;

            // get order_total data
            $oder_total_query = "SELECT
                              title,
                              text,
                            class,
                            value,
                              sort_order
                              FROM "
    .TABLE_ORDERS_TOTAL."
                              WHERE orders_id='"
    .(int) $oID."'
                              ORDER BY sort_order ASC"
    ;

            $order_total = array ();
            $oder_total_query = xtc_db_query($oder_total_query);
            while ($oder_total_values = xtc_db_fetch_array($oder_total_query)) {


                $order_total[] = array ('TITLE' => $oder_total_values['title'], 'CLASS' => $oder_total_values['class'], 'VALUE' => $oder_total_values['value'], 'TEXT' => $oder_total_values['text']);
                if ($oder_total_values['class'] = 'ot_total')
                $total = $oder_total_values['value'];

            }
            return array('data'=>$order_total,'total'=>$total);
        }
     
    admin/orders.php
    3. suche (2x vorhanden, 2x zu ergänzen!)
    Code: PHP  [Auswählen]
    $smarty->config_dir = DIR_FS_CATALOG.'lang';
    füge danach ein
    Code: PHP  [Auswählen]
    $smarty->assign('address_label_customer', xtc_address_format($order->customer['format_id'], $order->customer, 1, '', '<br />'));
                $smarty->assign('address_label_shipping', xtc_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br />'));
                if ($_SESSION['credit_covers'] != '1') {
                    $smarty->assign('address_label_payment', xtc_address_format($order->billing['format_id'], $order->billing, 1, '', '<br />'));
                }
                $smarty->assign('csID', $order->customer['csID']);



                require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'xtcPrice.php');
                $xtPrice = new xtcPrice($_SESSION['currency'],'');

                $order_total = $order->getTotalData($oID);
                $smarty->assign('order_data', $order->getOrderData($oID));
                $smarty->assign('order_total', $order_total['data']);

                // assign language to template for caching
                $smarty->assign('language', $_SESSION['language']);
                $smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
                $smarty->assign('logo_path', HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');
                $smarty->assign('oID', $insert_id);
                $smarty->assign('DATE', xtc_date_long($order->info['date_purchased']));

                $smarty->assign('NAME', $order->customer['name']);
                $smarty->assign('COMMENTS', $order->info['comments']);
                $smarty->assign('EMAIL', $order->customer['email_address']);
                $smarty->assign('PHONE',$order->customer['telephone']);
                           
                            if ($order->info['payment_method']!='' && $order->info['payment_method']!='no_payment') {
                            include(DIR_FS_CATALOG.'lang/'.$_SESSION['language'].'/modules/payment/'.$order->info['payment_method'].'.php');
                            $payment_method=constant(strtoupper('MODULE_PAYMENT_'.$order->info['payment_method'].'_TEXT_TITLE'));
                            $smarty->assign('PAYMENT_METHOD',$payment_method);
        }

                // PAYMENT MODUL TEXTS
                // EU Bank Transfer
                if ($order->info['payment_method'] == 'eustandardtransfer') {
                    $smarty->assign('PAYMENT_INFO_HTML', MODULE_PAYMENT_EUTRANSFER_TEXT_DESCRIPTION);
                    $smarty->assign('PAYMENT_INFO_TXT', str_replace("<br />", "\n", MODULE_PAYMENT_EUTRANSFER_TEXT_DESCRIPTION));
                }

                // MONEYORDER
                if ($order->info['payment_method'] == 'moneyorder') {
                    $smarty->assign('PAYMENT_INFO_HTML', MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION);
                    $smarty->assign('PAYMENT_INFO_TXT', str_replace("<br />", "\n", MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION));
                }
                           
                            $query_bank = xtc_db_query("SELECT banktransfer_owner, banktransfer_number, banktransfer_bankname, banktransfer_blz FROM banktransfer                   WHERE orders_id='".$_GET['oID']."'");
                            $bank = xtc_db_fetch_array($query_bank);
                            $smarty->assign('banktransfer_owner',$bank['banktransfer_owner']);
                            $smarty->assign('banktransfer_blz',$bank['banktransfer_blz']);
                            $smarty->assign('banktransfer_number',$bank['banktransfer_number']);
                            $smarty->assign('banktransfer_bankname',$bank['banktransfer_bankname']);
           
                             // dont allow cache
                $smarty->caching = false;
     
    fertig.

    Genauso funzt es in xt:c und gambio, ich kann also Variablen, die auch in der order_mail.* zur Verfügung stehen, abrufen.
    Sehe ich irgendwo den Wald vor lauter Bäumen nicht mehr?

    web28

    • modified Team
    • Beiträge: 9.404
    Du hast aber gemerkt das es die Funktionen
    function getOrderData($oID)  und function getTotalData($oID)
    bereits in der Datei /admin/includes/classes/order.php vorhanden sind?

    Gruss Web28

    arno_nuehm

    • Mitglied
    • Beiträge: 102
    • Geschlecht:
    function getOrderData($oID) und function getTotalData($oID)
    ohjee... nee, jetzt wo du`s sagst...
    hab die Passagen entsprechen wieder geändert und siehe da: funzt.

    manchmal sollte man vllt. etwas mehr schlafen.

    Danke nochmal an euch!

    MasterChief

    • Mitglied
    • Beiträge: 189
    Hallo Manu,
    ich bin gerade am gleichen Thema und hätte gerne die

    Bestellung Nr: {$oID}
    in der
    change_order_mail.html

    da viele Kunden immer wieder nach dem Stand der Bestellung nachfragen und dabei meistens keine Bestellung-Nr. oder nichtmal Ihren Namen angeben...

    Leider bekomme ich es auch nicht hin, die Bestellung-Nr.  in der change_order_mail.html  einzubinden. Hast du einen (genaueren) Tip für mich?

    Danke!

    Thom

    arno_nuehm

    • Mitglied
    • Beiträge: 102
    • Geschlecht:
    Hi Tom,

    versuch mal, ob die Variable ORDER_ID statt oID funzt.
    Die Änderungen in der /admin/includes/classes/order.php hast du umgesetzt?

    Gruß
    Manu

    MasterChief

    • Mitglied
    • Beiträge: 189
    Hallo,
    bin grad noch dran, jetzt funktionierts mit:
    Bestellung Nr: {$ORDER_ID}

    ohne jegliche Änderungen der /admin/includes/classes/order.php  (modified eCommerce Shopsoftwareod. 1.05 SP1d)

    Danke!

    arno_nuehm

    • Mitglied
    • Beiträge: 102
    • Geschlecht:
    ok. :)
    0 Antworten
    2685 Aufrufe
    10. Juli 2009, 09:25:37 von vsell