我已经在我的语言环境文件夹中添加了翻译,甚至加载了模板并在系统配置中分配了它们。似乎没有什么可以翻译这封电子邮件。当我查看表product_alert_stock时,我还看到仅保存了网站,但我的区域设置在商店视图级别上有所不同。

因此,当我转到我的法国商店视图并单击链接进行订阅、将产品放回到库存并运行catalog_product_alert cron 时,我不断收到英文邮件。

关于可能出了什么问题或者是否是一个错误有什么想法吗?

有帮助吗?

解决方案

TD; DR:我会将其归类为错误。

有点背景:

产品警报的商店始终确定如下 Mage_ProductAlert_Model_Email::send():

....
    $store      = $this->_website->getDefaultStore();
    $storeId    = $store->getId();
....
    $templateId = Mage::getStoreConfig($templateConfigPath, $storeId);
....
    Mage::getModel('core/email_template')
        ->setDesignConfig(array(
            'area'  => 'frontend',
            'store' => $storeId
        ))->sendTransactional(...)

因此,它始终使用指定网站的默认存储。该网站依次在订阅期间设置。那就是客户订阅通知当前网站ID的订阅记录时:

    $model  = Mage::getModel('productalert/price')
        ->setCustomerId(Mage::getSingleton('customer/session')->getId())
        ->setProductId($product->getId())
        ->setPrice($product->getFinalPrice())
        ->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
    $model->save();

因此,即使客户已经注册了法国商店的视图,并且已经订阅了法国商店视图中的通知,如果网站的默认商店恰好是英语商店视图,则指定哪些模板将是用过的。

要解决该行为,请重写 Mage_ProductAlert_Model_Email::send() 并改用客户store_id(例如)。

其他提示

我不知道会出现什么问题,但我会开始调试如下:

检查您是否 100% 确定您正在编辑正确的模板。尝试编辑您收到的英文邮件,并检查电子邮件是否反映了您的更改。如果没有,宾果​​游戏,找到合适的。

如果是这样的话:尝试其他商店变量是否正确插入到电子邮件中,例如商店 url:

<a href="{{store url=""}}">Store URL</a>
许可以下: CC-BY-SA归因
scroll top