Magento получает товары в категории

я думаю, что это очень просто, но я пытался какое-то время и ничего. У меня есть категория, и я хочу показать все продукты в phtml, но с некоторыми настройками.

Но я не могу получить продукты в категории. У меня есть категория с этим кодом:

$_category = Mage::getModel('catalog/category')->loadByAttribute('name', 'Gifts');

Я пробовал это, но не работал:

$categoryId = 25;
$category = Mage::getModel('catalog/category')->load($categoryId);
$products = Mage::getModel('catalog/product')
    ->getCollection()
    ->addCategoryFilter($category)
    ->load();

Я заработал, используя этот ужасный код, но, конечно, есть лучший способ:

$_category = Mage::getModel('catalog/category')->loadByAttribute('name', 'Gifts');
$collection = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect('*'); // select all attributes
foreach ($collection as $product) {
  foreach ($product->getCategoryIds() as $category_id) {
      $category = Mage::getModel('catalog/category')->load($category_id);
      if ($category->getName()=='Gifts'){
          echo $product->getName()."<br/>";
      }
  }
}

Спасибо


person davibq    schedule 05.11.2012    source источник


Ответы (1)


$products = $_category->getProductCollection();

foreach ($products as $product) {
    //for full product model
    $product = Mage::getModel('catalog/product')->load($product->getId());
}
person Ian    schedule 05.11.2012
comment
Я пробовал это, но не работал. И я знаю, что это правильная категория, потому что, когда я получаю размер, все в порядке. Я также пытался повторить что-то внутри цикла foreach, но это так и не было достигнуто. - person davibq; 06.11.2012