2012-01-02 13 views
5

Estoy usando Magento ver1.6.1. Necesito obtener la categoría raíz de una tienda. Busco en google por no obtuve ninguna buena idea/código. Déjame saber cómo obtener la categoría raíz de una tienda?Buscar la categoría raíz de la tienda

Mage::app()->getStore()->getRootCategoryId() 

El código anterior proporciona la categoría raíz predeterminada, pero necesito el Id. De categoría que seleccionamos durante la creación de la tienda.

Respuesta

14

han intentado:

Mage::app()->getStore($storeId)->getRootCategoryId(); 
+2

Tenga en cuenta que si va a buscar datos de la tienda dentro de una secuencia de comandos de instalación/actualización para una extensión, primero debe ejecutar Mage :: init(), o el objeto de la tienda no se completará. –

0

escritura para mi propia ayuda como mi plataforma se configura en vistas de múltiples tiendas y por supuesto que no estaba recibiendo la categoría raíz correcta identificación. I todas las soluciones siguientes:

Sol 1:

Mage::app()->getStore($storeId)->getRootCategoryId(); //The result was ID: 2 

Sol 2:

Mage::app()->getStore()->getRootCategoryId(); //The result was ID: 2 

Sol 3:

$store = Mage::getModel('core/store')->load(Mage_Core_Model_App::DISTRO_STORE_ID); 
$categoryId = $store->getRootCategoryId();// The result was again ID: 2 

El método que sólo funcionaba y volvieron ID: 1 es dado a continuación y fue tomado de here

public function getRootCategoryId() 
{ 
    $categories = Mage::getModel('catalog/category')->getCollection(); 
    $categIds = $categories->getAllIds(); 
    asort($categIds); 
    foreach ($categIds as $k => $catId) 
    { 
     $category = Mage::getModel('catalog/category')->load($catId); 
     if ($category->name) 
     { 
      return $catId; 
     } 
    } 
} 
Cuestiones relacionadas