愿望清单中的Magento语言错误

时间:2013-04-16 11:40:17

标签: magento

我对magento心愿单有疑问。我的商店有4种不同的语言(DE / EN / FR / IT)。 一切都很好但在愿望清单中,无论商店语言是否设置为英语,法语等,产品名称和描述都以错误的语言显示(在Italien中)。 我知道这里有一个类似的线程 Magento Not Translating Wishlist Product Name and Description

但删除$product = $this->_getData('product');的建议无法解决问题。它仅将产品名称和描述更改为默认语言,即德语。

//方案//

我终于明白了。我知道这不是最完美的解决方案,但它确实有效。 位于public function getProduct()的/app/code/core/Mage/Wishlist/Model/Item.php 我删除了这一行$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());

1 个答案:

答案 0 :(得分: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;}