Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>A different take by observing the event *sales_order_status_history_save_before*</p> <p>Define the setup and observer in your config:</p> <pre><code>&lt;config&gt; &lt;modules&gt; &lt;Name_Module&gt; &lt;version&gt;0.0.1&lt;/version&gt; &lt;/Name_Module&gt; &lt;/modules&gt; &lt;global&gt; &lt;resources&gt; &lt;module_setup&gt; &lt;setup&gt; &lt;module&gt;Name_Module&lt;/module&gt; &lt;/setup&gt; &lt;connection&gt; &lt;use&gt;core_setup&lt;/use&gt; &lt;/connection&gt; &lt;/module_setup&gt; &lt;/resources&gt; &lt;events&gt; &lt;sales_order_status_history_save_before&gt; &lt;observers&gt; &lt;sales_order_status_history_save_before_observer&gt; &lt;type&gt;singleton&lt;/type&gt; &lt;class&gt;Name_Module_Model_Observer&lt;/class&gt; &lt;method&gt;orderStatusHistorySaveBefore&lt;/method&gt; &lt;/sales_order_status_history_save_before_observer&gt; &lt;/observers&gt; &lt;/sales_order_status_history_save_before&gt; &lt;/events&gt; &lt;!-- and so on -&gt; </code></pre> <p>In your module_setup file app\code\local\Name\Module\sql\module_setup\install-0.0.1.php</p> <pre><code>$installer = $this; $installer-&gt;startSetup(); $table = $installer-&gt;getTable('sales/order_status_history'); $installer-&gt;getConnection() -&gt;addColumn($table, 'username', array( 'type' =&gt; Varien_Db_Ddl_Table::TYPE_TEXT, 'length' =&gt; 40, 'nullable' =&gt; true, 'comment' =&gt; 'Admin user name' )); $installer-&gt;getConnection() -&gt;addColumn($table, 'userrole', array( 'type' =&gt; Varien_Db_Ddl_Table::TYPE_TEXT, 'length' =&gt; 50, 'nullable' =&gt; true, 'comment' =&gt; 'Admin user role' )); $installer-&gt;endSetup(); </code></pre> <p>Then in Name_Module_Model_Observer:</p> <pre><code>public function orderStatusHistorySaveBefore($observer) { $session = Mage::getSingleton('admin/session'); if ($session-&gt;isLoggedIn()) { //only for login admin user $user = $session-&gt;getUser(); $history = $observer-&gt;getEvent()-&gt;getStatusHistory(); if (!$history-&gt;getId()) { //only for new entry $history-&gt;setData('username', $user-&gt;getUsername()); $role = $user-&gt;getRole(); //if you have the column userrole $history-&gt;setData('userrole', $role-&gt;getRoleName()); //you can save it too } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload