/** * Catch guest order creation in admin * * @param Varien_Event_Observer $observer * @return void */ public function adminCheckGuestOrder(Varien_Event_Observer $observer) { /* @var $request Mage_Core_Controller_Request_Http */ $request = $observer->getRequestModel(); /** @var $session Mage_Adminhtml_Model_Session_Quote */ $session = $observer->getSession(); if ($request->getParam('is_guest_order')) { // In case of guest order mark the quote appropriately $session->getQuote()->setCustomerIsGuest(true); if (($originalOrderId = $session->getPreviousOrderId()) && !$session->getIsGuestAddressPopulated()) { // Populate address fields from the original order $originalOrder = Mage::getModel('sales/order')->load($originalOrderId); if ($originalOrder->getId()) { $session->getQuote()->getBillingAddress()->setCustomerAddressId(''); Mage::helper('core')->copyFieldset('sales_copy_order_billing_address', 'to_order', $originalOrder->getBillingAddress(), $session->getQuote()->getBillingAddress()); $session->getQuote()->getShippingAddress()->setCustomerAddressId(''); Mage::helper('core')->copyFieldset('sales_copy_order_shipping_address', 'to_order', $originalOrder->getShippingAddress(), $session->getQuote()->getShippingAddress()); // Don't set our "guest address populated" flag on the session just yet, // because quote isn't saved during this request in every case. Wait for save. $session->getQuote()->setFlagGuestAddressOnSave(true); } } } }
/** * Upload and parse CSV file with SKUs * * @param Varien_Event_Observer $observer * @return null */ public function uploadSkuCsv(Varien_Event_Observer $observer) { /** @var $helper Enterprise_Checkout_Helper_Data */ $helper = Mage::helper('enterprise_checkout'); $rows = $helper->isSkuFileUploaded($observer->getRequestModel()) ? $helper->processSkuFileUploading($observer->getSession()) : array(); if (empty($rows)) { return; } /* @var $orderCreateModel Mage_Adminhtml_Model_Sales_Order_Create */ $orderCreateModel = $observer->getOrderCreateModel(); $cart = $this->_getBackendCart($observer); $cart->prepareAddProductsBySku($rows); $cart->saveAffectedProducts($orderCreateModel, false); }