我只想知道什麼是一個屬性,當設置將標記爲失敗,以便failureAction()
app/code/core/Mage/Checkout/controller/OnepageController.php
被調用。如何以編程方式標記訂單失敗 - Magento
我有一個Observer.php,我正在爲成功的付款創建發票,併爲失敗的付款保存訂單pending_payment
狀態,並希望將它們重定向到購物車頁面,並在頂部顯示錯誤消息。
所有這一切都很好。只是,對於不成功/失敗的付款,以及以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()
似乎並沒有做的伎倆。任何幫助,如何在保存「取消」狀態的訂單後將我的購物車保存爲空。
感謝您的回覆。我已經嘗試了你建議的代碼,但是這並沒有把我帶到失敗頁面。我真正想要做的就是保存購物車,例如'$ quote-> setIsActive(true) - > save()'以保存購物車在失敗/取消的訂單上變空,以便客戶不必通過再次添加項目的麻煩。任何想法做到這一點? – ivn
編輯:請參閱編輯的問題了解更多信息。 – ivn
觀察者正在聽哪個事件?您可能可以通過發送一個標頭,將位置更改回購物車,從而通過例外。 – Florian