1

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

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

//解决方案//

我终于明白了。我知道这不是最完美的解决方案,但它确实有效。在 /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());
4

1 回答 1

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;}
于 2014-07-08T15:41:04.593 回答