在Magento中获取所有类别的数组

jer*_*ass 6 php magento e-commerce

我希望能够通过API调用以获取所有类别的数组,其中包含URL键等详细信息.最终的目标将是这样的阵列

$massage_cats=array(
    array("entity_id"=>78,
          "name"=>"Massage Oils and Tools",
          "url_key"=>"massage-oils-and-tools",
          "url_path"=>"essential-accessories/massage-oils-and-tools.html"),
    array("entity_id"=>79,
          "name"=>"Massage Oils",
          "url_key"=>"massage-oils",
          "url_path"=>"essential-accessories/massage-oils-and-tools/massage-oils.html")
);
Run Code Online (Sandbox Code Playgroud)

所以我想说出类似的东西

$massage_cats= array();
$allcats = Mage::getModel('catalog/cats?')->loadAll();
    foreach($allcats $k=>$item){
        array_push($massage_cats,$item->loadDetails());
    }
Run Code Online (Sandbox Code Playgroud)

我知道这完全是弥补而不是真正的API,但这基本上是目标.我确实需要输出.关于代码实现需求的想法?

sea*_*den 20

这将获得您的价值观.你可以从这里建立你的阵列.

$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('id')
->addAttributeToSelect('name')
->addAttributeToSelect('url_key')
->addAttributeToSelect('url')
->addAttributeToSelect('is_active');

foreach ($categories as $category)
{
    if ($category->getIsActive()) { // Only pull Active categories
        $entity_id = $category->getId();
        $name = $category->getName();
        $url_key = $category->getUrlKey();
        $url_path = $category->getUrl();
    }
}
Run Code Online (Sandbox Code Playgroud)

EDIT

我从MagentoCommerce.com上的帖子改编了这个.您可以使用此代替:

$category = Mage::getModel('catalog/category');
$tree = $category->getTreeModel();
$tree->load();
$ids = $tree->getCollection()->getAllIds();
if ($ids){
    foreach ($ids as $id){
        $cat = Mage::getModel('catalog/category');
        $cat->load($id);

        $entity_id = $cat->getId();
        $name = $cat->getName();
        $url_key = $cat->getUrlKey();
        $url_path = $cat->getUrlPath();
    }
}
Run Code Online (Sandbox Code Playgroud)