コード例 #1
0
 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);
 }
コード例 #2
0
 /**
  * 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;
     }
 }