Подтвердить что ты не робот

Magento: просмотр/тестирование транзакционных писем с фактическими данными без их отправки?

Я редактирую некоторые phtml файлы, которые включены в транзакционные письма в Magento, но чтобы проверить изменения, я должен отправить электронные письма. В случае (например, письма с подтверждением заказа это означает, что я должен делать заказ каждый раз, когда хочу проверить электронную почту!

Выбор "предварительного просмотра электронной почты" в бэкэнд не помогает, потому что письмо не содержит видимых данных заказа.

Есть ли способ просмотреть транзакционное электронное письмо, но его визуализировать с данными заказа?

4b9b3361

Ответ 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);

Ответ 5

На самом деле мы разработали расширение, которое позволяет вам выполнить именно это: Test отправить любую транзакционную электронную почту Magento из бэкэнда Magento. Надеюсь, что это не слишком коммерчески, чтобы упомянуть здесь: http://www.yireo.com/software/magento-extensions/emailtester

Ответ 6

Мы разработали бесплатное расширение с открытым исходным кодом под названием Hackathon_EmailPreview.

В отношении писем заказов вы можете просматривать их в браузере без отправки, и вы можете ввести любой номер заказа, чтобы проверить, как выглядят разные заказы.

Ответ 7

Вы можете ввести бэкэнд, перейти к клиентам, выбрать своего собственного пользователя, а внизу - "Отправить автоматически сгенерированный пароль". Вставьте пароль администратора и нажмите "Сохранить и продолжить редактирование". Таким образом вы отправите пароль в свою учетную запись и протестируете свой шаблон.

Ответ 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/