2012-06-16 75 views
1

當讀取所有用於導出擴展的magento產品時,我遇到了一個問題: 當您嘗試通過在加載的模型上使用getName()獲取產品名稱時,活動語言名稱,或者如果沒有設置產品的默認名稱。但我需要獲取默認,英語,德語,法語等所有產品名稱。 有沒有人有解決這個問題或想法如何解決它?Magento - 獲取所有語言的產品名稱

$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 
} 

回答

3

既然你還想要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)上取而代之。

+0

謝謝,這正是我所期待的。 – Nightmares

相關問題