4

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

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

$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

4 回答 4

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);
}
于 2012-11-01T12:18:05.297 回答
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) {  }
 ?>
于 2012-11-01T11:42:57.587 回答
0

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

问候

于 2012-11-01T14:23:30.207 回答
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。

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

于 2013-10-23T20:02:20.413 回答