magento 获取产品分类

<?php
class Bruce_Account_categoriesController extends Mage_Core_Controller_Front_Action {

 public function nodeToArray(Varien_Data_Tree_Node $node) {
  
  $result = array ();
  $result ['category_id'] = $node->getId ();
  $result ['parent_id'] = $node->getParentId ();
  $result ['name'] = $node->getName ();
  $result ['is_active'] = $node->getIsActive ();
  $result ['position'] = $node->getPosition ();
  $result ['level'] = $node->getLevel ();
  $result ['children'] = array ();
  foreach ( $node->getChildren () as $child ) {
   $result ['children'] [] = $this->nodeToArray ( $child );
  }
  return $result;
 }
 public function load_tree() {
  $tree = Mage::getResourceSingleton ( 'catalog/category_tree' )->load ();
  $store = 1;
  $parentId = 1;
  $tree = Mage::getResourceSingleton ( 'catalog/category_tree' )->load ();
  $root = $tree->getNodeById ( $parentId );
  if ($root && $root->getId () == 1) {
   $root->setName ( Mage::helper ( 'catalog' )->__ ( 'Root' ) );
  }      
  $collection = Mage::getModel('catalog/category')->getCollection()                 
       ->setStoreId($store)                    
       ->addAttributeToSelect('name')                   
        //->addAttributeToSelect('id')                    
       ->addAttributeToSelect('is_active');
  $tree->addCollectionData ( $collection, true );
  return $this->nodeToArray ($root );
 }
 public function print_tree($tree, $level) {
  $level ++;
  foreach ( $tree as $item ) {
   echo str_repeat ( "*", $level ) . $item ['name'] . '*' . $item ['category_id'] . "<br>";
   $this->print_tree ( $item ['children'], $level );
  }
 }
 
 public function listallCategoriesAction() {
  $tree = $this->load_tree();
  $jsonresult = json_encode ( $tree );
  echo $jsonresult;
//   $this->print_tree ( $tree ['children'], 0 );
 }
}
?>


 

2. 在Magento中获取指定分类下的产品。

01
02
03
04
05
$products = Mage::getModel( 'catalog/category' )->load( $category_id )
     ->getProductCollection()
     ->addAttributeToSelect( '*' )
     ->addAttributeToFilter( 'status' , 1)
     ->addAttributeToFilter( 'visibility' , 4);

将上面的$category_id修改为需要显示产品的分类id,该id可以在分类页面中看到。上述代码中还捎带了一些过滤,产品状态为激活,并处于可见状态。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值