产品库存提醒电子邮件的翻译
-
16-10-2019 - |
题
我已经在我的语言环境文件夹中添加了翻译,甚至加载了模板并在系统配置中分配了它们。似乎没有什么可以翻译这封电子邮件。当我查看表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>