Da einer der Shops die ich betreibe ein reiner Business to Business ist ergab sich für mich das Problem das nur nicht registrierte Kunden ausser die Login Maske sehen sollten.
Ich hab mir als erstes die Extension von Sitewards installiert aber diese ging mir nicht weit genug…
Mein Wunsch war eben das der Besucher gleich zum Login geleitet wird und keine Preise oder Kategorie-Menü sieht. Die Kunden bekommen in diesem Fall die Zugangsdaten über die Admin angelegt und zugeschickt.
Folgende Änderungen hab ich dafür vorgenommen:
index.php
/**
* Magento
*
* NOTICE OF LICENSE
*
....
*/
umask(0);
Mage::run('default');
if (!Mage::getSingleton('customer/session')->isLoggedIn() && strpos($_SERVER['REQUEST_URI'],'admin') == 0 && strpos($_SERVER['REQUEST_URI'],'customer/account/login/') == 0)
{
if($_SERVER['https'] == 'on')
$https = 'https://';
else
$https = 'http://';
header('Location: '.$https.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'/customer/account/login/');
}
Und in meinem Template Verzeichnis die Datei:
catalog/navigation/top.phtml
<div class="header-nav-container">
<div class="header-nav">
<?php
if (Mage::getSingleton('customer/session')->isLoggedIn()){
?>
<h4 class="no-display"><?php echo $this->__('Category Navigation:') ?></h4>
<ul id="nav">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php echo $this->drawItem($_category) ?>
<?php endforeach ?>
</ul>
<?php
}
?>
</div>
<?php echo $this->getChildHtml('topLeftLinks') ?>
</div>
/*...*/
Danach habe ich noch einen CMS Block angelegt (Seitenbezeichner “bitteeinloggen”) und diesen per XML über das Login Formular gesetzt.
layout/customer.xml
Layout for customer login page
-->
<customer_account_login>
<!-- Mage_Customer -->
<remove name="right"/>
<remove name="left"/>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
<reference name="content">
<block type="cms/block" name="contacts">
<action method="setBlockId"><block_id>bitteeinloggen</block_id></action>
</block>
<block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"/>
</reference>
</customer_account_login>
#1 von Julien - 20. August 2010 zu 11:27
Hallo Steven Binder,
danke für diesen interessanten Beitrag. Pflegst Du den B2B-Shop noch? Kann man sich das Resultat ansehen?
Die Shops, die rechts im Menü zu finden sind, gewähren ja allen Besuchern Einsicht.
Falls Du weißt, ob es mittlerweile eine passende Extension für dieses Problem gibt, wäre ich auch dankbar.
Vielen Dank & Grüße
Julien