failureAction()
設定すると注文が失敗としてマークされ、それapp/code/core/Mage/Checkout/controller/OnepageController.php
が呼び出される1つのプロパティが何であるかを知りたいだけです。
私は、成功した支払いと失敗した支払いの請求書を作成し、注文をpending_payment
ステータスとともに保存し、上部にエラーメッセージを表示してカートページにリダイレクトしたい Observer.php を持っています。
これはすべてうまくいきます。失敗した/失敗した支払いの場合は、pending_payment ステータス n で注文を保存し、エラーメッセージを表示してカートページにリダイレクトするだけでなく、カートが空にならないように保持/保存したいと思います。
しかし、運が悪かった
Observer.php
public function implementOrderStatus($event)
{
$order = $event->getEvent()->getOrder();
if ($this->_getPaymentMethod($order) == 'mypaymentmodule')
{
$quote = Mage::getModel('sales/quote')->load($order->getQuoteId());
if($order->getPayment()->getCcTransId() == NULL)
{
$order->cancel();
$order->setStatus('canceled');
$order->save();
$quote->setIsActive(1)->save();
/*$state = 'pending_payment';
$status = 'pending_payment';
$comment = 'Payment transaction failed due to incorrect AVS/CVD details.';
$isNotified = false;
$order->setState($state,$status,$comment,$isNotified)->save();
$order->setCanSendNewEmailFlag(false);*/
Mage::getSingleton('checkout/session')->addError('Sorry, either of your card information (billing address or card validation digits) dint match. Please try again');
Mage::app()->getFrontController()->getResponse()->setRedirect('checkout/cart/')->sendResponse();
}
else
{
if ($order->canInvoice())
$this->_processOrderStatus($order);
}
}
return $this;
}
しかし$quote->setIsActive(true)->save()
、トリックをしていないようです。注文を「キャンセル済み」ステータスで保存した後、カートが空にならないようにするにはどうすればよいですか。