在后端管理面板订单中获取客户详细信息

What I have done:

I have few custom calculations to be done after placing an order for the customer in magento admin panel. I have hooked on to sales_order_save_after event inside tab inside my module's config.xml .

The Problem:

I need to get the customer_id of the actual customer for whom the order is been placed on the backend. How can this be done?

$_customer = Mage::getSingleton('customer/session')->getCustomer();
$customer_id=$_customer->getId(); 

The above will give me the customer_id in case of front end, I need a way to get the customer's id when ordering from backend.

In case, the event "adminhtml_sales_order_create_process_data", is what I need to hook on, do let me know. because I am also kind of confused about which event to hook on.

Help me out.

Please use this event sales_order_place_after. And in your code, you might get the customer id like this:

public function hookSalesOrderPlaceAfter(Varien_Event_Observer $observer) {
   $order = $observer->getEvent()->getOrder();
   $customer_email = $order->getCustomerEmail();
   $website_id = Mage::app()->getStore()->getWebsiteId();
   $customer = Mage::getModel('customer/customer')->setWebsiteId($website_id)->loadByEmail($customer_email);
   ...
}

Hope it will help you.

This code below works for me (Thanks to Makwana Ketan shared this code)

  $sessionquoteId = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getId();
    $sessionCustomerId = Mage::getModel('sales/quote')->loadByIdWithoutStore($sessionquoteId)->getCustomerId();