2016-01-10 3 views
0

В моем Magento, я следующая структура дерева категорий, как это (примечание: только несколько категорий была расширена):Получить Magento дерево категорий как массив ДООСА для конкретного магазина

enter image description here

Я как генерировать массив, который выглядит следующим образом:

$categories = [ 
    'Default Category' => [ 
     'HAIR' => [ 
      'Hair Colouring' => [ 
       'Permanent Hair Colour', 
       // ...etc 
      ], 
      'Styling' => [ 
       'Gel/Wax/Paste/Po', 
       // ...etc 
      ] 
     ], 
     // ... etc 
    ] 
]; 

Возможно ли это?

Когда исследовал этот вопрос, я обнаружил, что существует метод апи Magento мыло, которое могло бы вернуть то, что я после:

http://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogCategory/catalog_category.tree.html

Можно ли использовать этот метод мыло апи во внешнем PHP скрипт используя app/Mage.php (без использования мыльного клиента api)?

Я попытался с помощью этого метода http://magentotutorial.in/how-to-create-categories-tree-structure-in-magento-programmatically/ в моей отправной точкой, но все, что я получаю обратно есть <ul></ul>

ответ

0
public function megamenu(){ 

     $children = Mage::getModel('catalog/category')->getCategories(2); 
     if(count($children) > 0){ 
      $i=0; 
      foreach ($children as $category) { 
       //echo $category->getName(); 
       if($category->getName()){ 
       $id = $category->getId(); 
       $data[$i]['id'] = $category->getId(); 
       $data[$i]['name'] = $category->getName(); 
       //$data[$i]['subcategory'] = array(); 
       $data[$i]['subcategory'] = $this->mycategory($id); 
       $i++; 
       } 
      } 
     } 
     //echo "<pre>";print_r($data); 
     return $data; 
    } 
    public function mycategory($id){ 
     $children = Mage::getModel('catalog/category')->getCategories($id); 
     if(count($children) > 0){ 
      $i=0; 
      foreach ($children as $category) { 
       //echo $category->getName(); 
       $id = $category->getId(); 
       $sub[$i]['id'] = $category->getId(); 
       $sub[$i]['name'] = $category->getName(); 
       $sub[$i]['subcategory'] = $this->mycategory($id); 
       $i++; 
      } 
     } 
     return $sub; 

    }