Шаблоны электронной почты в Magento: блоки не отображаются из adminhtml - PullRequest
2 голосов
/ 26 мая 2011

Боюсь, я наткнулся на неизвестную территорию Magento.Я исчерпал то, что осталось от моих способностей Googling, и потерпел неудачу, поэтому я решил попытать счастья здесь.

Наша платформа - Magento Enterprise 1.9.1.1.

Мы используемархаичное решение для печати, которое читает заказы через ODBC.Таким образом, мы не можем читать его непосредственно из базы данных MySQL Magento (благодаря высокой вероятности изменений).Что я сделал, так это расширил Mage_Sales_Model_Order для перехвата функции _beforeSave () с прямыми запросами SQL в другую базу данных перед возвратом parent :: _ beforeSave ().Вероятно, есть более эффективные способы сделать это, но это сделано сейчас, и работает, и, несмотря на это, не в этом моя проблема.

Если выбрасываются какие-либо ошибки SQL, обновления откатываются, а ошибки и порядокданные передаются в функцию, которая отправляет электронное письмо в список рассылки с информацией об ошибке.Файл шаблона электронной почты в / locale / en_US / template / email / вызывает файл .phtml для обработки массивов данных примерно так:

{{block type='core/template' area='frontend' template='/email/errors/order/beforesave.phtml' orderdata=$orderdata errors=$errors}} 

Это функциональность, которую я позаимствовал из / locale / en_US / template/email/sales/shipment_new.phtml.И это также, где я ударил свой контрольно-пропускной пункт.Электронная почта срабатывает нормально из внешнего интерфейса, если при обработке заказа пользователь сталкивается с ошибками.Если вы вносите изменения заказа из adminhtml, электронное письмо отправляется, но без вышеупомянутого блока.

Я пробовал с и без area = 'frontend' в вызове блока, и скрипт демонстрирует одинаковое поведение независимо от того,.

Я думаю, что проблема может быть в моем XML, хотя он находит, что сам шаблон отлично работает как от администратора, так и от внешнего интерфейса (и этот блок не обязательно должен быть определен в моем XML где-либо).Я также не могу найти никаких примеров этого в собственных файлах Magento или где-либо еще в Интернете.

Любая помощь будет более чем признательна.Это делает мою голову в!

  • Майк

Ответы [ 2 ]

0 голосов
/ 27 декабря 2012

Возможный дубликат общего шаблона обмена между веб-интерфейсом и внутренним интерфейсом (admin или adminhtml) в magento .

Не означает оживить нерешенный вопрос;просто завязать свободный конец.

@ ColinM: Мои мысли были такими же, как и ваши, но это почему-то не сработало для меня.Может быть, я не понимаю цель setDesignConfig ().Во всяком случае, приведенная выше ссылка отлично сработала для меня в том же сценарии, что и у исходного постера.

0 голосов
/ 19 июля 2011

Вы устанавливаете "область" для фактического шаблона электронной почты?Например:

$emailTemplate = Mage::getModel('core/email_template');    
$emailTemplate
  ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId));
...