Magento Expert Forum - Improve your Magento experience

Results 1 to 2 of 2

Adding a column to Magento orders grid - alternative way using layout handles

  1. #1
    Junior Member golddev's Avatar
    Join Date
    Mar 2013
    Thanked 9 Times in 5 Posts

    Post Adding a column to Magento orders grid - alternative way using layout handles

    First of all, you should create a new module (in our case Atwix_ExtendedGrid) and define layout update for adminhtml:

    HTML Code:
    <!--file: app/code/local/Atwix/ExtendedGrid/etc/config.xml-->
    Note, this configuration is enough for adding fields from sales_flat_order_grid table (no sql joins are needed). But most likely, you will also need to add some field from the external table. For this purpose we use sales_order_grid_collection_load_before event to join extra tables. Here is how the observer configuration looks like:

    HTML Code:
    <!--file: app/code/local/Atwix/ExtendedGrid/etc/config.xml-->
    Then, add a function that handles our event to the observer:

    PHP Code:
    /*file: app/code/local/Atwix/ExtendedGrid/Model/Observer.php*/
         * Joins extra tables for adding custom columns to Mage_Adminhtml_Block_Sales_Order_Grid
         * @param $observer
    public function salesOrderGridCollectionLoadBefore($observer)
    $collection $observer->getOrderGridCollection();
    $select $collection->getSelect();
    $select->joinLeft(array('payment'=>$collection->getTable('sales/order_payment')), 'payment.parent_id=main_table.entity_id',array('payment_method'=>'method'));
    As you can see, we join sales_flat_order_payment table to get a payment method field.

    Now, it is time to add this field to the grid. We will use layout handles to call addColumnAfter method of sales_order.grid (Mage_Adminhtml_Block_Sales_Order_Grid) block. There are two handles that we are interested in: adminhtml_sales_order_index and adminhtml_sales_order_grid. The same code goes to both sections, so we will define a new handle sales_order_grid_update_handle and use update directive. And finally, here is how our layout file looks like:

    HTML Code:
    <!--file: app/design/adminhtml/default/default/layout/atwix/extendedgrid.xml -->
            <reference name="sales_order.grid">
                <action method="addColumnAfter">
                        <header>Payment Method</header>
            <!-- apply layout handle defined above -->
            <update handle="sales_order_grid_update_handle" />
            <!-- apply layout handle defined above -->
            <update handle="sales_order_grid_update_handle" />
    After all steps you should see your column:

    Here is a source code of the completed module. I hope you will find this article useful! Thanks for reading us!

    View more threads in the same category:

  2. #2
    Junior Member Amasty's Avatar
    Join Date
    May 2013
    Thanked 4 Times in 3 Posts


    Great tutorial!
    This can also be achieved with a special extension -
    Name:  magento-extended-order-grid-additional-columns.png
Views: 965
Size:  117.2 KB

Similar Threads

  1. How to Manage Orders in Magento
    By linh in forum Webmaster & Administrator
    Replies: 10
    Last Post: 25-09-2023, 09:53 AM
  2. Adding new category attribute in Magento
    By golddev in forum Programming & Development
    Replies: 21
    Last Post: 06-09-2023, 01:39 PM
  3. Adding Cache Support to Magento Blocks
    By sgdev in forum Magento Speed up, Performance and Optimize
    Replies: 2
    Last Post: 29-05-2014, 10:47 AM
  4. Adding currency to woocommerce?
    By speed2x in forum Wordpress
    Replies: 2
    Last Post: 31-07-2013, 12:47 PM
  5. magento order grid add tax/vat number customer
    By jacadesing in forum Programming Questions
    Replies: 1
    Last Post: 06-07-2013, 01:53 AM

Tags for this Thread


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts