Posts Tagged nur eingeloggte kunden

Magento B2B Lösung

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

if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start();
/**
* 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 Kommentar