Magentoの製品IDに基づいてカテゴリパスのカテゴリ名を取得しようとしています。
私の製品ID=1で、category5(id = 5)を定義し、2/3/5のようなカテゴリパスを取得するとします。このタイプのカテゴリパスの代わりに、category2 / category3/category5のようなカテゴリパスが必要です。つまり、カテゴリIDではなくパスにカテゴリ名が必要です。次のコードを使用してこれを取得しましたが、非常に時間がかかります。処理時間を短縮する必要があります。
処理時間を短縮する方法について提案をお願いします。
$category_model = Mage::getModel('catalog/category');
$product_model = Mage::getModel('catalog/product');
$all_cats = array();
$product_model->reset();
$_product = $product_model->load($entityId);
$all_cats = $product_model->getCategoryIds($_product);
$main_cnt = count($all_cats);
$cat_str_main = '';
$j = 0;
foreach($all_cats as $ac)
{
$root_category = $category_model->load($ac);
$cat_path = $root_category->getPath();
$cat_arr = explode("/",$cat_path);
$cnt = count($cat_arr);
$cat_str = '';
$main_str = '';
$i=0;
foreach($cat_arr as $ids)
{
$root_category = $category_model->load($ids); //load root catalog
if($i == 2)
{
$cat_str = $category_model->getName();
}
else if($i > 2)
{
$cat_str = $cat_str."/".$category_model->getName();
}
$i = $i+1;
}
if($j < 1)
{
$cat_str_main = $cat_str;
}
else
{
$cat_str_main = $cat_str_main .",".$cat_str;
}
$j = $j+1;
}
ありがとう.....