1

エクスポート拡張機能のすべての 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
}
4

1 に答える 1

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)

于 2012-06-17T12:28:41.307 に答える