it-swarm.com.de

Magento: Transaktions-E-Mails mit tatsächlichen Daten in der Vorschau anzeigen/testen, ohne sie tatsächlich zu senden?

Ich bearbeite einige phtml-Dateien, die in Transaktions-E-Mails in Magento enthalten sind, aber um die Änderungen zu testen, muss ich die E-Mails tatsächlich senden. Im Falle einer Bestellbestätigungs-E-Mail bedeutet dies, dass ich jedes Mal eine Bestellung aufgeben muss, wenn ich eine E-Mail testen möchte!

Die Auswahl von "Vorschau-E-Mail" im Backend ist nicht hilfreich, da die E-Mail keine sichtbaren Auftragsdaten enthält.

Gibt es eine Möglichkeit, eine Vorschau einer Transaktions-E-Mail anzuzeigen, diese jedoch mit Auftragsdaten zu rendern?

33
WackGet

Von Benutzer R.S:

Sie müssen keine neue Bestellung erstellen. Sie können eine E-Mail mit einer früheren Bestellung erneut senden (indem Sie diese Bestellung aufrufen und auf E-Mail erneut senden klicken).

Das ist das Nächste, was ich gefunden habe, um E-Mails schnell zu testen, wenn Sie mit den Vorlagen herumspielen. Danke R.S!

33
WackGet

Für Verkaufsaufträge verwende ich ein Testkonto und ein Skript, das ich in meinem Stammverzeichnis habe.

das Skript sieht so aus:

<?php
include 'app/Mage.php';
Mage::app('default');

$_order = Mage::getModel('sales/order')->load($argv[1]);
$_order->sendNewOrderEmail(); 

und ich nenne es wie:

php -f sendTestEmail.php -- 4303 

dabei ist 4303 die Reihenfolge, die ich zuvor zum Testen verwendet habe.

hoffentlich hilft das.

15
MutantTurkey

Das folgende Snippet rendert die E-Mail "Neuer Kundenauftrag" und zeigt sie für eine bestimmte Bestellung an. Fügen Sie zum Beispiel Folgendes in /test.php ein und navigieren Sie einfach zum richtigen Speicherort wie 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);
14
chickahoona

Befolgen Sie die Anweisungen in diesem Blogpost: Magento (L) ocalhost (E) mail (S) erver (S) imulator (November 2010; von Branko Ajzele) Magento speichert die HTML-E-Mails einschließlich aller Die Variablen, die Sie in var/log senden möchten.

5

Wir haben tatsächlich eine Erweiterung entwickelt, mit der Sie genau das tun können: Testen Sie jede Magento Transaktions-E-Mail aus dem Magento Backend. Ich hoffe, es ist nicht zu kommerziell, es hier zu erwähnen.: http://www.yireo.com/software/magento-extensions/emailtester

3
jissereitsma

Wir haben eine kostenlose Open-Source-Erweiterung namens Hackathon_EmailPreview entwickelt.

Bei Bestellmails können Sie eine Vorschau im Browser anzeigen, ohne zu senden. Sie können eine beliebige Bestellnummer eingeben, um zu prüfen, wie die verschiedenen Bestellungen aussehen würden.

3
Matthias Zeis
0
Alex

Sie können Backend eingeben, zu Kunden gehen, Ihren eigenen Kundenbenutzer auswählen, und unten wird "Automatisch generiertes Kennwort senden" angezeigt. Geben Sie das Admin-Passwort ein und klicken Sie auf "Speichern und Bearbeitung fortsetzen". Auf diese Weise senden Sie ein Kennwort an Ihr eigenes Konto und testen Ihre Vorlage.

0
Iggy

Gehen Sie zur Datei app/code/local/Mage/Core/Model/Email/Template.php . In der Sendefunktion befindet sich um die Zeile 441 herum ein Code

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

die E-Mail wird im Browser angezeigt, ohne sie tatsächlich an den Benutzer zu senden. Man kann dies zum Testen verwenden.

0
Rajeev Singh

Ich habe eine Erweiterung veröffentlicht, mit der Sie Transaktionsmails in Ihrem Back-Office anzeigen können. Sie müssen nur eine Bestellung übergeben, und dann wird eine Schaltfläche für die Mail-Vorschau in der BO verfügbar sein. Außerdem können Sie Vorlagen-/Blockhinweise direkt im E-Mail-Vorschaufenster aktivieren.

Sehen Sie es hier: https://github.com/OddBrew/Oddbrew_MailViewer

Dies ist eine kostenlose Erweiterung, daher hoffe ich, dass sie nicht unter die Verkaufsregeln von SO fällt.

0
OddBrew

Ich verwende ein kleines Testskript, um die Bestellbestätigungs-E-Mail erneut zu senden. Dies funktioniert mit Magento 1.9, weil dadurch der Cronjob zur Verarbeitung der E-Mail-Warteschlange ausgelöst wird. Außerdem wird das Attribut "E-Mail gesendet" zurückgesetzt, sodass Magento das Senden dieser E-Mail nicht überspringt.

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