public function submitOrder() { $order = parent::submitOrder(); // Prevent the cart to be emptied before payment response //$this->_quote->setIsActive(true); return $order; }
public function submitOrder() { $version = Mage::getVersionInfo(); if (1 <= $version['major'] && 4 <= $version['minor'] && $version['revision'] <= 1) { return parent::submitOrder(); } $this->_deleteNominalItems(); $this->_validate(); $quote = $this->_quote; $isVirtual = $quote->isVirtual(); $transaction = Mage::getModel('core/resource_transaction'); if ($quote->getCustomerId()) { $transaction->addObject($quote->getCustomer()); } $transaction->addObject($quote); $quote->reserveOrderId(); if ($isVirtual) { $order = $this->_convertor->addressToOrder($quote->getBillingAddress()); } else { $order = $this->_convertor->addressToOrder($quote->getShippingAddress()); } $order->setBillingAddress($this->_convertor->addressToOrderAddress($quote->getBillingAddress())); if (!$isVirtual) { $order->setShippingAddress($this->_convertor->addressToOrderAddress($quote->getShippingAddress())); } $order->setPayment($this->_convertor->paymentToOrderPayment($quote->getPayment())); foreach ($this->_orderData as $key => $value) { $order->setData($key, $value); } foreach ($quote->getAllItems() as $item) { $orderItem = $this->_convertor->itemToOrderItem($item); if ($item->getParentItem()) { $orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId())); } // elite paint $this->setItemPaint($orderItem, $item); $order->addItem($orderItem); } $transaction->addObject($order); $transaction->addCommitCallback(array($order, 'place')); $transaction->addCommitCallback(array($order, 'save')); /** * We can use configuration data for declare new order status */ Mage::dispatchEvent('checkout_type_onepage_save_order', array('order' => $order, 'quote' => $quote)); Mage::dispatchEvent('sales_model_service_quote_submit_before', array('order' => $order, 'quote' => $quote)); try { $transaction->save(); $this->_inactivateQuote(); Mage::dispatchEvent('sales_model_service_quote_submit_success', array('order' => $order, 'quote' => $quote)); } catch (Exception $e) { Mage::dispatchEvent('sales_model_service_quote_submit_failure', array('order' => $order, 'quote' => $quote)); throw $e; } Mage::dispatchEvent('sales_model_service_quote_submit_after', array('order' => $order, 'quote' => $quote)); $this->_order = $order; return $order; }
public function submitOrder() { $order = parent::submitOrder(); // Prevent the cart to be emptied before payment response if ($order->getPayment()->getMethodInstance()->getPaymentMethodType() == 'pnsofortueberweisung') { $this->_quote->setIsActive(true); } return $order; }
/** * @return Mage_Sales_Model_Order */ public function submitOrder() { $order = parent::submitOrder(); if (Mage::getStoreConfig('payment/msp/keep_cart', $this->_quote->getStoreId()) || Mage::getStoreConfig('msp/settings/keep_cart', $this->_quote->getStoreId()) || $this->_quote->getPayment()->getMethod() == 'msp_payafter') { $this->_quote->setIsActive(true)->save(); $this->_quote->setReservedOrderId(null)->save(); } return $order; }
/** * @return Mage_Sales_Model_Order */ public function submitOrder() { $order = parent::submitOrder(); if (Mage::app()->getStore()->isAdmin()) { return $order; } if (in_array($this->_quote->getPayment()->getMethod(), $this->availablePaymentMethodCodes)) { if (Mage::getStoreConfig('payment/msp/keep_cart', $this->_quote->getStoreId()) || Mage::getStoreConfig('msp/settings/keep_cart', $this->_quote->getStoreId()) || $this->_quote->getPayment()->getMethod() == 'msp_payafter' || $this->_quote->getPayment()->getMethod() == 'msp_klarna') { $this->_quote->setIsActive(true)->save(); $this->_quote->setReservedOrderId(null)->save(); } } return $order; }
public function submitOrder() { $nVersion = Mage::getModel('cardsaveonlinepayments/direct')->getVersion(); if ($nVersion >= 1410) { if ($this->_quote->getPayment()->getMethodInstance()->getCode() != 'cardsaveonlinepayments') { return parent::submitOrder(); } $this->_deleteNominalItems(); $this->_validate(); $quote = $this->_quote; $isVirtual = $quote->isVirtual(); $transaction = Mage::getModel('core/resource_transaction'); if ($quote->getCustomerId()) { $transaction->addObject($quote->getCustomer()); } $transaction->addObject($quote); $quote->reserveOrderId(); if ($isVirtual) { $order = $this->_convertor->addressToOrder($quote->getBillingAddress()); } else { $order = $this->_convertor->addressToOrder($quote->getShippingAddress()); } $order->setBillingAddress($this->_convertor->addressToOrderAddress($quote->getBillingAddress())); if (!$isVirtual) { $order->setShippingAddress($this->_convertor->addressToOrderAddress($quote->getShippingAddress())); } $order->setPayment($this->_convertor->paymentToOrderPayment($quote->getPayment())); foreach ($this->_orderData as $key => $value) { $order->setData($key, $value); } foreach ($quote->getAllItems() as $item) { $orderItem = $this->_convertor->itemToOrderItem($item); if ($item->getParentItem()) { $orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId())); } $order->addItem($orderItem); } // make sure the customer can still use the quote if payment is failed //$quote->setIsActive(false); $transaction->addObject($order); $transaction->addCommitCallback(array($order, 'place')); $transaction->addCommitCallback(array($order, 'save')); /** * We can use configuration data for declare new order status */ Mage::dispatchEvent('checkout_type_onepage_save_order', array('order' => $order, 'quote' => $quote)); Mage::dispatchEvent('sales_model_service_quote_submit_before', array('order' => $order, 'quote' => $quote)); try { $transaction->save(); Mage::dispatchEvent('sales_model_service_quote_submit_success', array('order' => $order, 'quote' => $quote)); // need to store the orderID in the session for the callback from an external page Mage::getSingleton('checkout/session')->setCardsaveonlinepaymentsOrderId($order->getId()); } catch (Exception $e) { Mage::logException($e); Mage::dispatchEvent('sales_model_service_quote_submit_failure', array('order' => $order, 'quote' => $quote)); throw $e; } Mage::dispatchEvent('sales_model_service_quote_submit_after', array('order' => $order, 'quote' => $quote)); $this->_order = $order; return $order; } }