Показать ВСЕ категории, к которым относится товар, в Magento - PullRequest
3 голосов
/ 23 ноября 2010

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

Например,Рубашка может быть включена в категорию Рубашки , а также в категории Дизайнеры и Лето .В идеале я хотел бы иметь возможность отображать следующее:

Больше от:

Мужчины> Рубашки

Мужчины> Дизайнеры> Барнабе Харди

Мужчины> Лето

Ответы [ 3 ]

8 голосов
/ 23 ноября 2010

Это даст вам данные, которые вы ищете, такие как название категории, URL и т. Д .:

$currentCatIds = $_product->getCategoryIds();
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
                     ->addAttributeToSelect('name')
                     ->addAttributeToSelect('url')
                     ->addAttributeToFilter('entity_id', $currentCatIds)
                     ->addIsActiveFilter();

, а затем просто переберите коллекцию, например

foreach($categoryCollection as $cat){
  echo $cat->getName().' '.$cat->getUrl();
}
1 голос
/ 15 марта 2012

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

<?php $categories = $_product->getCategoryIds(); ?>
           <?php foreach($categories as $k => $_category_id): ?>
           <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
< <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a>
           <?php endforeach; ?>
1 голос
/ 24 ноября 2010

Простой.

$_categories = $_product->getCategoryCollection()
foreach ($_categories as $_category)
    //do something with $_category
...