如何在成功结账过程后发送电子邮件?

时间:2012-11-01 11:29:25

标签: magento

在我的商店中,我创建了一个自定义模块,用于一步结帐流程。

所有代码都运行正常。但在结账过程结束后,订单详细信息电子邮件不会发送给客户。这是我的代码的相关部分。

$service = Mage::getModel('sales/service_quote', $quote);
$service->submitAll();                          
$order = $service->getOrder();

//This one is the email send code

$order_mail = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order_mail->loadByIncrementId($incrementId);
$order_mail->sendNewOrderEmail();               

$this->_redirect('downloadable/customer/products/');

4 个答案:

答案 0 :(得分:4)

以magento

发送/重新发送订单电子邮件
try {

    $incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
    $_order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
    $_order->sendNewOrderEmail();

    $this->_getSession()->addSuccess($this->__('The order email has been sent.'));

} catch (Exception $e) {
    $this->_getSession()->addError($this->__('Failed to send the order email.'));
    Mage::logException($e);
}

答案 1 :(得分:1)

尝试将其放入try catch中以查看错误是什么

<?php
  $order_mail = new Mage_Sales_Model_Order();
  $incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
  $order_mail->loadByIncrementId($incrementId);
  try
  {
  $order_mail->sendNewOrderEmail();
  } catch (Exception $ex) {  }
 ?>

答案 2 :(得分:0)

你进入sendNewOrderEmail时调试了吗?也许这有助于找出问题所在?

此致

答案 3 :(得分:0)

试试这个,

 < ?php
$order = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
try
{
$order->sendNewOrderEmail();
} catch (Exception $ex) {  }
?>

将上述代码段保存为.phtml,并将其上传到app / code / core / Mage。

现在在您的网站上下订单并在成功结帐后检查电子邮件是否正在发送。希望您的问题现在应该解决。