Magento - Shop achter login


Op de onderstaande manier kan een webshop volledig worden afgeschermd van de buitenwereld. In dat geval kunnen de producten, categorieŽn en andere onderdelen van Magento alleen worden bekeken indien er wordt ingelogd. Daarbij kunnen er uiteraard uitzonderingen gemaakt worden om bepaalde onderdelen zoals pagina's wel te tonen.

Maak als eerste een nieuw bestand aan met de naam login-redirect.phtml. Plaats dit bestand in de map /template/page/html/ en voorzie het bestand van de volgende code.

<?php
        Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri());
        if(!Mage::getSingleton('customer/session')->isLoggedIn()):
                header("HTTP/1.1 301 Moved Permanently");
                header("Location: /customer/account/login/");
                exit;
        endif;
?>


In de code is de URL geplaatst waar bezoekers naar toe worden verwezen indien ze nog niet zijn ingelogd, dit is in dit geval dus de loginpagina van Magento. Open dan layout/page.xml en plaats de onderstaande code in het ROOT gedeelte bovenaan.

<block type="page/html" name="login-redirect" as="login-redirect" template="page/html/login-redirect.phtml"/>


Daarna is het zaak om de bestanden 1column.phtml, 2columns-left.phtml, 2columns-right.phtml en 3columns.phtml aan te passen door de volgende code bovenin te plaatsen.

<?php
        echo $this->getChildHtml('login-redirect')
?>


Het is uiteraard wel zaak om de loginpagina zelf wel beschikbaar te maken en daarom moet er dus een uitzondering worden toegevoegd wat betreft de beveiliging. Dit doe je door onderstaande code te plaatsen in customer.xml na de tag <customer_account_login>.

Wil je ook zorgen dat gebruikers een account aan kunnen maken plaats dan deze regel ook na <customer_account_create> en aanvullend kan deze code in het gedeelte om een wachtwoord op te vragen. Op deze manier kun je dan diverse uitzonderingen maken.

<remove name="login-redirect" />