将用户记录到magento中的后端管理订单

时间:2013-04-25 17:51:46

标签: magento

我已将以下内容添加到我正在处理的magento网站上,它基本上将已登录的用户名添加到对订单发表的任何评论中。

http://www.atwix.com/magento/adding-senders-name-order-comments/

我现在需要做的是添加一些内容来记录哪个用户在管理员中创建了订单,或者在每个订单页面上显示“在线订购”消息。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

为sales_order_place_after

创建一个观察者
<events>
    <sales_order_place_after>
        <observers>
            <orderenteredby>
                <type>singleton</type>
                <class>orderenteredby/observer</class>
                <method>implementOrderMethod</method>
            </orderenteredby>
        </observers>
    </sales_order_place_after>

在Observer.php中

class MagePal_OrderEnteredBy_Model_Observer 
{

    public function implementOrderMethod($event)
    {
        $_order = $event->getOrder();

        if($this->_isAdmin()){
            $_user = Mage::getSingleton('admin/session');
            $firstname = $_user->getUser()->getFirstname();
            $lastname = $_user->getUser()->getLastname();
            $enterBy = "Order entered by {$firstname} {$lastname}";  
        }
        else{
            $enterBy = 'Ordered Online';
        }
        $_order->addStatusHistoryComment($enterBy)
               ->setIsVisibleOnFront(false)
               ->setIsCustomerNotified(false);

        return $this;
    }

    protected function _isAdmin(){
        if(Mage::app()->getStore()->isAdmin()){
            return true;
        }

        if(Mage::getDesign()->getArea() == 'adminhtml'){
            return true;
        }

        return false;
    }
}

有关如何创建观察者的更多信息,请参阅Change Magento default status for duplicated products