sascha996 Posted May 17, 2008 Report Share Posted May 17, 2008 Hallo, kann mir jemand helfen beim Einbinden von zusätzlichem Text in die change_order_mail im Pfad admin\mail\german. Aktuell habe ich in der Datei: Sehr geehrte/r {$NAME}, Der Status Ihrer Bestellung wurde geändert: Neuer Status: {$ORDER_STATUS} {if $COMMENTS} Anmerkungen: {$COMMENTS}{/if} möchte noch die Bestellnummer, Bestelldatum, den Artikel etc. wie aus der Bestätigungsmail der Bestellung einbinden. Das Kopieren der Parameter aus der Bestätigungsmail klapp nicht. Hat jemand ein Idee? Danke. Gruß Link to comment Share on other sites More sharing options...
dracula Posted May 17, 2008 Report Share Posted May 17, 2008 schau dir die Datei Order_details an da sind die Daten m die du haben möchtest hinterlegt und kannst sie dann dort einsetzen Link to comment Share on other sites More sharing options...
sascha996 Posted May 17, 2008 Author Report Share Posted May 17, 2008 Hallo noch mal, wo ist die Datei Order_details im Verzeichnis gibts die nicht, eine DB-Tabelle mit dem Namen auch nicht. Danke. Gruß Link to comment Share on other sites More sharing options...
Psychopomp Posted October 5, 2008 Report Share Posted October 5, 2008 Die Frage von Sascha996 würde mich auch interessieren! Ich möchte in der Status-Mail die Bestllnummer und das Bestelldatum mit anzeigen lassen. Füge ich einfach die beiden Variablen {$oID} und {$DATE} passiert nichts! Zudem würde ich gerne schon im Betreff der Statusmail die Bestellnummer und Datum anzeigen lassen, damit der Kunde sofort weiß, auf welche Bestellung sich die Mail bezieht. Welche Schritte sind hierfü nötig? Vielen Dank! Link to comment Share on other sites More sharing options...
Psychopomp Posted October 8, 2008 Report Share Posted October 8, 2008 Gibt es keine Lösung für dieses Problem? Link to comment Share on other sites More sharing options...
buddi Posted October 10, 2008 Report Share Posted October 10, 2008 Hallo zusammen, nach langem Suchen bin ich fündig geworden. Die hier aufgezeigte Lösung funktioniert bei mir einwandfrei. Ich bedanke mich an dieser Stelle bei Jens Langen, der die hier aufgezeigten Modifikationen freundlicherweise andernorts zur Verfügung gestellt hat. 1. Datei /admin/includes/classes/order.php // suche: QUELLTEXT function order($order_id) {[/PHP] // danach einfügen QUELLTEXT [PHP]global $xtPrice;[/PHP] // suche QUELLTEXT [PHP] } ?>[/PHP] // davor QUELLTEXT [PHP]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); }[/PHP] // Datei /admin/orders.php // suche: QUELLTEXT [PHP]$smarty->config_dir = DIR_FS_CATALOG.'lang';[/PHP] // danach einfügen: QUELLTEXT [PHP] /// CHANGES $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']); // 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)); } // dont allow cache $smarty->caching = false; ///CHANGES[/PHP] Das wars. Jetzt kann man den Quelltext der /templates/DEINTEMPLATE/mail/DEINESPRACHE/order_mail.html als Quelltext für die /templates/DEINTEMPLATE/admin/mail/DEINESPRACHE/change_order_mail.html nutzen und man erhält eine detailierte Mail zur Statusänderung. Link to comment Share on other sites More sharing options...
sevenshop Posted October 13, 2008 Report Share Posted October 13, 2008 HAllo, hast du vielleicht schon eine Lösung für dein Problem gefunden? Den ich wollte es auch so machen, komme aber nicht dahinter. DAnke. Link to comment Share on other sites More sharing options...
buddi Posted October 14, 2008 Report Share Posted October 14, 2008 Hallo sevenshop, entschuldige, aber ich verstehe Deine Frage nicht. Mein Beitrag oben ist doch die Lösung des Problems ... Link to comment Share on other sites More sharing options...
Psychopomp Posted October 25, 2008 Report Share Posted October 25, 2008 Klappt bei mir wunderbar, aber ausgerechnet die Order ID wird nicht übermittelt!!!! Außerdem wäre es gut, wenn auch die Order ID (u. evtl. das Datum) schon im E-Mail Betreff mit angegeben werden würde. In der Bestellbestätigungsmail geht das über {$nr} / {$date} Komischerweise funktioniert das nicht mit der Order Change Datei! Wer weiß zu helfen? Danke! Link to comment Share on other sites More sharing options...
Psychopomp Posted October 27, 2008 Report Share Posted October 27, 2008 Schiebe noch mal das Thema. Weiß wirklich keiner eine Lösung!?!?!? Link to comment Share on other sites More sharing options...
MaKe Posted November 9, 2008 Report Share Posted November 9, 2008 Hallo Das mit der ID und Kd.Nr. geht nicht. Link to comment Share on other sites More sharing options...
reinhardt Posted December 7, 2008 Report Share Posted December 7, 2008 Gute Anleitung "buddi". Irgendwie habe ich es aber nicht hinbekommen die Zahlungsweise mit auszugeben, daher habe ich in der Datei .../shop/admin/orders.php vor der Zeile // PAYMENT MODUL TEXTS noch folgendes eingefügt: 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); } Da ich mir auch noch die Bankdaten ausgeben lassen wollte habe ich dann noch vor der Zeile // dont allow cache folgendes eingefügt: $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']); In der Datei: .../shop/templates/<mein Template>/admin/mail/german/change_order_mail.html ganz am Anfang folgende Zeile eingefügt: {config_load file="$language/lang_$language.conf" section="print_order"}[/code] Dann natürlich die change_order_mail.html noch entsprechend angepasst, so dass ich jetzt meine Versandbestätigungen und Zahlungserinnerungen über diese Statusmail machen kann. Link to comment Share on other sites More sharing options...
Sir Knight Posted December 8, 2008 Report Share Posted December 8, 2008 also die Kundennummer bekomm ich auch nicht rein.... aber Bestellnummer und Bestelldatum gehen mit: Bestellung Nr: {$ORDER_NR} Bestelldatum {$ORDER_DATE} also etwa: Ihre Bestellung Nr: {$ORDER_NR} vom {$ORDER_DATE} hat einen neuen status: neuer Status : bla bla hoffe das hilft Euch ^^ Link to comment Share on other sites More sharing options...
reinhardt Posted December 12, 2008 Report Share Posted December 12, 2008 Ich verschicke jetzt auch "Zahlungserinnerungen" über die Statusmail Hier ein Ausschnitt aus meiner change_order_mail.html <b>Hallo {$NAME}</b> <br> {if $ORDER_STATUS =='Zahlungserinnerung'}<br> vielen Dank für Ihre Bestellung Nr. {$oID}, vom {$DATE}.<br> <br> Sicherlich haben Sie es nur vergessen. Bisher ist Ihre Zahlung noch nicht eingegangen.<br> Bitte begleichen Sie den Rechnungsbetrag (Rechnungskopie s.u.) auf unser Konto.<br> <br> <table border="0" cellspacing="2" cellpadding="1"> <tr> <td width="40"></td> <td width="150">Kontoinhaber</td> <td>Herr Mustermann</td> </tr> <tr> <td width="40"></td> <td width="150">Bank</td> <td>Lehman Brother</td> </tr> <tr> <td width="40"></td> <td width="150">BLZ</td> <td>500 309 00</td> </tr> <tr> <td width="40"></td> <td width="150">Konto</td> <td>012 345 678</td> </tr> <tr height="16"> <td width="40" height="16"></td> <td width="150" height="16"></td> <td height="16"></td> </tr> <tr> <td width="40"></td> <td width="150">IBAN</td> <td>36 5003 0900 0012 3456 00</td> </tr> <tr> <td width="40"></td> <td width="150">BIC</td> <td>SLBSDEFPXXX</td> </tr> </table> <br> Sollten Sie bereits überwiesen haben, ..... {/if}{if $ORDER_STATUS =='Lastschrift'}<br> <b>Rechnungsbetrag nicht überweisen!</b><br> Der Betrag wird innerhalb der nächsten 7 Werktage von Ihrem Konto:<br> <table border="0" cellspacing="2" cellpadding="1"> <tr> <td width="150">{#text_bank_nummer#}</td> <td>{$banktransfer_number}</td> </tr> <tr> <td width="150">{#text_bank_blz#}</td> <td>{$banktransfer_blz}</td> </tr> <tr> <td width="150">{#text_bank_name#}</td> <td>{$banktransfer_bankname}</td> </tr> </table> per <b>Lastschrift</b> eingezogen.<br> {/if} ... {if $NOTIFY_COMMENTS}<br> <table style="border-top:1px solid; border-bottom:1px solid;" width="100%" border="0"> <tr bgcolor="#f1f1f1"> <td><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Anmerkung zu Ihrer Bestellung</font></strong></td> </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{$NOTIFY_COMMENTS}</font></td> </tr> </table> {/if}<br> ... Ansonsten kann man natürlich jeden beliebigen Text einfügen. Je nachdem mit welchem Status ich die Mail verschicke, ändert sich der Text. Darüber hinaus werte ich noch die Zahlungsart ($PAYMENT_METHOD) aus. {if $PAYMENT_METHOD =='Rechnung'}<br/> <b>Betrag zahlbar innerhalb von 7 Tagen ohne Abzüge.</b> <br> Bitte geben Sie bei der Überweisung die Bestell-/Rechnungsnummer an.<br /> {/if}{if $PAYMENT_METHOD =='Lastschriftverfahren'}<br/> <b>Nicht überweisen! </b>Der Betrag wird innerhalb der nächsten 7 Werktage von Ihrem {#text_bank_nummer#} {$banktransfer_number}, {#text_bank_blz#} {$banktransfer_blz} bei dem {#text_bank_name#} {$banktransfer_bankname} abgebucht.<br /> {/if}{if $PAYMENT_METHOD =='Scheck/Vorkasse' && $ORDER_STATUS =='Versendet'}<br/> <b>Betrag bezahlt. Vielen Dank!</b><br /> {/if} Hat denn keiner eine Idee wie man den Betreff der Mail mit Order_ID und Datum anpassen kann? In der Bestellmail geht das doch auch. Am Ende hänge ich noch einmal die Rechnung aus print_order.html dran. Link to comment Share on other sites More sharing options...
MarcB Posted June 10, 2009 Report Share Posted June 10, 2009 Nachdem ich eine Möglichkeit gesucht habe die Bestellnummer bzw. das Bestelldatum im Betreff der Statusmails einzufügen bin ich des öfteren wieder über diesen Beitrag gestolpert. Mittlerweile habe ich eine bzw. zwei Lösungen dafür gefunden. Die eine funktioniert als Standalone und die zweite in Verbindung mit einer Erweiterung in der man verschiedene Email Betreff`s angeben kann. Hier zumindest mal die standalone Version. in admin/orders.php xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $check_status['customers_email_address'], $check_status['customers_name'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', EMAIL_BILLING_SUBJECT, $html_mail, $txt_mail); ersetzen mit // Bestellnummer + Bestelldatum im Betreff change_order_mail /*xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $check_status['customers_email_address'], $check_status['customers_name'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', EMAIL_BILLING_SUBJECT, $html_mail, $txt_mail); */ xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $check_status['customers_email_address'], $check_status['customers_name'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', EMAIL_BILLING_SUBJECT .' '.$oID.' '. '/ vom ' . xtc_date_long($check_status['date_purchased']), $html_mail, $txt_mail); // Ende[/code] Nun wird IMMER die Bestellnummer und das Bestelldatum im Betreff mitgesendet, die Alternative wäre die Erweiterung email_betreff_editieren dann kann man im Admin auch die Variablen {$oID} oder {$date} benutzen. Ist zwar nicht unbedingt die schönste Lösung aber sie funktioniert Vielleicht kann ja noch jemand was damit anfangen. Gruß MarcB P.S. Wer im Bestelldatum den Tag nicht mit drin haben möchte einfach das xtc_date_long gegen xtc_date_short tauschen Link to comment Share on other sites More sharing options...
quik Posted June 16, 2009 Report Share Posted June 16, 2009 Hallo Zusammen! Ich bin recht neu in der gesamten XTC-Thematik und habe da noch so eine kleine Frage. Vielleicht wurde sie auch schon in den ganzen Threats über mir beantwortet, aber dann habe ich es wohl nicht verstanden. Was muss ich tun, wenn ein Artikel momentan nicht lieferbar ist.. und ich gerne dem Kunden dann eine "Status-Mail" zu senden will, dass der gewünschte Artikel verfügbar ist. Status-Mail habe ich in den vorigen Threats öfters lesen können, nur habe ich noch nicht wirklich verstanden wie eine solche Status-Mail funktioniert. Könnte mir vielleicht jemand kurz sagen.. wie ich diese tätige? Schon mal vielen Dank im Voraus! p.s.: Wie kann ich es umgehen, dass wenn ein Kunde bestellt.. und die Ware nicht lieferbar ist die Meldung "Die mit ***markierten..." nicht erfolgt, sondern der Kunde die möglichkeit hat seine Email Adresse zu hinterlegen.. um eine Statusmail zu bekommen..wenn der Artikel wieder lieferbar ist. quik. Link to comment Share on other sites More sharing options...
MarcB Posted June 16, 2009 Report Share Posted June 16, 2009 Hallo quik Wie Du die Statusmails für diesen Zweck verwenden kannst weiß ich leider nicht, aber es gibt ein Zusatzmodul für diesen Zweck z.B. http://www.xt-base.de/Module-fuer-xtCommerce/Kundenbindung-Pflege/Kundenerinnerung-bei-erneutem-Eintreffen-von-Artikeln--73.html Soll jetzt aber keine Empfehlung sein da ich den Anbieter nicht kenne, aber vielleicht gibt es was ähnliches auch kostenfrei im Netz. Ansonsten kann ich Dir, da Du schreibst du bist neu in xtc auch das xtc-supportforum.de empfehlen Gruß Marc P.S. Du hast eine PN Link to comment Share on other sites More sharing options...
quik Posted June 16, 2009 Report Share Posted June 16, 2009 Hey Marc, vielen Dank für dein Feedback! Hast auch schon eine PN Link to comment Share on other sites More sharing options...
Stuttgarter27 Posted December 17, 2009 Report Share Posted December 17, 2009 ----- hat sich erledigt... Link to comment Share on other sites More sharing options...
baba259 Posted May 27, 2010 Report Share Posted May 27, 2010 Ich habe versucht es so zu machen wie buddi es erklärt hat aber irgendwie kam bei mir nur nen fehler als ich den status versucht habe zu ändern. was habe ich falsch gemacht? kann mir einer helfen? Link to comment Share on other sites More sharing options...
Merbman Posted November 11, 2010 Report Share Posted November 11, 2010 Klappt bei mir wunderbar, aber ausgerechnet die Order ID wird nicht übermittelt!!!! Außerdem wäre es gut, wenn auch die Order ID (u. evtl. das Datum) schon im E-Mail Betreff mit angegeben werden würde. In der Bestellbestätigungsmail geht das über {$nr} / {$date} Komischerweise funktioniert das nicht mit der Order Change Datei! Wer weiß zu helfen? Danke! Die OrderID wird nicht übermittelt weil in folgender Zeile noch ein kleiner Fehler steckt: $smarty->assign('oID', $insert_id); Das $insert_id muss durch $oID ersetzt werden: $smarty->assign('oID', $oID); Jetzt funktioniert es wunderbar! Link to comment Share on other sites More sharing options...
heiko813 Posted July 6, 2011 Report Share Posted July 6, 2011 /templates/DEINTEMPLATE/mail/DEINESPRACHE/order_mail.html als Quelltext für die /templates/DEINTEMPLATE/admin/mail/DEINESPRACHE/change_order_mail.html nutzen und man erhält eine detailierte Mail zur Statusänderung. Funzt, super sache. danke Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.