2011-12-17 2 views
1

Я пытаюсь отобразить категорию продукта на странице корзины, но возвращает пустой массив. Файл, который я использую /app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.phpКак отобразить название категории на странице корзины в Magento

Мой код

public function getCustumcatId(){ 
    $proid=$this->getProduct()->getId(); 
    $mproduct = Mage::getModel('catalog/product')->load($proid); 
    $ids=$this->getProduct()->getCategoryIds(); 
    return $ids; 
} 

ответ

3

Продукт может быть назначен многим категориям, поэтому без существенных изменений вы не можете быть в состоянии выяснить, к какой категории, что продукт пришел из , однако это могло бы сделать то, что вы после этого класса:

<?php 

$_catCollection = $this->getItem()->getProduct()->getCategoryCollection(); 

foreach ($_catCollection as $_category) { 
    // do stuff with your Mage_Catalog_Model_Category 
} 
0

После нескольких проб и ошибок, наконец, у меня есть ответ на вопрос. И я хочу поделиться этим .. Я надеюсь, что это поможет кому-то ..

Копия /app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php в /app/code/local/Mage/Checkout/Block/Cart/Item/Renderer.php и сделать это изменение:

public function getCustumcatId() 
{ 
    $proid=$this->getProduct()->getId(); 
    $categoryIds=$this->getProduct()->getCategoryIds($proid); 
    foreach($categoryIds as $categoryId) 
    { 
     $category = Mage::getModel('catalog/category')->load($categoryId); 
    } 
    return $category->getName(); 
} 

И для отображения названия категории на странице корзины открытой /app/design/frontend/em0014/default/template/checkout/cart/item/default.php вблизи линии нет .36

<?php 
    $mycat_name=$this->htmlEscape($this->getCustumcatId()); 
    echo "Categoryid".$mycat_name."<br>"; 
?> 
+2

Добро пожаловать в StackOverflow. Я сделал одно исправление для вашего ответа, потому что это плохая идея внести изменения в основные файлы. Вместо этого скопируйте файл в «local» и внесите изменения там. Также отметьте галочкой рядом с вашим ответом, чтобы показать другим, что он правильный. – clockworkgeek

+0

Привет, Clockworkgeek, Вы правы, внесение изменений в основные файлы не является хорошей практикой. Мы можем разместить весь файл в локальных папках. – Saurabh

+0

Это по-прежнему плохая практика. Вы должны научиться делать перезаписи. Это делает ваш код намного чище. – seanbreeden

Смежные вопросы