Limitar a categoria a um segmento de cliente específico
-
29-09-2020 - |
Pergunta
Na minha loja (mage-EE v12) tenho uma categoria que desejo restringir a um segmento específico de clientes.Alguém sabe de uma maneira que eu possa fazer isso?
Ex.: se eu configurar um segmento, quero que os clientes desse segmento tenham acesso ao catálogo completo, mas se os clientes não se enquadrarem nesse segmento eles não terão visibilidade da categoria restrita?
Alguma ideia ?
Saúde
Solução
Para sua necessidade.
- Primeiro você precisa criar um novo grupo de clientes em admin .
- Atribua um segmento de cliente específico a este grupo.
- Então usando evento/observador
catalog_controller_category_init_before
impedir que o cliente vá nesta categoria, exceto que essa categoria específica
config.xml:
<config>
<global>
<config>
<events>
<catalog_controller_category_init_after>
<observers>
<redirect_to_account>
<class>[ModuleNameSpace]_[ModuleName]_Model_Observer/class>
<method>redirectNotLogged</method>
</redirect_to_account>
</observers>
</catalog_controller_category_init_after>
</events>
</config>
</global>
</config>
Observador.php
<?php
class [ModuleNameSpace]_[ModuleName]_Model_Observer{
public function redirectNotLogged(Varien_Event_Observer $observer)
{
$action = strtolower(Mage::app()->getRequest()->getActionName());
$controller = strtolower(Mage::app()->getRequest()->getControllerName());
$controller_action= $observer->getEvent()->getControllerAction();
$category = $observer->getEvent()->getCategory();
/* if category is not Match with your category then continue default behave */
if($category->getId()!='YOUR_CATEGORY_ID'):
return true;
endif;
/* Customer group id match and then previllage to access that category page.*/
if (Mage::getSingleton('customer/session')->isLoggedIn() && Mage::getSingleton('customer/session')->getCustomerGroupId()=='CUSTOMER_GROUP_ID') {
return true;
}
Mage::app()->getResponse()->setRedirect($_SERVER['HTTP_REFERER']);
Mage::app()->getResponse()->sendResponse();
exit;
}
}
Ou use uma extensão como
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange