Magento - 获取所有语言的产品名称

时间:2012-06-16 16:06:22

标签: magento export product

在阅读所有magento产品的出口扩展时,我遇到了一个问题: 尝试通过在加载的模型上使用getName()获取产品名称时,只能获取活动语言名称,或者如果未设置产品的默认名称。但我需要获得默认,英语,德语,法语等所有产品名称。 有没有人有这个问题的解决方案或想法如何解决?

$model      = Mage::getModel('catalog/product');
$collection = $model->getCollection();
foreach ($collection as $product) {
   $id   = $product->getId();
   $model->load($id);
   $name = $model->getName(); // gives you only the active language name / default name
}

1 个答案:

答案 0 :(得分:4)

既然你也想要default商店,我只知道一种工作方式:

$aStoreHash = Mage::getModel('core/store')
    ->getCollection()
    ->setLoadDefault(true)
    ->toOptionHash();

$aName = array();

foreach ($aStoreHash as $iStoreId => $sStoreName) {
    Mage::app()->setCurrentStore($iStoreId);
    $oCollection = Mage::getModel('catalog/product')
        ->getCollection()
        // Uncomment next line for testing if you have thousands of products
        // ->addFieldToFilter('entity_id', array('from' => 1, 'to' => 5))
        ->addAttributeToSelect('name');
    foreach ($oCollection as $oProduct) {
        $aName[$oProduct->getId()][$iStoreId] = $oProduct->getName();
    }
}
var_dump($aName);

如果您不需要default商店,则可以放弃Mage::app()->setCurrentStore($iStoreId);并在集合中使用->addStoreFilter($iStoreId)