/** * Submit the order */ public function placeOrderAction() { try { $requiredAgreements = Mage::helper('checkout')->getRequiredAgreementIds(); if ($requiredAgreements) { $postedAgreements = array_keys($this->getRequest()->getPost('agreement', array())); if (array_diff($requiredAgreements, $postedAgreements)) { Mage::throwException(Mage::helper('paypal')->__('Please agree to all the terms and conditions before placing the order.')); } } $this->_initCheckout(); $this->_checkout->place($this->_initToken()); // prepare session to success or cancellation page $session = $this->_getCheckoutSession(); $session->clearHelperData(); // "last successful quote" $quoteId = $this->_getQuote()->getId(); $session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId); // an order may be created $order = $this->_checkout->getOrder(); if ($order) { $session->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId()); // as well a billing agreement can be created $agreement = $this->_checkout->getBillingAgreement(); if ($agreement) { $session->setLastBillingAgreementId($agreement->getId()); } } // recurring profiles may be created along with the order or without it $profiles = $this->_checkout->getRecurringPaymentProfiles(); if ($profiles) { $ids = array(); foreach ($profiles as $profile) { $ids[] = $profile->getId(); } $session->setLastRecurringProfileIds($ids); } // redirect if PayPal specified some URL (for example, to Giropay bank) $url = $this->_checkout->getRedirectUrl(); if ($url) { $this->getResponse()->setRedirect($url); return; } $this->_initToken(false); // no need in token anymore $this->_redirect('checkout/onepage/success'); return; } catch (Mage_Paypal_Model_Api_ProcessableException $e) { $this->_processPaypalApiError($e); } catch (Mage_Core_Exception $e) { Mage::helper('checkout')->sendPaymentFailedEmail($this->_getQuote(), $e->getMessage()); $this->_getSession()->addError($e->getMessage()); $this->_redirect('*/*/review'); } catch (Exception $e) { Mage::helper('checkout')->sendPaymentFailedEmail($this->_getQuote(), $this->__('Unable to place the order.')); $this->_getSession()->addError($this->__('Unable to place the order.')); Mage::logException($e); $this->_redirect('*/*/review'); } }
/** * Submit the order */ public function placeOrderAction() { try { $this->_initCheckout(); $this->_checkout->place($this->_initToken()); // prepare session to success or cancellation page $session = $this->_getCheckoutSession(); $session->clearHelperData(); // "last successful quote" $quoteId = $this->_getQuote()->getId(); $session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId); // an order may be created $order = $this->_checkout->getOrder(); if ($order) { $session->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId()); // as well a billing agreement can be created $agreement = $this->_checkout->getBillingAgreement(); if ($agreement) { $session->setLastBillingAgreementId($agreement->getId()); } } // recurring profiles may be created along with the order or without it $profiles = $this->_checkout->getRecurringPaymentProfiles(); if ($profiles) { $ids = array(); foreach ($profiles as $profile) { $ids[] = $profile->getId(); } $session->setLastRecurringProfileIds($ids); } // redirect if PayPal specified some URL (for example, to Giropay bank) $url = $this->_checkout->getRedirectUrl(); if ($url) { $this->getResponse()->setRedirect($url); return; } $this->_initToken(false); // no need in token anymore $this->_redirect('checkout/onepage/success'); return; } catch (Mage_Core_Exception $e) { $this->_getSession()->addError($e->getMessage()); } catch (Exception $e) { $this->_getSession()->addError($this->__('Unable to place the order.')); Mage::logException($e); } $this->_redirect('*/*/review'); }
public function place($token, $shippingMethodCode = null) { $shippingMethodFromReq = Mage::app()->getRequest()->getPost('shipping_method'); if (!$shippingMethodCode && $shippingMethodFromReq) { $this->updateShippingMethod($shippingMethodFromReq); } try { parent::place($token, $shippingMethodCode); $orderId = $this->getOrder() instanceof Mage_Sales_Model_Order ? $this->getOrder()->getId() : null; } catch (Exception $e) { Mage::logException($e); $orderId = null; } $recurringProfiles = $this->getRecurringPaymentProfiles(); $recurringProfileIds = array(); foreach ($recurringProfiles as $recProfile) { $recurringProfileIds[] = $recProfile->getId(); } Mage::dispatchEvent('aitcheckoutfields_paypal_express_order_place_after', array('order_id' => $orderId, 'recurring_profile_ids' => $recurringProfileIds)); }
/** * Submit the order */ public function placeOrderAction() { try { // $requiredAgreements = Mage::helper('checkout')->getRequiredAgreementIds(); // if ($requiredAgreements) { // $postedAgreements = array_keys($this->getRequest()->getPost('agreement', array())); // if (array_diff($requiredAgreements, $postedAgreements)) { // Mage::throwException(Mage::helper('paypal')->__('Please agree to all the terms and conditions before placing the order.')); // } // } $this->_initCheckout(); $this->_checkout->place($this->_initToken()); // prepare session to success or cancellation page $session = $this->_getCheckoutSession(); $session->clearHelperData(); // "last successful quote" $quoteId = $this->_getQuote()->getId(); $session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId); // an order may be created $order = $this->_checkout->getOrder(); if ($order) { $session->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId()); // as well a billing agreement can be created $agreement = $this->_checkout->getBillingAgreement(); if ($agreement) { $session->setLastBillingAgreementId($agreement->getId()); } } // recurring profiles may be created along with the order or without it $profiles = $this->_checkout->getRecurringPaymentProfiles(); if ($profiles) { $ids = array(); foreach ($profiles as $profile) { $ids[] = $profile->getId(); } $session->setLastRecurringProfileIds($ids); } // redirect if PayPal specified some URL (for example, to Giropay bank) $url = $this->_checkout->getRedirectUrl(); if ($url) { $this->getResponse()->setRedirect($url); return; } $this->_initToken(false); // no need in token anymore $this->_redirect('checkout/onepage/success'); return; } catch (Mage_Core_Exception $e) { if ($e->getCode() == 3 && $e->getMessage() == 'This customer email already exists') { $message = $e->getMessage() . '. If you are sure that it is your email address, <a href="#" onclick="popupPaypalReviewLogin('; $message .= "'" . $this->getRequest()->getPost('customer-email') . "'" . ');">click here</a> to login.'; $this->_getSession()->addError($message); } else { $this->_getSession()->addError($e->getMessage()); } } catch (Exception $e) { $this->_getSession()->addError($this->__('Unable to place the order.')); Mage::logException($e); } $this->_redirect('*/*/review'); }