Pregunta


En mi tienda (Mage-EE V12) tengo una categoría que quiero restringir a un segmento de clientes específico.¿Alguien sabe de una manera que pueda hacer esto?
Por ejemplo, si configuré un segmento, quiero que los clientes en este segmento tengan acceso al catálogo completo, ¡pero si los clientes no caen en este segmento, no tienen visibilidad de la categoría restringida?
Alguna idea ?
Saludos

¿Fue útil?

Solución

para su requerimiento.

  • primero debe crear un nuevo grupo de clientes de Admin.
  • Asignar un segmento específico del cliente a este grupo.
  • luego usando evento / observador catalog_controller_category_init_before Evite que el cliente vaya esta categoría, excepto ese específico Categoría

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;
    }
}

o uso de extensión como

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top