Zum Inhalt springen

XTCommerce + Typo3 = Single login möglich?

Erstellt am 1. Juli 2007 · 5 Antworten · letzte Antwort am 2. Juli 2007

Tags: Frontend-Benutzer, Frage

nobbi ·

Hallo,
ich stehe gerade vor der Frage "wieviel" Typo3 ich für meine Kunden + Projekte einsetzen kann.

Eine Kombination, die bei mir immer 100% auftauchen wird ist: "Normale" Webpräsenz + Webshop

Für Webshops möchte ich immer XTCommerce benutzen (div. Gründe, u.a. Anschlussmöglichkeiten an Warenwirtschaftsprogramme).
Für den Firmenauftritt immer Typo3 (also für Infos über Leistungen, Über uns, Kontaktform, Standorte - Content pages).

Vom Look her gesehen, würde ich für XTCommerce ein neues Template anlegen/angleichen, und dann per Subdomain an Typo3 anbinden. (Iframe ist nicht ganz so gut, da XTCommerce mir für jedes Produkt eine extra Seite produziert - gut für Search Engines).
Allerdings: Was wichtig wäre, wäre ein Single Login, also kein zwei verschied. Logins.

Ich denke, daß meine Kunden kein Problem hätten, sich ins Typo Backend einzuloggen um dort einen auffälligen Button "SHOP-ADMIN" zu drücken. Nach dem Klick öffnet sich das Admin Panel von XTCommerce und es kann nach Herzens Lust der Shop konfiguriert werden.
Es müsste leichter sein, XTCommerce "aufzubohren" als andersrum.

Hier das html der XTCommerce login.php:

<form id="login" action="http://domain.com/login.php/action/process/XTCsid/9pnrtpe88qicijpfnip7aqdd37" method="post"><input type="hidden" name="XTCsid" value="9pnrtpe88qicijpfnip7aqdd37" />
 
<table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td style="border-bottom: 1px solid; border-color: #cccccc;" class="main"><strong>Ich bin bereits Kunde</strong></td>
          </tr>
          <tr>
            <td class="main"><p><br /></p>
              <table width="100" border="0" cellspacing="2" cellpadding="0">
                <tr>
                  <td class="main"><strong>eMail-Adresse:</strong> </td>
                  <td><input type="text" name="email_address" /></td>
                </tr>
                <tr>
                  <td class="main"><strong>Passwort:</strong></td>
                  <td><input type="password" name="password" maxlength="40" /></td>
                </tr>
              </table>
                            <p><input type="image" src="templates/pc_plus/buttons/german/button_login.gif?XTCsid=9pnrtpe88qicijpfnip7aqdd37" alt="Anmelden" title=" Anmelden " /></p></td>
          </tr>
        </table>
      </form>

Und der Vollständigkeit halber - hier der php code der XTCommerce Login Page:

if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
	$email_address = xtc_db_prepare_input($_POST['email_address']);
	$password = xtc_db_prepare_input($_POST['password']);

	// Check if email exists
	$check_customer_query = xtc_db_query("select customers_id, customers_vat_id, customers_firstname,customers_lastname, customers_gender, customers_password, customers_email_address, customers_default_address_id from ".TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($email_address)."' and account_type = '0'");
	if (!xtc_db_num_rows($check_customer_query)) {
		$_GET['login'] = 'fail';
		$info_message = TEXT_NO_EMAIL_ADDRESS_FOUND;
	} else {
		$check_customer = xtc_db_fetch_array($check_customer_query);
		// Check that password is good
		if (!xtc_validate_password($password, $check_customer['customers_password'])) {
			$_GET['login'] = 'fail';
			$info_message = TEXT_LOGIN_ERROR;
		} else {
			if (SESSION_RECREATE == 'True') {
				xtc_session_recreate();
			}

			$check_country_query = xtc_db_query("select entry_country_id, entry_zone_id from ".TABLE_ADDRESS_BOOK." where customers_id = '".(int) $check_customer['customers_id']."' and address_book_id = '".$check_customer['customers_default_address_id']."'");
			$check_country = xtc_db_fetch_array($check_country_query);

			$_SESSION['customer_gender'] = $check_customer['customers_gender'];
			$_SESSION['customer_first_name'] = $check_customer['customers_firstname'];
			$_SESSION['customer_last_name'] = $check_customer['customers_lastname'];
			$_SESSION['customer_id'] = $check_customer['customers_id'];
			$_SESSION['customer_vat_id'] = $check_customer['customers_vat_id'];
			$_SESSION['customer_default_address_id'] = $check_customer['customers_default_address_id'];
			$_SESSION['customer_country_id'] = $check_country['entry_country_id'];
			$_SESSION['customer_zone_id'] = $check_country['entry_zone_id'];

			$date_now = date('Ymd');

			xtc_db_query("update ".TABLE_CUSTOMERS_INFO." SET customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 WHERE customers_info_id = '".(int) $_SESSION['customer_id']."'");

// danach ist User eingeloggt 
// ein paar Shopping Cart Sachen folgen - für Admin nicht relevant

Wäre sowas machbar - schon mal gemacht?
Irgendwelche Ideen?
:o

Falls noch nichts verhanden ist:
Wer hätte Lust, das zusammen mit mir auszutesten/entwickeln und dann die Ergebnisse hier im Forum zu veröffentlichen?

-----
Gut, ein bisschen Infos gibts schon:
Cross-Selling / Listing
http://t3n.yeebase.com/magazin/ausgaben/artikel/typo3-und-xtcommerce/

Die eindeutige XTCommerce - Reaktion:
http://www.xt-commerce.com/forum/showthread.php?t=8066

nobbi ·

o.O
...ähh, ja also... es gibt jawohl wirklich für alles ne Extension!
Sorry, da hätte ich ja gleich mal was "Single xy" eingeben sollen.

Anyway, vielen Dank!

nobbi ·

Also...
ich hab jetzt mal die diversen Sachen durchgetestet und denke das die Extension ml_sso der Sache sehr nahe kommt.
Aber letztlich hats nicht geklappt da noch kein sso adapter für xtcommerce bereitsteht.

Was ich noch probiert habe und was auch klappt ist die extension neanet_xtcommerce.

Das Endergebnis sieht so aus:
http://www.neuber-web-solutions.de/xtc_typo3/typo3_xtcommerce.jpg

Also xtcommerce-Backend als iframe im typo3 BE, kein echtes Single Signon, aber trotzdem nützlich.

Kurze Anleitung - da die Manuel nicht so üppig ist:

1. Extension wie üblich importieren & installieren
2. typo3conf cache löschen
3. Auf "User Admin" klicken
4. Dann ganz nach unten scrollen - bisschen versteckt das Ganze
5. Und dann hier xtcommerce User, Password + url eingeben (steht zwar oscommerce drauf,aber wurscht - url ist: deine xtc domain/login.php)
6. siehe hier: http://www.neuber-web-solutions.de/xtc_typo3/admin.jpg

Grüzi

jenses ·

Versuchs mal mit dem naw_single_signon,
die Adapter dazu findest du --- hier ---
Für os:commerce gibt es einen, der sollte ja nicht allzu schwer an xt_commerce anzupassen sein.
[edit] den Adapter für xt_commerce gibt es dort auch schon ;-) [/edit]

nobbi ·

Also lt. ein paar Einträgen in anderen Foren solls das Xtcommerce Teil dort geben - ich finds bloß nicht :o

Da werd ich mal nachhaken bei denen.

------ [Nachtrag]

Falls das jemand interessiert:

Bei Single-Signon.com ist der XTCommerce Adapter nicht unter "Applications" - wie erwartet.

Sondern im Logon/Logoff Bereich für Members.
Also einloggen und dann:

->Download Area
->SSO Adapters for Third Party Applications
-> ganz nach unten scrollen