Magento: просмотр/тестирование транзакционных писем с фактическими данными без их отправки?
Я редактирую некоторые phtml файлы, которые включены в транзакционные письма в Magento, но чтобы проверить изменения, я должен отправить электронные письма. В случае (например, письма с подтверждением заказа это означает, что я должен делать заказ каждый раз, когда хочу проверить электронную почту!
Выбор "предварительного просмотра электронной почты" в бэкэнд не помогает, потому что письмо не содержит видимых данных заказа.
Есть ли способ просмотреть транзакционное электронное письмо, но его визуализировать с данными заказа?
Ответы
Ответ 1
От пользователя R.S:
Вам не нужно создавать новый заказ, вы можете отправить новый заказ электронной почты (перейдя в этот заказ и нажмите "Повторить отправку" ).
Что самое близкое, что я нашел, чтобы быстро перепроверить электронные письма при игре с шаблонами. Спасибо R.S!
Ответ 2
Для заказов на продажу я использую тестовую учетную запись и script, которые у меня есть в корневом каталоге.
script выглядит следующим образом:
<?php
include 'app/Mage.php';
Mage::app('default');
$_order = Mage::getModel('sales/order')->load($argv[1]);
$_order->sendNewOrderEmail();
и я называю это следующим образом:
php -f sendTestEmail.php -- 4303
где 4303 - это порядок, который я раньше использовал для тестирования.
надеюсь, что это поможет.
Ответ 3
Следующий фрагмент отобразит электронное письмо "Новый заказ клиента" и отобразит его для любого заданного порядка. Добавьте, например, в /test.php, и просто перейдите в нужное место, например http://www.example.com/test.php
require_once 'app/Mage.php';
Mage::app();
// loads the proper email template
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('sales_email_order_template');
// All variables your error log tells you that are missing can be placed like this:
$emailTemplateVars = array();
$emailTemplateVars['usermessage'] = "blub";
$emailTemplateVars['store'] = Mage::app()->getStore();
$emailTemplateVars['sendername'] = 'sender name';
$emailTemplateVars['receivername'] = 'receiver name';
// order you want to load by ID
$emailTemplateVars['order'] = Mage::getModel('sales/order')->load(673);
// load payment details:
// usually rendered by this template:
// web/app/design/frontend/base/default/template/payment/info/default.phtml
$order = $emailTemplateVars['order'];
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
->setIsSecureMode(true);
$paymentBlock->getMethod()->setStore(Mage::app()->getStore());
$emailTemplateVars['payment_html'] = $paymentBlock->toHtml();
//displays the rendered email template
echo $emailTemplate->getProcessedTemplate($emailTemplateVars);
Ответ 4
Следуйте инструкциям в этом blogpost: Magento (L) ocalhost (E) imulator (S) erver (S) imulator (ноябрь 2010, Бранко Айзеле)
Magento сохранит e-mail html, включая все переменные, которые вы пытаетесь отправить в var/log
.
Ответ 5
На самом деле мы разработали расширение, которое позволяет вам выполнить именно это: Test отправить любую транзакционную электронную почту Magento из бэкэнда Magento. Надеюсь, что это не слишком коммерчески, чтобы упомянуть здесь:
http://www.yireo.com/software/magento-extensions/emailtester
Ответ 6
Мы разработали бесплатное расширение с открытым исходным кодом под названием Hackathon_EmailPreview.
В отношении писем заказов вы можете просматривать их в браузере без отправки, и вы можете ввести любой номер заказа, чтобы проверить, как выглядят разные заказы.
Ответ 7
Вы можете ввести бэкэнд, перейти к клиентам, выбрать своего собственного пользователя, а внизу - "Отправить автоматически сгенерированный пароль". Вставьте пароль администратора и нажмите "Сохранить и продолжить редактирование". Таким образом вы отправите пароль в свою учетную запись и протестируете свой шаблон.
Ответ 8
http://www.magentocommerce.com/magento-connect/send-a-test-newsletter-to-an-email.html
Хорошее расширение для бюллетеня для тестирования
Ответ 9
Я использую небольшой тест script, чтобы отправить электронное письмо с подтверждением заказа еще раз. Это работает с Magento 1.9, потому что он запускает cronjob для обработки очереди электронной почты. Далее он сбрасывает атрибут "Отправлено по электронной почте", поэтому Magento не пропускает отправку этого сообщения.
include 'app/Mage.php';
Mage::app('default');
$oid = '1234567';
$_order = Mage::getModel('sales/order')->load($oid);
$_order->setEmailSent('0');
$_order->save();
$_order->sendNewOrderEmail();
// var_dump($_order);
// Trigger email queue
$a = new Mage_Core_Model_Email_Queue();
$a->send();
echo "\nFinished\n";
Ответ 10
Перейдите в файл app/code/local/Mage/Core/Model/Email/Template.php. В функции отправки, вокруг строки 441 есть фрагмент кода
if ($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyHTML($text);
}
echo $text;die();
оно будет отображать почту в браузере, не отправляя ее пользователю. Можно использовать это для тестирования.
Ответ 11
Я выпустил расширение, позволяющее вам просматривать транзакционные письма из вашего бэк-офиса. Вам просто нужно пройти один заказ, и тогда кнопка предварительного просмотра почты будет доступна на нем в BO. Кроме того, он позволяет включать подсказки шаблона/блока непосредственно в окне предварительного просмотра почты.
Смотрите это здесь: https://github.com/OddBrew/Oddbrew_MailViewer
Это бесплатное расширение, поэтому я надеюсь, что оно не подпадает под рекламные правила SO.
Ответ 12
Вы можете использовать L.E.S.S для тестирования шаблонов писем magento. Посмотрите ссылку ниже.
http://inchoo.net/magento/magento-l-e-s-s/