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 に答える