2013-04-16 59 views
1

我對magento心願單有問題。我的商店有4種不同的語言(DE/EN/FR/IT)。 所有的偉大工程,但在心願單中的產品名稱和說明會顯示在錯誤的語言(在意大利)無論在商店語言設置爲英文,法文等 我知道這裏有一個simliar線程 Magento Not Translating Wishlist Product Name and DescriptionMagento心願單中的錯誤語言

但建議刪除$product = $this->_getData('product');並不能解決問題。它只會將產品名稱和說明更改爲默認語言,即德語。

// SOLUTION //

我終於明白了。我知道這不是最完美的解決方案,但它的工作原理。 在/app/code/core/Mage/Wishlist/Model/Item.php在public function getProduct() 我刪除這條線$product = $this->_getData('product');和加入下列:

$store_id = Mage::app()->getStore()->getStoreId(); 

然後,我改變:$product = Mage::getModel('catalog/product') ->setStoreId($this->getStoreId()) ->load($this->getProductId()); 到:

$product = Mage::getModel('catalog/product') 
      ->setStoreId($store_id) 
      ->load($this->getProductId()); 

回答

0

感謝您的解決方案。爲避免多次重新加載產品,我已將該代碼更改爲:

public function getProduct() { 
$product = null; 
$current_store_id = Mage::app()->getStore()->getStoreId(); 

if (!$this->getProductId()) { 
    Mage::throwException(Mage::helper('wishlist')->__('Cannot specify product.')); 
} 

if($this->_getData('last_store_id') != $current_store_id){ 
    $product = Mage::getModel('catalog/product') 
    ->setStoreId($current_store_id) 
    ->load($this->getProductId()); 
} else { 
    $product = $this->_getData('product'); 
} 

$this->setData('product', $product); 
$this->setData('last_store_id', $current_store_id); 

/** 
* Reset product final price because it related to custom options 
*/ 
$product->setFinalPrice(null); 
$product->setCustomOptions($this->_optionsByCode); 
return $product;}