【问题标题】:Get customer details in backend admin panel order在后端管理面板订单中获取客户详细信息
【发布时间】:2014-12-14 23:09:38
【问题描述】:

我做了什么:

在 magento 管理面板中为客户下订单后,我几乎没有要做自定义计算。我已经在我的模块的 config.xml 中的选项卡内迷上了 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”是我需要关注的,请告诉我。因为我也有点困惑要挂上哪个事件。

帮帮我。

【问题讨论】:

  • 您是在前端下单后获取客户数据,还是在后端手动创建订单后获取客户数据?
  • 在后端手动创建prder后。 @AlexIvanov

标签: php magento session


【解决方案1】:

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

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    下面的这段代码对我有用(感谢 Makwana Ketan 分享了这段代码)

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

    【讨论】:

    • 添加一些解释,说明此答案如何帮助 OP 解决当前问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2016-10-24
    • 2023-03-30
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多