【问题标题】:How to get the userid of the user that placed an order inside Magento admin panel?如何获取在 Magento 管理面板中下订单的用户的用户 ID?
【发布时间】:2014-05-10 21:24:09
【问题描述】:

我们通过每天帮助客户完成多少订单来奖励我们的管理员用户。所以我们需要跟踪哪些管理员下了哪些订单,我认为最简单的方法是将管理员用户 ID 添加到 magento 上的销售平面订单表中。

【问题讨论】:

    标签: magento admin enterprise ecommerce-sales


    【解决方案1】:

    您可以通过在sales_order_save_after 事件上创建Event-Observer 类型模块来做到这一点,只需确保将其包含在<adminhtml> 节点而不是<global> 中,否则客户在前端下订单您的网站可能会触发观察者功能。

    Observer.php 中,您可以通过以下方式将两者联系起来:

    1. 调用$observer->getEvent()->getOrder()->getId(); //这会从sales_flat_order 表中获取entity_id
    2. 将其与Mage::getSingleton('admin/session')->getUser()->getUserId(); 关联 //这将从admin_user 表中获取user_id

    另外,看起来 MagentoConnect 上已经有一个可用的模块:

    Administrator Who Placed The Order

    虽然它是一个付费扩展,但实现 Event-Observer 方法似乎很简单。

    【讨论】:

    • +1 创建了一个观察者并添加了: class PackageName_Module_Model_Observer { public function admin(Varien_Event_Observer $observer) { $admin = Mage::getSingleton('admin/session')->getUser()->getEmail (); $order = $observer->getEvent()->getOrder()->getIncrementId(); Mage::log('Order id = '.$order.' - 管理员是: '.$admin,null,'whichadmin.log'); } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多