tag puedo por personalizar nombre name limite info first enviar enable cuantos correos contactos conocimiento como php magento

php - puedo - Magento: vista previa/prueba de correos electrónicos transaccionales con datos reales, sin enviarlos realmente?



merge nombre mailchimp (10)

Estoy editando algunos archivos phtml que están incluidos en los correos electrónicos transaccionales en Magento, pero para poder probar los cambios, tengo que enviar los correos electrónicos. En el caso de (por ejemplo) el correo electrónico de confirmación de pedido, esto significa que debo hacer un pedido cada vez que deseo probar un correo electrónico.

Elegir "vista previa de correo electrónico" en el backend no ayuda porque el correo electrónico no contiene datos de orden visibles.

¿Hay alguna manera de obtener una vista previa de un correo electrónico transaccional pero hacer que se presente con los datos del pedido?



Del usuario RS:

No tiene que crear un nuevo pedido, puede volver a enviar un pedido de correo electrónico anterior (accediendo a ese pedido y haciendo clic en volver a enviar el correo electrónico).

Eso es lo más cercano que he encontrado para volver a probar rápidamente los correos electrónicos cuando se juega con las plantillas. Gracias RS!


Desarrollamos una extensión gratuita de código abierto llamada Hackathon_EmailPreview .

Con respecto a los correos de pedidos, puede obtener una vista previa de ellos en el navegador sin enviarlos y puede ingresar cualquier número de pedido para verificar cómo se verían los diferentes pedidos.


El siguiente fragmento mostrará el correo electrónico de "nueva orden de venta" y lo muestra para cualquier orden determinada. Coloque lo siguiente en /test.php, por ejemplo, y simplemente busque la ubicación adecuada, como 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);


Para los pedidos de venta, utilizo una cuenta de prueba y un script que tengo en mi directorio raíz.

el script se ve así:

<?php include ''app/Mage.php''; Mage::app(''default''); $_order = Mage::getModel(''sales/order'')->load($argv[1]); $_order->sendNewOrderEmail();

y lo llamo así:

php -f sendTestEmail.php -- 4303

donde 4303 es el orden que he usado para probar antes.

Espero que ayude.


Puede ingresar en el back-end, ir a los clientes, seleccionar su propio usuario de cliente, y en la parte inferior tendrá "Enviar contraseña generada automáticamente". Inserte la contraseña de administrador y haga clic en "Guardar y continuar editando". De esta forma, enviará una contraseña a su propia cuenta y pondrá a prueba su plantilla.



Utilizo un pequeño script de prueba para enviar nuevamente el correo electrónico de confirmación de pedido. Esto funciona con Magento 1.9 porque desencadena el cronjob para procesar la cola de correo electrónico. Además restablece el atributo "Correo electrónico enviado" para que Magento no omita el envío de ese correo electrónico.

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";


Vaya al archivo app / code / local / Mage / Core / Model / Email / Template.php. En la función de envío, alrededor de la línea 441 hay un fragmento de código

if ($this->isPlain()) { $mail->setBodyText($text); } else { $mail->setBodyHTML($text); }

Agrega echo $ text after} con die. hará eco del correo en el navegador sin enviarlo al usuario.