我做了什么:
在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”是我需要挂钩的,请告诉我。因为我对于要挂钩的事件感到困惑。
帮帮我。
答案 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();