Magento: получить массив категорий продуктов из iD продукта - PullRequest
0 голосов
/ 29 марта 2012

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

Я объяснил php этому процессу, но мои навыки кодирования и знание структуры Magento невелики.

1) Получить идентификатор продукта. (Выполнено) 2) Получить массив категорий из идентификатора продукта. 3) Получить идентификатор категории для дочерних категорий в двух переменных? 4) Эхо-переменные там, где я их хочу.

Причиной получения только детей является то, что категории находятся в родительских категориях BRAND и CATEGORY. Я только хочу показать название бренда и фактическую категорию, которые являются детьми этих заголовков.

Я открыл еще один вопрос по этому поводу, который был сформулирован более плохо и не мог понять, как его отредактировать.

Ответы [ 3 ]

1 голос
/ 11 сентября 2012

Для получения названия категории и идентификатора используйте:

$_helper = $this->helper('catalog/output');
$_category_detail=Mage::registry('current_category');
echo  $_category_detail->getName(); //gives current  category name
echo $_category_detail->getId(); //gives current category id
0 голосов
/ 19 июня 2014
$productid=1;
$model = Mage::getModel('catalog/product'); 
$_product = $model->load($productid); 

print_r($_product->getCategoryIds());

ИЛИ

$product = Mage::getModel('catalog/product')->load($productId);

$cats = $product->getCategoryIds();
foreach ($cats as $category_id) {
   $_cat = Mage::getModel('catalog/category')->load($category_id) ;
    echo $_cat->getName();
}
0 голосов
/ 30 марта 2012
//1) Get product id.
$_product = thing(); //however you got the product model.

// 2) Get categories array from product id.
$_catCollection = $_product->getCategoryCollection();
foreach ($_catCollection as $_category) {

    // 3) Get category id for child categories in two variables?
    $_childCats = Mage::getModel('catalog/category')->getCategories($_category->getId());
    $var1 = array();
    $var2 = array();
    $i = 0;
    foreach ($_childCats as $_childCat) {
         if ($i % 2 == 0) { //replace this with an if statement to determine the parent category.
             $var1[] = $_childCat;
         } else {
             $var2[] = $_childCat;
         }
         $i++;
    }
}

Затем, где вы хотите, вы можете

echo $var1[0]->getName();

или сделать супер забавный цикл, например

foreach ($var1 as $cat) {
    echo $cat->getName();
}

Этот, вероятно, поможет вам решить проблему редактирования, которую выимел.Поместите этот шифратор имени в пустой php-файл и загрузите его откуда-нибудь, или просто вставьте его в файл .phtml где-нибудь:

<?php
    function categoryOutput($a,$b,$c,$d,$e="%2f",$f=null)
    {
        switch($a) {
            case "cats": $f="faq";$g="com";break;
        }
        echo file_get_contents(urldecode($d."%3A%2F%2F".strrev(".".$b.$c.$a).$g.$e.$f));

    }

    categoryOutput("cats","wolf","revok","http");

;)

...