Как получить информацию о категории товаров с помощью коллекций в Magento

Я пытаюсь вывести все продукты из нашего магазина Magento - следующий код работает, однако мне также нужно получить идентификатор категории и имя родительской категории. Может ли кто-нибудь предложить, как я могу это сделать?

$product = Mage::getModel('catalog/product'); 
$productCollection = $product->getCollection()
->addAttributeToSelect('*');


foreach ( $productCollection as $_product ) {
    echo $_product->getName().'<br/>';        
}

person Zabs    schedule 16.03.2010    source источник


Ответы (2)


Поскольку продукты могут быть отнесены к нескольким категориям, я думаю, что ваша концепция может немного отличаться, если вы не загружаете коллекцию для каждой категории. Что вы ожидаете увидеть, если для данного продукта существует несколько категорий?

Несмотря на это, на странице категории вы можете использовать следующее:

$currentCat = $_product->getCategory();

Чтобы получить все категории, к которым относится этот товар:

$categories = $_product->getCategoryCollection();
foreach($categories as $_category) {
    // do something
}

Надеюсь, это поможет. Спасибо,

Джо

person Joseph Mastey    schedule 16.03.2010
comment
Спасибо за это Джо! Magento — зверь, которого я не очень люблю в данный момент! :-) - person Zabs; 18.03.2010

В некоторых случаях $_product->getCategory() может возвращать пустое значение и вызывать ошибку.

Лучшим решением является получение категорий по идентификатору:

$categoryIds = $_product->getCategoryIds();

foreach($categoryIds as $categoryId) {
    $category = Mage::getModel('catalog/category')->load($categoryId);
    echo $category->getName();
    echo $category->getUrlPath();
 }
person Adam McCombs    schedule 07.06.2011