如何从Magento获得一个类别列表?

ale*_*lex 10 php product catalog magento categories

我想在Magento中创建一个页面,显示类别的可视化表示.例如

CATEGORY
 product 1
 product 2

ANOTHER CATEGORY
 product 3
Run Code Online (Sandbox Code Playgroud)

我的问题是,他们的数据库组织方式与我过去看到的非常不同.他们有专门用于数据类型的表,如varchar,int等.我假设这是为了性能或类似.

我还没有找到使用MySQL查询数据库并获取类别列表的方法.然后,我想将这些类别与产品相匹配,以获得每个类别的产品列表.不幸的是,Magento似乎很难做到这一点.

此外,我还没有找到一个可以在页面块中工作的方法.我创建了showcase.phtml并将其放在XML布局中,它显示并运行其PHP代码.我希望有一些简单的东西像循环$this->getAllCategories(),然后嵌套循环里面有类似的东西$category->getChildProducts().

谁能帮我?

Ala*_*orm 16

从SEO相关类中找到的代码(Mage_Catalog_Block_Seo_Sitemap_Category)

$helper     = Mage::helper('catalog/category');
$collection = $helper->getStoreCategories('name', true, false);
$array      = $helper->getStoreCategories('name', false, false);
Run Code Online (Sandbox Code Playgroud)

试着忘记它是一个为你的商店供电的数据库,而是专注于使用Magento系统提供的对象.

例如,我不知道如何获得类别列表.但是,我在Mage代码库中使用了

grep -i -r -E 'class.+?category'
Run Code Online (Sandbox Code Playgroud)

其中返回了大约30个班级的列表.滚动浏览这些,相对容易猜测哪些对象可能有方法或需要进行方法调用以获取类别.


小智 5

嘿,这样的事情可能会对你有所帮助,我已经稍微调整了一下,以便更具体地回答你的问题.

 $h3h3=Mage::getModel('catalog/category')->load(5);  // YOU NEED TO CHANGE 5 TO THE ID OF YOUR CATEGORY


$h3h3=$h3h3->getProductCollection();


foreach($h3h3->getAllIds() as $lol)
{
    $_product=Mage::getModel('catalog/product')->load($lol);

    print $_product->getName()."<br/>";

}
Run Code Online (Sandbox Code Playgroud)