2014-03-12 48 views
1

我正在使用magento 1.7.Can任何人都可以帮助/建议这?Magento命令电子邮件

也使用EPDQ Barclaycard模块。

一切似乎确定与捕获付款,但是当我去结账时填写所有细节,直到付款信息选择卡类型和继续,然后下订单一个新的订单电子邮件已发送,但它尚未支付!

无论如何,这是可以防止,直到通过Barclaycard捕获付款?

我错过了什么吗?

在此先感谢

回答

1

Magento发出订单后立即发送电子邮件订单确认。如果您在订单下达后未将用户重定向到支付网关,您将需要修改您的付款模块以使用magento的付款重定向设置,以使其忽略确认电子邮件(请参见Mage_Checkout_Model_Type_OnepagesaveOrder()方法)。

你应该看到一些类似的代码;

/** 
* a flag to set that there will be redirect to third party after confirmation 
* eg: paypal standard ipn 
*/ 
$redirectUrl = $this->getQuote()->getPayment()->getOrderPlaceRedirectUrl(); 
/** 
* we only want to send to customer about new order when there is no redirect to third party 
*/ 
if (!$redirectUrl && $order->getCanSendNewEmailFlag()) { 
    try { 
     $order->sendNewOrderEmail(); 
    } catch (Exception $e) { 
     Mage::logException($e); 
    } 
} 

所以这给了你几个选择。扩展您的付款模块,以便设置订单地点重定向网址,但这可能会根据您的付款模块编码方式搞乱您的付款模块,或者您可以将以上类别扩展到您自己的模块(不要修改核心),覆盖saveOrder()方法,并在上面显示的if语句中检查付款方式有点像;

if (!$redirectUrl && $order->getPayment()->getMethod() != 'your_payment_method' && $order->getCanSendNewEmailFlag()) { 
    try { 
     $order->sendNewOrderEmail(); 
    } catch (Exception $e) { 
     Mage::logException($e); 
    } 
} 

你可以这样来处理IPN通知让它在收到成功付款IPN发送电子邮件,我建议你看一看PayPal的标准模块附带Magento的一些指针,因为这正是它的工作原理。我很惊讶你的EPDQ模块不能像这样工作,可能值得与他们联系并强调这个问题。