JavaScript seems to be disabled in your browser.

You must have JavaScript enabled in your browser to utilize the functionality of this website. Click here for instructions on enabling javascript in your browser.


osCommerce Tipps & Tricks

Hier erfahren Sie wie Sie Ihr osCommerce Shop visuell und funktionell verbessern können.
Da es unterschiedliche Versionen auf dem Markt gibt, möchten wir gleich darauf hinweisen, dass wir den Quellcode der Version 2.3.4 zum Thema genommen haben.


PL-Version 2.3.4 | PL-Version 2.3.4-1 | PL-Shop - Powered by osCommerce
Onlineshop-Systeme die für alle Geschäftsbereiche geeignet sind. | Full-SSL !!!
Hierbei handelt es sich um Bestellsysteme der Extraklasse, die an die europäische Gesetzvorgaben angepasst sind.
Programmierung und Grafikarbeiten - Yellow-Pixel | Copyright © PL-Systeme.de

Wie füge ich ein Mengenfeld in die Produkt-Infoseite ein.
"osCommerce" "catalog/product_info.php"
Hier gibt es zwei Dateien die bearbeitet werden müssen.
Es handelt sich um die Dateien "product_info.php" sowie die "application_top.php" .


Als aller erstes erstellen Sie eine Kopie der beiden Dateien, die wir bearbeiten werden in einem separaten Ordner.
Nach dem Sie diese beiden Dateien gesichert haben fangen wir mit der Produkt-Infoseite, "product_info.php" an.
Zu finden im Verzeichnis: "catalog/"


°1. Hier suchen wir folgenden Code:

<span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>

Hierbei handelt es sich um den Button der das Produkt zum Warenkorb hinzufügt.
Jetzt möchten wir, dass vor dem Button ein Mengenfeld verfügbar ist wo der Kunde, die entsprechenden Werte eingeben kann.
Dazu ändern wir den obigen Code wie folgt und speichern anschliessend die Datei.

<span class="buttonAction"><?php echo '<span class="text">' . TEXT_ENTER_QUANTITY . ' ' . tep_draw_input_field('cart_quantity', '1', 'size="5" style="vertical-align:middle;"') . '</span> ' . tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>


Jetzt sehen wir uns die Datei "application_top.php" an. Zu finden in "catalog/includes/"


°2. Hier suchen wir folgenden Code:

// customer adds a product from the products page
case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
$attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes)) + $HTTP_POST_VARS['cart_quantity'], $attributes);
}


In Version 2.3.4 ist die Funktion bereits vorhanden, die benötigt wird um das Mengenfeld in der Produkt-Infoseite nutzen zu können.
Daher sollten wir keine Änderungen vornehmen.
Sollte es in Ihrem Fall nicht zutreffen und der Code sieht folgendermassen aus:

// customer adds a product from the products page
case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id'])) + $HTTP_POST_VARS['cart_quantity'], $HTTP_POST_VARS['id']);
}


So handelt es sich noch um den Code aus der Version 2.3.1.
Ersetzen Sie diesen einfach mit dem obigen Code und speichern die Datei.

Übertragen Sie jetzt beide Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.
Wie ergänze und verschönere ich die Ansicht der Seite für Kundenkonto
"osCommerce" "catalog/account.php".
Dazu bearbeiten wir zwei Dateien.
Beide Dateien mit der Bezeichnung: "account.php" zu finden in:
"catalog/" und im Sprachverzeichnis "catalog/includes/languages/german/"


Hier bieten wir dem Kunden, nach dem einloggen in sein Kundenkonto, eine direkte Ansicht seiner persönlichen Daten.
Name, Nachname, Anschrift, Kundennummer, E-mailadresse, Telefonnummer.


Als aller erstes erstellen Sie eine Kopie der beiden Dateien, die wir bearbeiten werden in einem separaten Ordner.


°1. Wir suchen folgenden Code in der Datei: "catalog/account.php"

require(DIR_WS_INCLUDES . 'template_top.php');

danach fügen wir folgende Datenbankabfrage ein:

$addresses_query = tep_db_query("select address_book_id, customers_id, entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' order by firstname, lastname");
$addresses = tep_db_fetch_array($addresses_query);



in der gleichen Datei suchen wir:

<h1><?php echo HEADING_TITLE; ?></h1>

danach fügen wir folgenden Code ein:

<div class="ui-widget infoBoxContainer"><hr><?php echo stripslashes($addresses['firstname'] . ' ' . $addresses['lastname'] . ' &nbsp<font color="#ff0000"> | </font>&nbsp ' . $addresses['street_address'] . ' &nbsp<font color="#ff0000"> | </font>&nbsp ' . $addresses['postcode'] . ' ' . $addresses['city']);?>
<p><?php echo ENTRY_EMAIL_ADDRESS; ?>&nbsp<?php echo stripslashes($account['customers_email_address']);?> &nbsp<font color="#ff0000"> | </font> &nbsp<?php echo ENTRY_TELEPHONE_NUMBER; ?>&nbsp<?php echo stripslashes($account['customers_telephone']);?> &nbsp<font color="#ff0000"> | </font> &nbsp<?php echo TEXT_CUSTOMMER_NR; ?>&nbsp<?php echo stripslashes($addresses['customers_id']);?><hr></div>


Speichern Sie diese Datei.


°2. Jetzt öffnen wir die Sprachdatei: "catalog/includes/languages/german/account.php" und suchen folgenden Code:

?>

davor fügen wir ein:

define('TEXT_CUSTOMMER_NR', 'Kundennummer: ');

Speichern Sie diese Datei.

Übertragen Sie beide Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.
Wie verhindere ich einen Angriff mittels "http Injection" auf meinen "osCommerce" Shop.
Hierbei wird versucht durch Parameter mit "http:" fremden Code in Ihrem Shop zu installieren.
Dies kann zu schwerwiegenden Fehlern führen und ist unter Umständen für die Rechner aller Besucher Ihrer Webseiten gefährlich.
Mittels einer Injaction können sogenannte Trojaner in ihrem Quellcode untergebracht werden die enormen Schaden einrichten.

Um dem vor zu beugen leiten wir jeden, der mit einem "http" Parameter versucht Ihre Seite an zu greifen einfach um.

Dazu öffnen wir die Datei: ".htaccess" zu finden in "catalog/"

Am ende der Datei fügen wir folgenden Code ein:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^.+http
RewriteRule .* - [L,F]


Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Benutzername und Passwort in der Registrierungsmail mitsenden.
"osCommerce" "catalog/create_account.php"
Hier ermöglichen wir Ihrem System, das senden von Benutzernamenn und dem dazugehörigem Passwort.
In der Willkommens-Email an Kunden nach dem anlegen eines neuen Kundenkontos werden diese Daten integriert.


Dazu bearbeiten wir drei Dateien.
Beide Dateien mit der Bezeichnung: "create_account.php" und "german.php" zu finden in:
"catalog/create_account.php", die dazu gehörende Sprachdatei: "catalog/includes/languages/german/create_account.php"
sowie die Sprach-Steuerungsdatei "catalog/includes/languages/german.php"


Als aller erstes erstellen Sie eine Kopie der beiden Dateien, die wir bearbeiten werden in einem separaten Ordner.

°1. Wir öffnen die Datei in: "catalog/create_account.php" und suchen um die Zeile 248 folgenden Code:

$email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;

Um den Benutzernamen und das Passwort in dieser Email mitsenden zu können müssen wir den obigen Code folgendermassen ändern:
Ersetzen Sie also den obigen Code mit diesem.

$email_text .= EMAIL_WELCOME . EMAIL_USERNAME .EMAIL_PASSWORD . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;

Speichern Sie diese Datei.


°2. Jetzt öffnen wir die Sprachdatei: "catalog/includes/languages/german/account.php" und suchen folgenden Code:

define('EMAIL_WARNING', ....');

Wir ersetzen den gesamten Abschnitt mit:

define('EMAIL_WARNING', '');


Wir suchen weiteren Code:

define('EMAIL_TEXT', '....');

Ersetzen den gesamten Abschnitt mit:

define('EMAIL_TEXT', ' ******* SPEICHERN SIE DIESE EMAIL ******* ' . "n" . 'Diese enthält persönliche, vertrauliche Angaben.' . "nn" . 'Sie können jetzt unseren <strong>Online-Service</strong> nutzen. Der Service bietet unter anderem:' . "nn" . '<li><strong>Kundenwarenkorb</strong> - Jeder Artikel bleibt registriert bis Sie zur Kasse gehen, oder die Produkte aus dem Warenkorb entfernen.' . "n" . '<li><strong>Vorherige Bestellungen</strong> - Sie können jederzeit Ihre vorherigen Bestellungen überprüfen.' . "n" . '<li><strong>Meinungen über Produkte</strong> - Teilen Sie Ihre Meinung zu unseren Produkten mit anderen Kunden.' . "nn");


Speichern Sie die Datei.


°3. Jetzt öffnen wir die Sprach-Steuerungsdatei: "catalog/includes/languages/german.php" und suchen folgenden Code:

// header text in includes/header.php

Davor fügen wir ein:

define('EMAIL_USERNAME', 'Ihr Benutzername: ' . stripslashes($HTTP_POST_VARS['email_address']) . "nn");
define('EMAIL_PASSWORD', 'Ihr Passwort: ' . stripslashes($HTTP_POST_VARS['password']) . "nn");



Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Wie blende ich den Produktnamen in der "osCommerce" Führungsleiste "breadcrumb".
In osCommerce wird als Standard die Artikelnummer in der Führungsleiste angezeigt.
Hier sehen Sie wie diese geändert werden kann damit anstatt der Artikelnummer, der Produktname erscheint.

Dazu bearbeiten wir eine Datei.
Datei mit der Bezeichnung: "application_top.php" zu finden in:
"catalog/includes/.

Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.


Wir öffnen die Datei und suchen folgenden Code um die Zeile 483:

$model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");

und ersetzen den obigen Code mit:

$model_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'and language_id = '" . (int)$languages_id . "'");


Weiter suchen wir folgenden Code um die Zeile 486:

$breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id']));

ersetzen diesen mit folgendem Code:

$breadcrumb->add($model['products_name'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' .
$HTTP_GET_VARS['products_id']));



Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Anfrageformular für Ihren "osCommerce" Online-Shop.
Sie benötigen ein separates Anfrageformular für Ihre Kunden ?
Kein Problemm. [ >> Hier << ] stelle ich Ihnen, ein bereits fertiges Formular zum Download bereit.

Alle Felder mit Kundenangaben müssen angegeben werden bevor das Formular abgesendet wird.
Fehlen Angaben, so wird dem Kunden eine Fehlermeldung angezeigt, dass diese gemacht werden müssen.
Das bestätigen der Datenschutzbestimmungen ist ebenfalls integriert. Dek Kunde muss die Datenschutzbestimmungen verstanden zu haben bestätigen, bevor das Formular abgeschickt werden kann.


Entpacken Sie diesen Ordner und übertragen Sie die Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server

Anschliessend bearbeiten wir lediglich nur drei Dateien.
Datei mit der Bezeichnung: "filenames.php", "footer.php" zu finden in: "catalog/includes/.
und die Datei "german.php" zu finden in: "catalog/includes/languages/"


Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.


Wir öffnen die Datei "filenames.php"und suchen folgenden Code:

// define the filenames used in the project

Gleich unterhalb fügen wir folgendes ein:

define('FILENAME_ANFRAGEFORMULAR', 'anfrageformular.php');

Speichern Sie diese Datei.


Wir öffnen jetzt die Datei "footer.php" und suchen folgenden Code:

<div class="grid_24 footer">

und gleich unterhalb fügen wir ein:

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr height="8">
<td height="8"></td>
</tr>
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td><?php echo '<a href="' . tep_href_link(FILENAME_ANFRAGEFORMULAR) . '">' . MODULE_BOXES_INFORMATION_ANFRAGEFORMULAR . '</a>'; ?></td>
<td width="15"></td>
<td></td>
</tr>
</table>
</td>
</tr>
<tr height="15">
<td height="15"></td>
</tr>
</table>


Speichern Sie diese Datei.


Wir öffnen die Datei "german.php" und suchen folgenden Code:

// header text in includes/header.php

und davor fügen wir ein:

define('MODULE_BOXES_INFORMATION_ANFRAGEFORMULAR', 'Anfrageformular');

Speichern Sie diese Datei.



***************

OPTIONAL !!!

Falls Sie das Anfrageformular nur registrierten Kunden zur Verfügung stellen möchten.

Öffnen Sie die Datei "anfrageformular.php" im "catalog/" und suchen folgenden Code:

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_ANFRAGEFORMULAR);

direkt oberhalb fügen Sie folgendes ein:

if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot();
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
}



Speichern Sie diese Datei.

Übertragen Sie die Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.
Wie gehe ich mit der Funktion der Banner in meinem "osCommerce" Shop um ?
Als standard ist es vordefiniert, dass Banner im Fussbereich Ihres osCommerce-Shops eingeblendet werden können. Sie müssel lediglich einen neuen Banner definieren. "Administration => Hilfsprogramme => Bannermanager" Um diesen Bammer anzeigen zu lassen muss die Bannergruppe angegeben werden. Um diese Gruppe erkennen zu können und den Banner am Fussbereich erscheinen zu lassen muss hier die Gruppe "footer" definiert werden. Dazu ist folgender Code vorgesehen:

if ($banner = tep_banner_exists('dynamic', 'footer')) {

Sie können jedoch verschiedene Gruppen zuweisen um weitere Banner in Ihrem Shop zu integrieren. Als Beispiel für einen Bammer im Kopfbereich Ihrer Seite. Die Gruppe die dafür definiert werden muss ist: "header"

Folgenden Code einfach an der Stelle im "header.php" einfügen wo der Banner erscheinen soll. Zu finden in: "catalog/includes/
Als aller erstes erstellen Sie eine Kopie der Datei, die Sie bearbeiten werden in einem extra Ordner.

Hier der Code der es möglich macht:
if ($banner = tep_banner_exists('dynamic', 'header')) { echo tep_display_banner('static', $banner); }

Speichern Sie die Datei die Sie Bearbeiten. Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Wie wandle ich die ersten Buchstaben in grosse um beim anlegen vom Kundenkonto
"osCommerce" "create_account.php".
In osCommerce wird als Standard beim anlegen eines neuen Kundenkontos alles genau so übernommen wie der Kunde es auch in die entsprechenden Felder eingibt. Sollte jedoch z. B., der Name oder der Nachname mit einem kleinen Buchstaben anfangen weil sich der Kunde vertippt hat, können wir dem vorbeugen und diesen in einen grossen Buchstaben automatisch umwandeln, so dass alle notwendigen Namenswörter von vorn hinein in gross übernommen werden.


Dazu bearbeiten wir eine Datei.
Datei mit der Bezeichnung: "create_account.php" zu finden in:
"catalog/.

Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.


Wir öffnen die Datei "create_account.php" und suchen folgenden Code um die Zeile 29:

$firstname = tep_db_prepare_input($HTTP_POST_VARS['firstname']);
$lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']);
if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input($HTTP_POST_VARS['dob']);
$email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input($HTTP_POST_VARS['company']);
$street_address = tep_db_prepare_input($HTTP_POST_VARS['street_address']);
if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input($HTTP_POST_VARS['suburb']);
$postcode = tep_db_prepare_input($HTTP_POST_VARS['postcode']);
$city = tep_db_prepare_input($HTTP_POST_VARS['city']);
if (ACCOUNT_STATE == 'true') {
$state = tep_db_prepare_input($HTTP_POST_VARS['state']);
if (isset($HTTP_POST_VARS['zone_id'])) {
$zone_id = tep_db_prepare_input($HTTP_POST_VARS['zone_id']);
} else {
$zone_id = false;
}
}
$country = tep_db_prepare_input($HTTP_POST_VARS['country']);
$telephone = tep_db_prepare_input($HTTP_POST_VARS['telephone']);
$fax = tep_db_prepare_input($HTTP_POST_VARS['fax']);
if (isset($HTTP_POST_VARS['newsletter'])) {
$newsletter = tep_db_prepare_input($HTTP_POST_VARS['newsletter']);
} else {
$newsletter = false;
}
$password = tep_db_prepare_input($HTTP_POST_VARS['password']);
$confirmation = tep_db_prepare_input($HTTP_POST_VARS['confirmation']);


ersetzen den obigen Code mit:

$firstname = tep_db_prepare_input(ucwords($_POST['firstname']);
$lastname = tep_db_prepare_input(
ucwords($_POST['lastname']);
if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input(
$_POST['dob']);
$email_address = tep_db_prepare_input(
$_POST['email_address']);
if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input(
ucwords($_POST['company']);
$street_address = tep_db_prepare_input(
ucwords($_POST['street_address']);
if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input(
$_POST['suburb']);
$postcode = tep_db_prepare_input(
$_POST['postcode']);
$city = tep_db_prepare_input(
ucwords($_POST['city']);
if (ACCOUNT_STATE == 'true') {
$state = tep_db_prepare_input(
ucwords($_POST['state']);
if (isset($_POST['zone_id'])) {
$zone_id = tep_db_prepare_input(
$_POST['zone_id']);
} else {
$zone_id = false;
}
}
$country = tep_db_prepare_input(
ucwords($_POST['country']);
$telephone = tep_db_prepare_input(
$_POST['telephone']);
$fax = tep_db_prepare_input(
$_POST['fax']);
if (isset(
$_POST['newsletter'])) {
$newsletter = tep_db_prepare_input(
$_POST['newsletter']);
} else {
$newsletter = false;
}
$password = tep_db_prepare_input(
$_POST['password']);
$confirmation = tep_db_prepare_input(
$_POST['confirmation']);


Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Wie ergänze ich die Anrede für Kunden um Herr / Frau
"osCommerce" Startseite. "catalog/index.php".
Dazu bearbeiten wir zwei Dateien.
Beide Dateien mit der Bezeichnung: "index.php" zu finden in:
"catalog/" und im Sprachverzeichnis "catalog/includes/languages/german.php"


Hier ändern wir den Begrüssungstext für Ihre Kunden.
Wir fügen die direkte Anrede geschlechtspezifisch hinzu.

Nach dem Einloggen bekommt Ihr Kunde folgenden Text angzeigt:

"Schön, dass Sie wieder da sind (Frau xxx xxx,) oder (Herr xxx xxx,) willkommen zurück."


Als aller erstes erstellen Sie eine Kopie der beiden Dateien, die wir bearbeiten werden in einem separaten Ordner.


°1. Wir suchen folgenden Code in der Datei: "catalog/index.php"

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);

danach fügen wir folgende Datenbankabfrage ein:

// Ermittlung aller Kundendaten
$addresses_query = tep_db_query("select address_book_id, customers_id, entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' order by firstname, lastname");
$addresses = tep_db_fetch_array($addresses_query);

// Ermittlung Anrede auch für Bestätigungsmail
$plv_anrede_gender_query = tep_db_query("SELECT customers_gender FROM " . TABLE_CUSTOMERS . " WHERE customers_id = '" . $customer_id . "'");
$plv_anrede_gender = tep_db_fetch_array($plv_anrede_gender_query);
$gender = $plv_anrede_gender['customers_gender'];

if (ACCOUNT_GENDER == 'true') {
if ($gender == 'm') {
$gender_text = MALE;
} else {
$gender_text = FEMALE;
}
}

Wir suchen folgenden Code in der gleichen Datei:

<?php echo tep_customer_greeting(); ?>

ersetzen den obigen Code mit:

<?php echo TEXT_GREETING_USER . '' . $gender_text . ' ' . $addresses['firstname'] . ' ' . $addresses['lastname'] . TEXT_GREETING_USER_FOLOW; ?>

Speichern Sie diese Datei.


°2. Jetzt öffnen wir die Sprachdatei: "catalog/includes/languages/german.php"

Wir suchen folgenden Code:

?>

und davor fügen wir folgenden Code ein:

define('TEXT_GREETING_USER', 'Schön, dass Sie wieder da sind ');
define('TEXT_GREETING_USER_FOLOW', ', willkommen zurück.');


Speichern Sie diese Datei.

Übertragen Sie beide Dateien mittels FTP in die entsprechende Verzeichnisse auf Ihrem Server und Sie haben es geschafft.
Wie ermögliche ich dem Kunden eine bereits getätigte Bestellung erneut zu tätigen.
"osCommerce" "catalog/account_history_info.php"
Hier gibt es vier Dateien die bearbeitet werden müssen.
Es handelt sich um die Dateien "account_history_info.php", die "application_top.php", die "general.php" und die "german.php" .


Als aller erstes erstellen Sie eine Kopie der Dateien, die wir bearbeiten werden in einem separaten Ordner.


catalog/account_history_info.php
Finde:

<?php
if (DOWNLOAD_ENABLED == 'true') include(DIR_WS_MODULES . 'downloads.php');
?>

davor einfügen:

<div class="buttonSet">
<?php
echo tep_draw_form('order_reorder', tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $_GET['order_id'] . '&action=reorder', 'SSL'));
echo '<td valign="middle" align="center">' . tep_draw_button(IMAGE_BUTTON_REORDER, 'triangle-1-w', 'Re-Order','','update_button') . '</td>';
echo '</form>';
?>
</div>


catalog/includes/application_top.php
Finde:

$cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
}
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;


danach einfügen:

case 'reorder' : $reorder_result = tep_reorder($_GET['order_id']);
if ($reorder_result == '') {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING));
}
break;



catalog/includes/functions/general.php
Finde am Ende der Datei:

?>

davor einfügen:

function tep_reorder ($orders_id) {
global $cart, $languages_id;

$result = '';
$ordered_products_query = tep_db_query("select op.products_id,
op.orders_products_id,
op.products_quantity,
p.products_status,
p.products_model,
p.products_quantity as stock,
pd.products_name
from " . TABLE_ORDERS_PRODUCTS . " op, " .
TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd
where op.orders_id = '" . $orders_id . "' and
op.products_id = p.products_id and
p.products_id = pd.products_id and
pd.language_id = '" . $languages_id . "'");

while ($ordered_product = tep_db_fetch_array($ordered_products_query)) {
if ($ordered_product['products_status'] == '1') {
if (!tep_has_product_attributes($ordered_product['products_id'])) {
if ($ordered_product['stock'] >= ($cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity'])) {
$cart->add_cart($ordered_product['products_id'], $cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity']);
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock<br>';
}
} else {
$attributes = array();
$attributes_count = 0;
$attributes_query = tep_db_query("select po.products_options_id ,
pov.products_options_values_id
from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " opa,
" . TABLE_PRODUCTS_OPTIONS . " po,
" . TABLE_PRODUCTS_OPTIONS_VALUES . " pov,
" . TABLE_PRODUCTS_ATTRIBUTES . " pa
where opa.orders_id = '" . $orders_id . "' and
opa.orders_products_id = '" . $ordered_product['orders_products_id'] . "' and
po.products_options_name = opa.products_options and
po.language_id = '" . $languages_id . "' and
pa.options_id = po.products_options_id and
pa.options_values_id = pov.products_options_values_id and
pa.products_id = '" . $ordered_product['products_id'] . "' and
pov.products_options_values_name = opa.products_options_values and
pov.language_id = '" . $languages_id . "'");

while ($attribute = tep_db_fetch_array($attributes_query)) {
$attributes[$attribute['products_options_id']] = $attribute['products_options_values_id'];
$attributes_count++;
}

if ($attributes_count < 1) {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Attributes changed<br>';
}

if ($ordered_product['stock'] >= ($cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'])) {
$cart->add_cart($ordered_product['products_id'], $cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'], $attributes);
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock (attr)<br>';
}
}
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not Available<br>';
}
}
return $result;
}


catalog/includes/languages/german.php

Finde:

define('IMAGE_BUTTON_ADD_ADDRESS', 'Neue Adresse');

davor einfügen:

define('IMAGE_BUTTON_REORDER', 'Erneut bestellen');


Speichern Sie diese Dateien.

Übertragen Sie jetzt die Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.
Wie übergebe ich Produkte trotz Attribute direkt in den Warenkorb.
"osCommerce" "catalog/includes/functions/general.php"
Hier gibt es eine Datei die bearbeitet werden muss.
Es handelt sich um die Dateien "general.php" .


Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.

catalog/includes/functions/general.php

Finde:

// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return true;
} else {
return false;
}
}


ersetze mit:

/*
// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return true;
} else {
return false;
}
}
*/
// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return
false;
} else {
return false;
}
}



Speichern Sie diese Dateie.

Übertragen Sie jetzt die Datei mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.


************************************

OPTIONAL !!!

Diese Funktion kann auch über die Datenbank gesteuert werden.

Sichern Sie als erstes die Datenbank.

Über den Befehl SQL einfügen: ( dabei achten Sie auf die Nummerierung der Configurations_ID in unserem Fall die Nummer "914" )
Kommt es zu einer Fehlermeldung muss diese abgeändert werden !!!

INSERT INTO `configuration` VALUES (914, 'Direktkauf ermöglichen', 'SHOW_BUY_NOW_PROD_ATTRIB', 'true', 'Direktkauf trotz Atribute ermöglichen', 1, 158, '2006-08-12 19:45:03', '2003-08-14 00:25:08', NULL, 'tep_cfg_select_option(array(''false'', ''true''),');


catalog/includes/functions/general.php

Finde:

// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return true;
} else {
return false;
}
}


ersetze mit:

if (SHOW_BUY_NOW_PROD_ATTRIB == 'true') {
// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return
false;
} else {
return false;
}
}
} else{
// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);
if ($attributes['count'] > 0) {
return true;
} else {
return false;
}
}
}


Speichern Sie diese Dateie.

Übertragen Sie jetzt die Datei mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.


Loggen Sie sich jetzt in Ihr Administrationsbereich ein.
Administration => Store => Direktkauf ermöglichen
Wie zeige ich an, dass ein Produkt breits im Warenkorb vorhanden ist.
"osCommerce" "catalog/product_info.php"
Hier gibt es eine Datei die bearbeitet werden muss.
Es handelt sich um die Dateien "product_info.php" .


Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.

catalog/product_info.php

Finde:

<h1><?php echo $products_name; ?>

davor einfügen:

<?php
// to add a tick when the item is in the cart
$products = $cart->get_products();
$in_cart = '';
for ($i=0, $n=sizeof($products); $i<$n; $i++) {
$first = current(explode("{", $products[$i]['id']));
if ($first == $product_info['products_id']) {
$in_cart = '<span class="ui-icon ui-icon-check" style="display: inline-block; vertical-align: middle;"></span>';
}
}
?>



Finde:

<?php echo $products_name; ?>

ersetze mit:

<?php echo $products_name; ?><?php echo $in_cart; ?>


Speichern Sie diese Datei.

Übertragen Sie die Dateien mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Wie sichere ich zusätzlich mein Administrationsbereich. "osCommerce - Admin".
Sie möchten eine Benachrichtigungs-Email bekommen sobald ein Login in Ihrem Administrationsbereich vorgenommen wird ?
Diese Funktion kann über die Datenbank gesteuert werden

Dazu bearbeiten wir zwei Dateien mit der Bezeichnung: "login.php" und "german.php" zu finden in:
"catalog/admin/login.php" und "catalog/admin/includes/languages/german.php".
Als aller erstes erstellen Sie eine Kopie der Dateien, die wir bearbeiten werden in einem separaten Ordner und machen ein Backup Ihrer Datenbank.

Wir führen ein SQL Befehl in der Datenbank aus.

Über den Befehl SQL einfügen: ( dabei achten Sie auf die Nummerierung der Configurations_ID in unserem Fall die Nummer "2017" )
Kommt es zu einer Fehlermeldung muss diese abgeändert werden !!!

INSERT INTO `configuration` VALUES (2017, 'Admin Login Email', 'ADMIN_LOGIN_MAIL', 'true', 'Möchten Sie eine Email erhalten sobald ein Login im Administrationsbereich vorgennomen wird ?', 1, 158, '2006-08-12 19:45:03', '2003-08-14 00:25:08', NULL, 'tep_cfg_select_option(array(''false'', ''true''),');


Wir suchen folgenden Code in der Datei: "catalog/admin/login.php"

require(DIR_WS_INCLUDES . 'template_top.php');
?>


danach fügen wir folgenden Code ein:


<?php
if (ADMIN_LOGIN_MAIL == 'true') {
// get ip and infos
$ip=getenv('REMOTE_ADDR');
$ip = $_SERVER['REMOTE_ADDR'];
$host = @gethostbyaddr($ip);
$referer = $_SERVER['HTTP_REFERER'];
$good_host_1 = '/Ihr Zugangshost.xxx/';
$admin_domain = STORE_OWNER;
$store_admin = STORE_NAME;

// build report
$report = ADMINMAIL_TEXT_01 . date("D j M Y G:i:s") . ADMINMAIL_TEXT_02 . $store_admin . ADMINMAIL_TEXT_03;
$report .= "nn" . ADMINMAIL_TEXT_04 . $ip;
$report .= "n" . ADMINMAIL_TEXT_05 . $host;
$report .= "nn" . ADMINMAIL_TEXT_06 . HTTP_SERVER . DIR_WS_ADMIN;
// mail report
if (!preg_match($good_host_1,$host)) {
tep_mail($admin_domain, STORE_OWNER_EMAIL_ADDRESS, ADMINMAIL_TEXT_07, stripslashes($report), 'Admin-Area', $from_email_address, '');
}
} else{
}
?>



Wir suchen folgenden Code in der Datei: "catalog/admin/includes/languages/german.php"

?>

davor fügen wir folgenden Code ein:

define('ADMINMAIL_TEXT_01', 'Am ');
define('ADMINMAIL_TEXT_02', '<br> wurde ein Zugang zum Administrationsbereich von ');
define('ADMINMAIL_TEXT_03', 'gestartet. ');
define('ADMINMAIL_TEXT_04', 'Loginnutzer IP-Adresse: ');
define('ADMINMAIL_TEXT_05', 'Loginnutzer Hostname: ');
define('ADMINMAIL_TEXT_06', 'Administrationsbereich: ');
define('ADMINMAIL_TEXT_07', '[ Report ] Admin-Login ');


Speichern Sie die Dateien.

Übertragen Sie die Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und Sie haben es geschafft.


Loggen Sie sich jetzt in Ihr Administrationsbereich ein.
Administration => Store => "Admin Login Email = true"
Wie bekomme ich eine Liste aller Bestellungen eines Kunden "osCommerce" Administration.
Dazu bearbeiten wir eine Datei.
Datei mit der Bezeichnung: "orders.php" zu finden in:
"catalog/admin/.

Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.

Wir öffnen die Datei "orders.php" und suchen folgenden Code:

} else {
$orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
}


und ersetzen diesen mit:

} else {
$orders_query_raw = "select o.orders_id
, o.customers_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
}


Weiter suchen wir folgenden Code:

$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>');


und ersetzen diesen mit:

$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('cID', 'action')) . 'cID=' . $oInfo->customers_id) . '">' . tep_image_button('button_orders.gif', IMAGE_ORDERS) . '</a>');


Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.
Wie bekomme ich den Button "Bewertung schreiben" auf die product_info.php Seite "osCommerce" Shopbereich.
Dazu bearbeiten wir eine Datei.
Datei mit der Bezeichnung: "product_info.php" zu finden in:
"catalog/.

Als aller erstes erstellen Sie eine Kopie der Datei, die wir bearbeiten werden in einem separaten Ordner.

Wir öffnen die Datei "product_info.php" und suchen folgenden Code:

echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()));

und ersetzen diesen mit:

echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews_count['count'] > 0) ? ' (' . $reviews_count['count'] . ')' : ''), 'comment', tep_href_link('product_reviews.php', tep_get_all_get_params())) . '&nbsp;' . tep_draw_button(IMAGE_BUTTON_WRITE_REVIEW . (($reviews_count['count'] > 0) ? ' (' . $reviews_count['count'] . ')' : ''), 'fa fa-commenting', tep_href_link('product_reviews_write.php', tep_get_all_get_params()), 'primary', NULL, 'btn-success');

Speichern Sie diese Datei.

Übertragen Sie die Datei mittels FTP in den entsprechenden Verzeichnis auf Ihrem Server und Sie haben es geschafft.