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: Bestellbestätigungsmail anpassen - zusätzliche Datenbankabfrage

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Ich steh gerade auf dem Schlauch ... in der order_mail.html will ich an der Stelle:
    Code: PHP  [Auswählen]
            {foreach name=aussen item=order_values from=$order_data}
            <tr>
              <td width="20" style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{$order_values.PRODUCTS_QTY}</font></div></td>
              <td width="20" style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">x</font></div></td>
              {if $smarty.const.SHOW_IMAGES_IN_EMAIL == 'true'}
              <td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;">
                {if $order_values.PRODUCTS_IMAGE neq ''}              
                    <img src="{$img_path}{$order_values.PRODUCTS_IMAGE}" style="{$smarty.const.SHOW_IMAGES_IN_EMAIL_STYLE}">              
                {/if}
              </td>
              {/if}
              <td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;">
                <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                <strong>{$order_values.PRODUCTS_NAME}</strong>
     

    Noch ein paar mehr Informationen einbauen. Es gibt bei mir außer dem Produktnamen noch ein selbst eingebautes Datenbankfeld für Untertitel von Büchern und ich hätte auch gerne in der Mail die Info, ab wann der Artikel verfügbar ist.

    Ich habe jetzt das gebaut:
    includes/classes/order.php
    Code: PHP  [Auswählen]
                    // BOC Jochen - add more infos to order mails
                    $product_additional_info_query = "SELECT products_date_available, products_subtitle FROM " . TABLE_PRODUCTS . " WHERE products_id=" . (int)$order_data_values['products_id'];
                    $product_additional_info = xtc_db_fetch_array($product_additional_info_query);
                   
                    // EOC Jochen - add more infos to order mails
            $order_data[] = array ('PRODUCTS_ID' => $order_data_values['products_id'],
                                   'PRODUCTS_MODEL' => $order_data_values['products_model'],
                                   'PRODUCTS_NAME' => $order_data_values['products_name'],
                                   'PRODUCTS_IMAGE' => xtc_get_products_image($order_data_values['products_id']),
                                   'PRODUCTS_ORDER_DESCRIPTION' => $order_description,
                                   'PRODUCTS_SHORT_DESCRIPTION' => $short_description,
                                   '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_TAX' => ($order_data_values['products_tax'] > 0.00) ? number_format($order_data_values['products_tax'], TAX_DECIMAL_PLACES):0,
                                   // BOC Jochen - add more infos to order mails
                                   'PRODUCTS_SUBTITLE' => $product_additional_info['products_subtitle'],
                                   // EOC Jochen - add more infos to order mails
     

    und in der /templates/xtc5/mail/german/order_mail.html das:
    Code: PHP  [Auswählen]
                <strong>{$order_values.PRODUCTS_NAME} {if $order_values.PRODUCTS_SUBTITLE}{$order_values.PRODUCTS_SUBTITLE}{/if}</strong>
     

    Jedoch kommt in der Mail weiterhin nur der Titel des Buches  :mhhh:

    Wo ist mein Denkfehler?

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

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Hallo bonsai!

    Unten steht: Zusätzliche Artikelangaben in Bestellbestätigungsmail bei ähnliche Themen.

    Da schreibt Dokuman was von der send_order.php

    Vielleicht liegt es daran?

    LG
    Peter

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    in der send_order.php finde ich das:
    Code: PHP  [Auswählen]
      $smarty->assign('order_data', $order->getOrderData($insert_id));

    Also wird hier offensichtlich die Funktion getOrderData der Klasse order aufgerufen.

    Danke für die Mühe, aber das hilft mir nicht weiter.

    Neo-drexx

    • Frisch an Board
    • Beiträge: 93
    • Geschlecht:
    Ich könnte mich ja täuschen, aber hast du nicht xtc_db_query vergessen?

    Code: PHP  [Auswählen]
                    $product_additional_info_query = "SELECT products_date_available, products_subtitle FROM " . TABLE_PRODUCTS . " WHERE products_id=" . (int)$order_data_values['products_id'];
                    $product_additional_info = xtc_db_fetch_array($product_additional_info_query);

    versuch es doch mal damit:

    Code: PHP  [Auswählen]
                    $product_additional_info_query = xtc_db_query("SELECT products_date_available, products_subtitle FROM " . TABLE_PRODUCTS . " WHERE products_id=" . (int)$order_data_values['products_id']);
                    $product_additional_info = xtc_db_fetch_array($product_additional_info_query);

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    :lol1:  :lol2:  :whistle: Danke! Man sollte um die Uhrzeit nicht mehr coden.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Finale Lösung:
    includes/classes/order.php
    Code: PHP  [Auswählen]
            $order_description = !empty($order_description) ? $order_description : $short_description;
                    // BOC Jochen - add more infos to order mails
                    $product_additional_info_query = xtc_db_query("SELECT products_date_available, products_subtitle FROM " . TABLE_PRODUCTS . " WHERE products_id=" . (int)$order_data_values['products_id']);
                    $product_additional_info = xtc_db_fetch_array($product_additional_info_query);
                    if (strtotime($product_additional_info['products_date_available']) < time()) {
                            $product_additional_info['products_date_available']=null;
                    } else {
                            $product_additional_info['products_date_available'] = "Vorbestellung! Artikel erscheint voraussichtlich am " . date("d.m.Y", strtotime($product_additional_info['products_date_available']) );
                    }
                    // EOC Jochen - add more infos to order mails
            $order_data[] = array ('PRODUCTS_ID' => $order_data_values['products_id'],
                                   'PRODUCTS_MODEL' => $order_data_values['products_model'],
                                   'PRODUCTS_NAME' => $order_data_values['products_name'],
                                   'PRODUCTS_IMAGE' => xtc_get_products_image($order_data_values['products_id']),
                                   'PRODUCTS_ORDER_DESCRIPTION' => $order_description,
                                   'PRODUCTS_SHORT_DESCRIPTION' => $short_description,
                                   '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_TAX' => ($order_data_values['products_tax'] > 0.00) ? number_format($order_data_values['products_tax'], TAX_DECIMAL_PLACES):0,
                                                               // BOC Jochen - add more infos to order mails
                                                               'PRODUCTS_SUBTITLE' => $product_additional_info['products_subtitle'],
                                                               'PRODUCTS_DATE_AVAILABLE' => $product_additional_info['products_date_available'],
                                                               // EOC Jochen - add more infos to order mails
     
    ACHTUNG! Das ist eigentlich Murks, da man den Text "Vorbestellung! Artikel erscheint voraussichtlich am " als Sprachvariable im lang Ordner definieren sollte! (Mehrsprachigkeit, Trennung von Logik und Inhalt)

    /templates/xtc5/mail/german
    Code: PHP  [Auswählen]
              <td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;">
                <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                <strong>{$order_values.PRODUCTS_NAME} {if $order_values.PRODUCTS_SUBTITLE}- {$order_values.PRODUCTS_SUBTITLE}{/if}{if $order_values.PRODUCTS_DATE_AVAILABLE}<span style="color:red"> {$order_values.PRODUCTS_DATE_AVAILABLE}</span>{/if}</strong>
                {if $order_values.PRODUCTS_ORDER_DESCRIPTION neq ''}<br />{$order_values.PRODUCTS_ORDER_DESCRIPTION}{/if}
                {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
                {if $order_values.PRODUCTS_ATTRIBUTES neq ''}<br /><em>{$order_values.PRODUCTS_ATTRIBUTES}</em>{/if}
                </font>
              </td>
     
    templates/xtc5/mail/german/order_mail.txt
    Code: PHP  [Auswählen]
    {foreach name=aussen item=order_values from=$order_data}
    {$order_values.PRODUCTS_QTY} x  {if $order_values.PRODUCTS_SUBTITLE}- {$order_values.PRODUCTS_SUBTITLE}{/if}{if $order_values.PRODUCTS_DATE_AVAILABLE} {$order_values.PRODUCTS_DATE_AVAILABLE}{/if} {$order_values.PRODUCTS_PRICE}
    {if $order_values.PRODUCTS_ORDER_DESCRIPTION neq ''}{$order_values.PRODUCTS_ORDER_DESCRIPTION}{/if}
    {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}{/if}
    {if $order_values.PRODUCTS_ATTRIBUTES !=''}{$order_values.PRODUCTS_ATTRIBUTES}{/if}
     

    Das Ergebnis ist dann eine Bestellbestätigungsmail wie diese (gelbe Markierung):
    [ Für Gäste sind keine Dateianhänge sichtbar ]
    5 Antworten
    3027 Aufrufe
    10. April 2013, 10:40:24 von DokuMan
    4 Antworten
    1648 Aufrufe
    12. November 2018, 11:46:38 von noRiddle (revilonetz)
               
    anything