Если вы занимаетесь программированием, то простая логика будет проверять, вошел ли пользователь в систему или нет, перенаправить его на страницу входа с помощью события: controller_action_predispatch.
1> В вашем config.xml добавьте следующий код xml:
...
<frontend>
<events>
<controller_action_predispatch>
<observers>
<yourmodule_controller_action_predispatch>
<class>yourmodule/observer</class>
<method>checkForLogin</method>
</yourmodule_controller_action_predispatch>
</observers>
</controller_action_predispatch>
</events>
</frontend>
...
2> Создайте Observer.php в каталоге Model / вашего модуля.
Вот основной код, который вам нужно использовать в вашем классе Observer:
<?php
class YourCompany_Yourmodule_Model_Observer extends Varien_Object{
public function checkForLogin(Varien_Event_Observer $observer){
if(!Mage::getSingleton('customer/session')->isLoggedIn() && $observer->getControllerAction()->getFullActionName() != 'customer_account_login') {
Mage::app()->getResponse()->setRedirect(Mage::getUrl('customer/account/login'))->sendResponse();
exit;
}
}
}
Если вас интересует более надежное решение с гораздо большим количеством функций, готовых для использования в вашем магазине B2B, то вот замечательное расширение Magento под названием «Store Restriction Pro»:
http://www.magepsycho.com/store-restriction-pro.html
Удачи
Обновление (13-11-27), JSOV
Чтобы разрешить забытый пароль, доступ для входа в систему и функциональность по умолчанию, вы можете добавить массив страниц по умолчанию, для которых вы хотите дать разрешения, а затем проверить и перенаправить.
например:
...
$allow = array('customer_account_login','customer_account_forgotpassword','customer_account_resetpassword','customer_account_loginpost','customer_account_forgotpasswordpost','customer_account_resetpasswordpost');
if(!Mage::getSingleton('customer/session')->isLoggedIn() && !in_array(strtolower($observer->getControllerAction()->getFullActionName()),$allow) ) {
...