public function setShippingMethods($methods) { $errors = Mage::getModel('adjdeliverydate/step')->multiprocess(); if ($errors) { Mage::throwException($errors['message']); } $aAllShippingAddresses = $this->getQuote()->getAllShippingAddresses(); Mage::getModel('adjdeliverydate/quote')->multiSaveDelivery($aAllShippingAddresses); return parent::setShippingMethods($methods); }
/** * Create orders per each quote address * * @return Mage_Checkout_Model_Type_Multishipping */ public function createOrders() { $version = Mage::getVersion(); $version = substr($version, 0, 5); $version = str_replace('.', '', $version); while (strlen($version) < 3) { $version .= "0"; } if ((int) $version >= 150) { return parent::createOrders(); } $orderIds = array(); $this->_validate(); $shippingAddresses = $this->getQuote()->getAllShippingAddresses(); $orders = array(); if ($this->getQuote()->hasVirtualItems()) { $shippingAddresses[] = $this->getQuote()->getBillingAddress(); } try { foreach ($shippingAddresses as $address) { $order = $this->_prepareOrder($address); $orders[] = $order; Mage::dispatchEvent('checkout_type_multishipping_create_orders_single', array('order' => $order, 'address' => $address)); } foreach ($orders as $order) { $order->place(); $order->save(); if (!method_exists(Mage::getModel('sales/order'), 'getCanSendNewEmailFlag') || method_exists(Mage::getModel('sales/order'), 'getCanSendNewEmailFlag') && $order->getCanSendNewEmailFlag()) { $order->sendNewOrderEmail(); } $orderIds[$order->getId()] = $order->getIncrementId(); } Mage::getSingleton('core/session')->setOrderIds($orderIds); Mage::getSingleton('checkout/session')->setLastQuoteId($this->getQuote()->getId()); $this->getQuote()->setIsActive(false)->save(); Mage::dispatchEvent('checkout_submit_all_after', array('orders' => $orders, 'quote' => $this->getQuote())); return $this; } catch (Exception $e) { Mage::dispatchEvent('checkout_multishipping_refund_all', array('orders' => $orders)); throw $e; } }