Перевод электронной почты с предупреждением о наличии товара на складе
Я добавил перевод в свои папки локали и даже загрузил шаблоны и назначил их в конфигурации системы. Кажется, ничто не переводит это электронное письмо. Когда я смотрю в таблицу product_alert_stock, я также вижу, что сохранен только веб-сайт, но мои локали отличаются на уровне просмотра магазина.
Поэтому, когда я захожу в свой французский магазин и нажимаю ссылку, чтобы подписаться, возвращаю товар на склад и запускаю cron catalog_product_alert, я продолжаю получать английский почта.
Есть идеи о том, что могло пойти не так или это ошибка?
2 answers
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(...)
Таким образом, он всегда использует хранилище по умолчанию указанного веб-сайта. Веб-сайт, в свою очередь, настраивается во время подписки. То есть, когда клиент подписывается на уведомления, текущий идентификатор веб-сайта сохраняется вместе с записью подписки:
$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()
и вместо этого используйте идентификатор хранилища клиентов (например).
Я не знаю, что может пойти не так, но я бы начал отладку следующим образом:
Проверьте, на 100% ли вы уверены, что редактируете правильный шаблон. Попробуйте отредактировать полученное вами письмо на английском языке и проверьте, отражает ли электронное письмо ваши изменения. Если нет, бинго, найди правильный вариант.
Если это так: попробуйте, правильно ли вставлены другие переменные хранилища в электронное письмо, например URL-адрес магазина:
<a href="{{store url=""}}">Store URL</a>