Anzeigen der Kundennummer unter Kunden und unter Bestellunge

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Anzeigen der Kundennummer unter Kunden und unter Bestellunge

Beitrag von ajp24 »

Hallo

Je mehr Kunden euer Shop hat desto schwerer wird es sein diese auseinanderzuhalten.
Deshalb macht es natürlich sehr viel Sinn Kundennummern einzuführer.
Der OOS hat die Möglichkeit Kundennummern zu verwalten.
Das einzige Problem ist nur, dass diese etwas versteckt dargestellt werden :)

Ich hab mir deshalb gedacht es würde sehr viel Sinn machen die Kundennummern unter Kunden/Kunden und Kunden/Bestellungen mit auszugeben.

Alle die die Idee blöd finden brauchen jetzt nicht weiterlesen :P
Das Wissen der Menschheit gehört der Welt!
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

Ausgabe der Kundennummer unter Kunden / Kunden

/admin/customers.php

1. die Zeile

Code: Alles auswählen

<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_NUMBER; ?></td>
einfügen

dann sieht es so aus....damit wird der Header der Tabelle erweitert

Code: Alles auswählen

<tr class="dataTableHeadingRow">
            <td class="dataTableHeadingContent">*</td>
            <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_NUMBER; ?></td>
            <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LASTNAME; ?></td>
            <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_FIRSTNAME; ?></td>
            <td class="dataTableHeadingContent" align="left"><?php echo HEADING_TITLE_STATUS; ?></td>
            <td class="dataTableHeadingContent" align="left"><?php echo HEADING_TITLE_LOGIN; ?></td>
            <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACCOUNT_CREATED; ?></td>
            <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
          </tr>
2. die sql Abfrage um das Feld c.customers_number erweitern

es sollte dann so aussehen

Code: Alles auswählen

$customers_result_raw = "SELECT 
                             	c.customers_id, c.customers_number, c.customers_lastname, c.customers_firstname, c.customers_email_address,
                             	c.customers_wishlist_link_id, c.customers_status, c.customers_login, c.customers_max_order,  
                             	a.entry_country_id 
                         	FROM 
                             	" . $oosDBTable['customers'] . " c LEFT JOIN 
                             	" . $oosDBTable['address_book'] . " a 
                          	ON c.customers_id = a.customers_id AND
                             	c.customers_default_address_id = a.address_book_id 
                             	" . $search . " 
                         	ORDER BY
                             	c.customers_lastname, 
                             	c.customers_firstname";
3. die Tabell um die Ausgabe der Kundennummer erweitern

Code: Alles auswählen

<td class="dataTableContent"><?php echo $customers['customers_number']; ?></td>
dann sieht es so aus

Code: Alles auswählen

<td class="dataTableContent"><?php if ($customers_statuses_array[$customers['customers_status']]['cs_image'] != '') { echo oosImage(OOS_SHOP_IMAGES . 'icons/' . $customers_statuses_array[$customers['customers_status']]['cs_image'], ''); } ?> </td>
            	<td class="dataTableContent"><?php echo $customers['customers_number']; ?></td>
            	<td class="dataTableContent"><?php echo $customers['customers_lastname']; ?></td>
            	<td class="dataTableContent"><?php echo $customers['customers_firstname']; ?></td>
            	<td class="dataTableContent" align="left"><?php echo $customers_statuses_array[$customers['customers_status']]['text'] . '(' . $customers['customers_status'] . ')' ; ?></td>
            	<td class="dataTableContent" align="center">
4. ihr müsst dann nur noch in der Datei /admin/includes/languages/deu/customers.php eine weitere Konstante einfügen

Code: Alles auswählen

define('TABLE_HEADING_NUMBER', 'Kundennummer');
Falls ihr natürlich mehr als eine Sprache nutzt muss die letzt Änderung in jeder Sprachdatei gemacht werden.
also alles sehr einfach
Das Wissen der Menschheit gehört der Welt!
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

so und jetzt noch die Ausgabe unter Kunden / Bestellungen

1. /admin/includes/languages/deu/orders.php

Code: Alles auswählen

define('TABLE_HEADING_NUMBER', 'Kundennummer');
2. /admin/orders.php

Code: Alles auswählen

 <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
          	<tr class="dataTableHeadingRow">
            	<td class="dataTableHeadingContent"></td>
            	<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_NUMBER; ?></td>
            	<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td>
            	<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td>
            	<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td>
            	<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td>
            	<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
          	</tr>
<?php
	if (isset($_GET['cID'])) {
  	$cID = oosDBPrepareInput($_GET['cID']);
  	$orders_result_raw = "SELECT 
                           	o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, 
                           	o.last_modified, o.currency, o.currency_value, s.orders_status_name, 
                           	ot.text AS order_total 
                       	FROM 
                           	" . $oosDBTable['orders'] . " o LEFT JOIN 
                           	" . $oosDBTable['orders_total'] . " ot 
                        	ON (o.orders_id = ot.orders_id), 
                           	" . $oosDBTable['orders_status'] . " s 
                       	WHERE 
                           	o.customers_id = '" . oosDBInput($cID) . "' AND
                           	o.orders_status = s.orders_status_id AND
                           	s.orders_languages_id = '" . intval($_SESSION['language_id']) . "' AND
                           	ot.class = 'ot_total' 
                        	ORDER BY
                           	orders_id DESC";
	} elseif (isset($_GET['status'])) {
  	$status = oosDBPrepareInput($_GET['status']);
  	$orders_result_raw = "SELECT 
                           	o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, 
                           	o.currency, o.currency_value, s.orders_status_name, ot.text as order_total 
                       	FROM 
                           	" . $oosDBTable['orders'] . " o LEFT JOIN 
                           	" . $oosDBTable['orders_total'] . " ot 
                        	ON (o.orders_id = ot.orders_id), 
                           	" . $oosDBTable['orders_status'] . " s 
                       	WHERE 
                           	o.orders_status = s.orders_status_id AND
                           	s.orders_languages_id = '" . intval($_SESSION['language_id']) . "' AND
                           	s.orders_status_id = '" . oosDBInput($status) . "' AND
                           	ot.class = 'ot_total' 
                       	ORDER BY
                           	o.orders_id DESC";
	} else {
  	$orders_result_raw = "SELECT 
                           	o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, 
                           	o.currency, o.currency_value, s.orders_status_name, ot.text as order_total 
                       	FROM
                           	" . $oosDBTable['orders'] . " o LEFT JOIN 
                           	" . $oosDBTable['orders_total'] . " ot 
                        	ON (o.orders_id = ot.orders_id), 
                           	" . $oosDBTable['orders_status'] . " s 
                       	WHERE 
                           	o.orders_status = s.orders_status_id AND
                           	s.orders_languages_id = '" . intval($_SESSION['language_id']) . "' AND
                           	ot.class = 'ot_total' 
                       	ORDER BY 
                           	o.orders_id DESC";
	}
	$orders_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_result_raw, $orders_result_numrows);
	$orders_result = $db->Execute($orders_result_raw);
	while ($orders = $orders_result->fields) {
  	if ((!isset($_GET['oID']) || (isset($_GET['oID']) && ($_GET['oID'] == $orders['orders_id']))) && !isset($oInfo)) {
    	$oInfo = new objectInfo($orders);
  	}

	// customers_number
  	$mposr = "SELECT c.customers_number, c.customers_lastname
                  	FROM " . $oosDBTable['customers'] . " c
                  	WHERE c.customers_id = " . $orders['customers_id'] . "
                  	ORDER BY c.customers_id";
                                       	
  	$mpor = $db->Execute($mposr);
  	$abfr = $mpor->fields;

  	if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) {
    	echo '          	<tr class="dataTableRowSelected" onmouseover="this.style.cursor=\'hand\'" onclick="document.location.href=\'' . oosLink($aFilename['orders'], oosGetAllGetParams(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n";
  	} else {
    	echo '          	<tr class="dataTableRow" onmouseover="this.className=\'dataTableRowOver\';this.style.cursor=\'hand\'" onmouseout="this.className=\'dataTableRow\'" onclick="document.location.href=\'' . oosLink($aFilename['orders'], oosGetAllGetParams(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n";
  	}
?>
            	<td class="dataTableContent"><?php echo '<a href="' . oosLink($aFilename['orders'], oosGetAllGetParams(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . oosImage(OOS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' ; ?></td>
            	<td class="dataTableContent"><?php echo $abfr['customers_number']; ?></td>
            	<td class="dataTableContent"><?php echo '<a href="' . oosLink($aFilename['customers'], 'search=' . $abfr['customers_lastname'], 'NONSSL') . '">' . $orders['customers_name'] . '</a>'; ?></td>
            	<td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td>
            	<td class="dataTableContent" align="center"><?php echo oosDatetimeShort($orders['date_purchased']); ?></td>
            	<td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td>
            	<td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id) ) { echo oosImage(OOS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . oosLink($aFilename['orders'], oosGetAllGetParams(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . oosImage(OOS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
          	</tr>
<?php
  	$orders_result->MoveNext();
	}
?>
da wird eigentlich nicht viel gemacht - eine weitere Spalte wird eingefügt eine kleine Sql Abfrage ausgeführt fertig...

Achso so und der Kundenname hat jetzt auch nen Link zum Profil des Kunden ....das ist extrem praktisch :thumbsup:

Viel Spaß damit

ajp
Zuletzt geändert von ajp24 am 19.06.2009, 01:04, insgesamt 1-mal geändert.
Das Wissen der Menschheit gehört der Welt!
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

Für alle die nicht gerne schreiben hier das ganze zum downloaden :thumbsup:
Zuletzt geändert von ajp24 am 19.06.2009, 11:53, insgesamt 1-mal geändert.
Das Wissen der Menschheit gehört der Welt!
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

[quote='ajp24',index.php?page=Thread&postID=1170#post1170]Ausgabe der Kundennummer unter Kunden / Kunden

/admin/customers.php

1. die Zeile

Code: Alles auswählen

<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_NUMBER; ?></td>
einfügen

dann sieht es so aus....damit wird der Header der Tabelle erweitert
[/quote]

Wenn du die Ausgabe Tabelle erweiterst solltest du auch die colspan berücksichtigen

Code: Alles auswählen

              <tr>
                <td colspan="7"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                  <tr>
                    <td class="smallText" valign="top"><?php echo $customers_split->display_count($customers_result_numrows, MAX_DISPLAY_SEARCH_RESULTS, $_GET['page], TEXT_DISPLAY_NUMBER_OF_CUSTOMERS); ?></td>
                    <td class="smallText" align="right"><?php echo $customers_split->display_links($customers_result_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page], oosGetAllGetParams(array('page', 'info', 'x', 'y', 'cID'))); ?></td>
                  </tr>
<?php
    if (oosNotNull($_GET['search])) {
?>
                  <tr>
                    <td align="right" colspan="7"><?php echo '<a href="' . oosLink($aFilename['customers]) . '">' . oosImageButton('reset.gif', IMAGE_RESET) . '</a>'; ?></td>
                  </tr>
<?php
    }
?> 
ich vermute colspan="8" ist dasnn sinnvoller.

schöne wäre es, wenn das Script die Konstante

Code: Alles auswählen

if (ACCOUNT_NUMBER == 'true')
bei der Ausgabe berücksichtigen würde...

Dies ist nur als Anregung gedacht. Danke für deine Optimierung! In irgrdeneiner form werden wir
deine Anregungen sicherlich in die 2.1 aufnehmen.

cu

r23
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

danke r23 - das passiert wenn man mitten in der nacht was tippt :sleeping:

OK colspan sollte jetzt richtig sein

ACCOUNT_NUMBER wird auch berücksichtigt (die Ausgabe der Kundennummer erfolgt jetzt also nur wenn in der Konfiguration die Nutzung der Kundennummer auch auf true steht )

Gruß

ajp
Zuletzt geändert von ajp24 am 19.06.2009, 13:24, insgesamt 4-mal geändert.
Das Wissen der Menschheit gehört der Welt!
Antworten