2012-06-16 3 views
1

수출 확장을 위해 모든 magento 제품을 읽을 때 문제가 발생했습니다 : 로드 된 모델에서 getName()을 사용하여 제품 이름을 얻으려고하면 문제가 발생합니다. 활성 언어 이름 또는 제품의 기본 이름을 설정하지 않은 경우. 하지만 기본, 영어, 독일어, 프랑스어 등의 모든 제품 이름을 가져와야합니다. 누구나이 문제에 대한 해결책이나 해결 방법을 알고 있습니까? 당신이 default 저장소를 필요로하지 않는 경우Magento - 모든 언어의 제품 이름 얻기

$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); 

, 당신은 Mage::app()->setCurrentStore($iStoreId); 드롭 수 있고에 ->addStoreFilter($iStoreId)를 사용 : 당신은 또한 default 저장소를 원하기 때문에

$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

, 내가 한 작업 방법 만 알고 있어요 컬렉션 대신.

+0

고마워요,이게 내가 찾고있는 것입니다. – Nightmares