Magento는 주문이 접수되면 즉시 이메일 주문 확인서를 보냅니다. 주문을했으나 지불하지 않은 상태에서 사용자를 지불 게이트웨이로 리디렉션하는 경우 magento의 지불 리디렉션 설정을 사용하여 확인 이메일을 무시하도록 지불 모듈을 수정해야합니다 (Mage_Checkout_Model_Type_Onepage
클래스 saveOrder()
메소드 참조).
다음과 같은 코드가 표시되어야합니다.
/**
* 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);
}
}
이렇게하면 몇 가지 옵션이 제공됩니다. 결제 모듈을 확장하여 주문 장소 리디렉션 URL을 설정하지만 코딩 방식에 따라 지불 모듈이 엉망이 될 수도 있고 위 모듈을 직접 모듈로 확장 할 수도 있습니다 (코어를 수정하지 마십시오) saveOrder()
을 무시하십시오. 메서드를 호출하고 위의 if 문에서 지불 방법을 확인하십시오.
if (!$redirectUrl && $order->getPayment()->getMethod() != 'your_payment_method' && $order->getCanSendNewEmailFlag()) {
try {
$order->sendNewOrderEmail();
} catch (Exception $e) {
Mage::logException($e);
}
}
그런 다음 나는 당신이 페이팔 표준 모듈을 살펴 제안, 성공적으로 지불 IPN가 수신 될 때 이메일을 보내 얻을 IPN 통지를 처리하는 것이라고이 같은 몇 가지 포인터에 대한 젠토와 함께 제공 정확히 작동하는 방법입니다. 나는 당신이 가지고있는 EPDQ 모듈이 이미 이렇게 작동하지 않는다는 것에 놀랐고, 그들에게 연락하고 문제를 강조할만한 가치가있을 것입니다.