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

时间:2014-12-14 23:09:38

标签: php magento session

我做了什么:

在magento管理面板中为客户下订单后,我几乎没有自定义计算。我已经在我的模块的config.xml中的tab内部关注了sales_order_save_after事件。

问题:

我需要获得订单放在后端的实际客户的customer_id。怎么办呢?

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

如果是前端,上面的内容会给我customer_id,我需要一种方法来从后端订购时获取客户的ID。

如果事件“adminhtml_sales_order_create_process_data”是我需要挂钩的,请告诉我。因为我对于要挂钩的事件感到困惑。

帮帮我。

2 个答案:

答案 0 :(得分:0)

请使用此活动 sales_order_place_after 。 在您的代码中,您可能会获得如下客户ID:

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);
   ...
}

希望它会对你有所帮助。

答案 1 :(得分:0)

以下代码适用于我(感谢 Makwana Ketan 分享此代码)

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