Konfusion Posted December 22, 2008 Report Share Posted December 22, 2008 Hallo alle, ich möchte die Kurzbeschreibung in der Rechnung und der Bestätigungsmail anzeigen lassen. Und nach meiner Recherche hier habe ich bisher folgendes unternommen: shop/admin/print_order.php Vorher: $order_data[]=array( 'PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => xtc_format_price_order($order_data_values['final_price'],1,$order->info['currency']), 'PRODUCTS_QTY' => $order_data_values['products_quantity']); }[/PHP] Nachher: [PHP]$psd_query=xtc_db_query("SELECT products_short_description FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id='".$order_data_values['products_id']."'"); $order_data[]=array( 'PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'PRODUCTS_SHORT_DESCRIPTION' => $psd_data_values['products_short_description'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => xtc_format_price_order($order_data_values['final_price'],1,$order->info['currency']), 'PRODUCTS_QTY' => $order_data_values['products_quantity']); }[/PHP] shop/templates/soundso/admin/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/module/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/mail/german/order_mail.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} Ich kenne mich mit PHP leider nicht aus, aber ich denke, das sollte nicht sooo schwer sein?! Welche Dateien muss ich denn noch wie und wo abändern, damit es auch tatsächlich funktioniert und die short_description ausgegeben wird? Vielen Dank für die weihnachtliche Hilfe ;-) Link to comment Share on other sites More sharing options...
Konfusion Posted December 23, 2008 Author Report Share Posted December 23, 2008 Hi, ich habe auf diese Frage von gestern leider immer noch keine Antwort bekommen. Habe ich den Beitrag dem falschen Thema zugeordnet? Ich wär sehr glücklich, wenn mir da jemand weiterhelfen könnte! Danke und Grüße und Winke Robin Hallo alle, ich möchte die Kurzbeschreibung in der Rechnung und der Bestätigungsmail anzeigen lassen. Und nach meiner Recherche hier habe ich bisher folgendes unternommen: shop/admin/print_order.php Vorher: $order_data[]=array( 'PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => xtc_format_price_order($order_data_values['final_price'],1,$order->info['currency']), 'PRODUCTS_QTY' => $order_data_values['products_quantity']); }[/PHP] Nachher: [PHP]$psd_query=xtc_db_query("SELECT products_short_description FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id='".$order_data_values['products_id']."'"); $order_data[]=array( 'PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'PRODUCTS_SHORT_DESCRIPTION' => $psd_data_values['products_short_description'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => xtc_format_price_order($order_data_values['final_price'],1,$order->info['currency']), 'PRODUCTS_QTY' => $order_data_values['products_quantity']); }[/PHP] shop/templates/soundso/admin/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/module/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/mail/german/order_mail.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} Ich kenne mich mit PHP leider nicht aus, aber ich denke, das sollte nicht sooo schwer sein?! Welche Dateien muss ich denn noch wie und wo abändern, damit es auch tatsächlich funktioniert und die short_description ausgegeben wird? Vielen Dank für die weihnachtliche Hilfe ;-) Link to comment Share on other sites More sharing options...
hubbabubba Posted December 23, 2008 Report Share Posted December 23, 2008 $psd_query=xtc_db_query("SELECT products_short_description FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id='".$order_data_values['products_id']."'"); danach fehlt folgendes: $psd_data_values=xtc_db_fetch_array($psd_query);mfg Link to comment Share on other sites More sharing options...
Konfusion Posted December 23, 2008 Author Report Share Posted December 23, 2008 hihubbabubba danke. funktioniert aber leider immer noch nicht. Ich habe gelesen, man sollte root/print_order.php und root/send_order.php noch anpassen. Allerdings weiß ich nicht, wie. Den Code-Schnipsel einzubauen bringt nichts: Syntax-Error! Das lässt sich auch nicht 1:1 kopieren, im root sieht die print_order.php etwas anders aus: <?php include ('includes/application_top.php'); // include needed functions require_once (DIR_FS_INC.'xtc_get_order_data.inc.php'); require_once (DIR_FS_INC.'xtc_get_attributes_model.inc.php'); $smarty = new Smarty; // check if custmer is allowed to see this order! $order_query_check = xtc_db_query("SELECT customers_id FROM ".TABLE_ORDERS." WHERE orders_id='".(int) $_GET['oID']."'"); $oID = (int) $_GET['oID']; $order_check = xtc_db_fetch_array($order_query_check); if ($_SESSION['customer_id'] == $order_check['customers_id']) { // get order data include (DIR_WS_CLASSES.'order.php'); $order = new order($oID); $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 />')); $smarty->assign('address_label_payment', xtc_address_format($order->billing['format_id'], $order->billing, 1, '', '<br />')); $smarty->assign('csID', $order->customer['csID']); // get products data $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('oID', (int) $_GET['oID']); if ($order->info['payment_method'] != '' && $order->info['payment_method'] != 'no_payment') { include (DIR_WS_LANGUAGES.$_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); $smarty->assign('COMMENT', $order->info['comments']); $smarty->assign('DATE', xtc_date_long($order->info['date_purchased'])); $path = DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/'; $smarty->assign('tpl_path', $path); // dont allow cache $smarty->caching = false; $smarty->display(CURRENT_TEMPLATE.'/module/print_order.html'); } else { $smarty->assign('ERROR', 'You are not allowed to view this order!'); $smarty->display(CURRENT_TEMPLATE.'/module/error_message.html'); } ?>[/PHP] Siehst Du da die Lösung? Robin Link to comment Share on other sites More sharing options...
Konfusion Posted December 26, 2008 Author Report Share Posted December 26, 2008 Hi nochmal, ich beisse mir die Zähne an meinem Problem kaputt. Leider bin ich ja erst xt:Commerce-Anfänger bzw. PHP-unerfahren, aber ich werde mit Sicherheit auch irgendwann hilfreich zur seite stehen können. Doch bis dahin brauche ich noch etwas Hilfe - nach wie vor bei folgendem Problem: Ich möchte in der Bestellmail und im Rechnungsdruck die Kurzbeschreibung mit ausgeben! ... bisher folgendes unternommen: shop/admin/print_order.php Vorher: ...[/PHP] Nachher: [PHP]$psd_query=xtc_db_query("SELECT products_short_description FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id='".$order_data_values['products_id']."'"); $psd_data_values=xtc_db_fetch_array($psd_query); $order_data[]=array( 'PRODUCTS_MODEL' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'PRODUCTS_SHORT_DESCRIPTION' => $psd_data_values['products_short_description'], 'PRODUCTS_ATTRIBUTES' => $attributes_data, 'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model, 'PRODUCTS_PRICE' => xtc_format_price_order($order_data_values['final_price'],1,$order->info['currency']), 'PRODUCTS_QTY' => $order_data_values['products_quantity']); }[/PHP] shop/templates/soundso/admin/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/module/print_order.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} shop/templates/soundso/mail/german/order_mail.html {$order_values.PRODUCTS_SHORT_DESCRIPTION} Vielleicht kann mir Tuvalu weiterhelfen? Er wusste schon mal was zu diesem Thema, allerdings habe ich Version 3.0.4 SP2.1. vom 10.04.2006 [color=olive][font=Arial]Hi, habe die Kurzbeschreibung bei mir vor einiger Zeit eingefügt und mir das hier als Änderung notiert: adim/[/font][/color][color=olive][font=Arial]print_order.php [/font][/color][color=olive][font=Arial]Code austauschen um short_description zu definieren[/font][/color] [code]while ($order_data_values = xtc_db_fetch_array($order_query)) { [COLOR=Red]$short_query = xtc_db_query("SELECT products_short_description FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id=" . $order_data_values['products_id'] . " AND language_id=" . $_SESSION['languages_id']); [/COLOR] [COLOR=Red]$short_result = xtc_db_fetch_array($short_query); [/COLOR] $attributes_query = xtc_db_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 = ''; 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_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'][COLOR=Red], 'PRODUCTS_SHORT_DESCRIPTION' => $short_result['products_short_description'])[/COLOR]; }[/code] [color=olive][font=Arial]root/[/font][/color][color=olive][font=Arial]print_order.php und [/font][/color][color=olive][font=Arial]send_order.php[/font][/color][color=olive][font=Arial] zum Ausdruck für Kunden, Code ausgestauscht[/font][/color][color=olive][font=Arial] wie oben, Kurzbeschreibung eingefügt[/font][/color] [color=olive][font=Arial]templates/eigenestemplate/admin/[/font][/color][color=olive][font=Arial]print_order.html [/font][/color] [color=olive][font=Arial] {$order_values.PRODUCTS_SHORT_DESCIPTION} eingefügt [/font][/color] [color=olive][font=Arial]templates/[/font][/color][color=olive][font=Arial]eigenestemplate[/font][/color][color=olive][font=Arial]/module/[/font][/color][color=olive][font=Arial]print_order.html [/font][/color] [color=olive][font=Arial]{$order_values.PRODUCTS_SHORT_DESCIPTION} eingefügt Hoffe, Du kannst etwas damit anfangen. tuvalu [/font][/color] Original-Thread http://www.xt-commerce.com/forum/showthread.php?t=44836 In der print_order.php und send_order.php in v3.0.4 SP2.1 kann man das nicht genau so ersetzen, die Dateien sehen wie gesagt anders aus. Vielleicht hat Tuvalu, Hubbabubba oder jemand anderes die Lösung für mein Problem? Danke, Robin Link to comment Share on other sites More sharing options...
hubbabubba Posted December 26, 2008 Report Share Posted December 26, 2008 Dein wahres Problem ist nicht das was du beschreibst sondern, daß du nicht weißt wie man debuggt. An diesem Kapitel kommst du nicht vorbei. Glaubs mir. Der ultimative Debugbefehl lautet "echo" oder "print". Bei Arrays "print_r". echo "x=$x<br>\n"; echo "arr=<pre>"; print_r($arr); echo "</pre>"; In einer Templatedatei prüfst du die Smartyvariablen indem du {debug} einfügst. Dann öffnet sich ein Popupfenster was dir alle Smartyvarablen anzeigt. Also. Du denkst dir irgendwas, codest es und übergibst Testdaten. Bestimmte Artikel/Artikelnummern und Datenbankwerte. Dann sollten diese in irgeneiner Weise verarbeitet werden. Jetzt setzt du die o.g. Befehle zwischen die Codezeilen und vergleichst ob die Variablen jene Werte enthalten die du erwartest. So arbeitest du dich Schritt für Schritt durch die Datenverarbeitungskette. Anfangswerte , Folgewerte/-zustände, Folgewerte/-zustände, Folgwerte/-zustände u.s.w. Bis du die Stelle findest wo's hakt. Debuggen ist ne langweilige Arbeit und die macht keiner gerne. Aber es ist genau das was du jetzt brauchst. Um dir zu helfen müsste der Samariter entweder a) genial genug sein den Fehler mit den Augen zu erkennen oder die Sch...arbeit für dich übernehmen. ;-) Wenn keiner dir den Fehler aufm Präsentierteller liefert, musst du wohl oder übel selbst ran. Die Frage sollte deshalb lauten: Wie kann ich einen deratigen Fehler finden? Dafür hab ich dir eben Tipps gegeben. ;-) mfg Link to comment Share on other sites More sharing options...
Konfusion Posted December 27, 2008 Author Report Share Posted December 27, 2008 Uff, ich hatte gehofft, das geht einfacher ;-) Danke, jetzt muss ich mir das Ganze wohl doch etwas intensiver anschauen. Servus, Robin Link to comment Share on other sites More sharing options...
holger.doerrschuck Posted January 16, 2009 Report Share Posted January 16, 2009 Hallo Konfusion, ich habe das gleiche Problem aber mit den Einheiten. Soweit habe ich auch alles erweitert - es wird aber nicht angedruckt. Hast Du eine Lösung gefunden? Irgendwo gehen die in der print_order.php gesammelten Daten in einer anderen PHP-Datei verloren. In der print_order.php im Root-Verzeichnis habe ich auch diesen Select und das smarty erweiter - jedoch ohne erfolgt. Der o.g. Thread ist scheinbar für eine alte Version - klappt also auch nicht. Meiner Meinung nach ist es ein Fehler im Programm wenn elementarte Daten wie z.B. die Abgabeeinheit nicht in der Mail steht und sollten doch vom Support gelöst und in das neuste Patch gebracht werden. Link to comment Share on other sites More sharing options...
holger.doerrschuck Posted January 18, 2009 Report Share Posted January 18, 2009 in der PHP-Datei order.php im Ordner includes/classes habe ich die Funktion getOrderData wie folgt erweitert: function getOrderData($oID) { global $xtPrice; require_once(DIR_FS_INC . 'xtc_get_attributes_model.inc.php'); $order_query = "SELECT o.products_id, o.orders_products_id, o.products_model, o.products_name, o.final_price, o.products_shipping_time, o.products_quantity, p.products_vpe, p.manufacturers_id, v.products_vpe_name FROM ".TABLE_ORDERS_PRODUCTS." o, ".TABLE_PRODUCTS_VPE." v, ".TABLE_PRODUCTS." p WHERE o.orders_id='".(int) $oID. "' AND p.products_id = o.products_id AND v.products_vpe_id = p.products_vpe"; $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_VPE_NAME' => $order_data_values['products_vpe_name'], 'PRODUCTS_VPE' => $order_data_values['products_vpe'], 'MANUFACTURERS_ID' => $order_data_values['manufacturers_id'], '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; } somit kann ich in der HTML-Datei für die Mail (order_mail.html) auf die Variable products_vpe, products_vpe_name und manufacturers_id zugreifen. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.