我们正在寻找一种在Magento的产品Feed中获取产品名称的方法。我们获取数据然后运行循环来获取产品,我们只获取类别名称和子类别名称。
有人知道如何获得它们吗?
这里是从php创建xml的代码的一部分:
答案 0 :(得分:0)
<categories>
<?php $categoryCollection = $product->getCategoryCollection()->addAttributeToSelect('name');?>
<?php foreach($categoryCollection as $cat): ?>
<cat><?php echo $cat->getName() == null ? '' : $cat->getName(); ?></cat>
<?php endforeach; ?>
</categories>
P.S。我会使用magento的资源迭代器来遍历集合,以免在运行脚本时遇到内存问题。查看http://www.fontis.com.au/blog/magento/loading-large-collections以获取此示例。
答案 1 :(得分:0)
function getCategoryTree( $parent = 0, $recursionLevel = 1 )
{
if($parent == 0){
$parent = Mage::app()->getStore()->getRootCategoryId();
}else{
$parent = Mage::getModel('catalog/category')->load($parent)->getId();
}
$tree = Mage::getResourceModel('catalog/category_tree');
/* @var $tree Mage_Catalog_Model_Resource_Category_Tree */
$nodes = $tree->loadNode($parent)
->loadChildren($recursionLevel)
->getChildren();
$tree->addCollectionData(null, false, $parent);
$json = array('success' => true);
$result = array();
foreach ($nodes as $node) {
$result[] = array(
'category_id' => $node->getData('entity_id'),
'parent_id' => $parent,
'name' => $node->getName(),
'categories' => getNodeChildrenData($node));
}
$json['categories'] = $result;
return $json;
}