Magento Extensions:Enhanced Order Grid
Overview
Customizing your sales grids has never been easier before! Easily add new columns (30 fields available - including payment method, shipping method, items ordered, tracking numbers and many more), hide unnecessary columns and change column positions in the Sales > Orders, Invoices, Shipments and Credit Memos grids using the Enhanced Order Grid extension by XTENTO.
Interested in this Magento Extension?
Head over to our store to purchase this extension: Enhanced Order Grid
Got questions? Feel free to contact us! Contact Form
Setting up the extension
Installation
Please refer to our general Extension Installation and Setup Guide for installation instructions.
To enable the module, go to System > Configuration > XTENTO Extensions > Enhanced Order Grid. Make sure to enter your license key and enable the module there.
Configuration
Customizing your grids is easy. Just open the respective grid, for example Sales > Orders, and press the "Grid Customization" button located right above the "Reset Filter" button.
You will now see a table with your grid configurations. If none exists, click "Add new customized grid" to create a new grid configuration.
- You first have to enter a name for the grid configuration (for example "Warehouse only"), and select the grid type (for example "Sales > Orders") you want to customize. Click on "Continue".
- You can now select the admin roles which should see this grid configuration. Also, on the left, you can select the "Grid Columns" tab which provides you with the ability to hide, change, remove and add columns.
- To hide or show a column in the grid, check or uncheck the "Visible in Grid" checkbox. To change the sort order, change the sort order index in the last column of the table.
- Most custom columns are located at the bottom of the "Column Configuration" table and can be easily activated by selecting the "Visible in Grid" checkbox.
- When you're done customizing your grid, press the "Save" button and go back to the Sales > Orders grid for example to see your changes.
Adding custom columns
Since version 1.4.6, it is easy to add custom columns to the grid, for example data stored in other tables in the database or other fields stored, e.g., in the sales_flat_order table.
To do so, just rename the app/code/local/Xtento/EnhancedGrid/Model/Columns/Customer/Columns.php.sample to Columns.php. Then follow the instructions/documentation inside that file.
Troubleshooting
General
- I can't find the configuration section: Please go through the setup guide once again to make sure the extension has been installed.
- I can't enable the extension: Please make sure you're using a valid license key. Read further
Wyomind Orders Eraser
- I am using the Wyomind_Orderseraser extension and I don't see the Delete action anymore after installing this extension.
This is actually an incompatibility in the Wyomind_Orderseraser extension. Please open the file app\code\community\Wyomind\Orderseraser\Model\Observer.php and look for this line:
if (get_class($block) == Mage::getStoreConfig("orderseraser/system/grid")) {
Replace this with:
if (is_subclass_of($block, Mage::getStoreConfig("orderseraser/system/grid"))) {
Save the file, refresh the Magento cache/compiler. Done.
Wyomind Advanced Stock
- I am using the Wyomind_Advancedinventory extension and the grid is not working properly. This is caused by a bug in their module, not properly checking grid classes and missing a filter_index.
Please open the file /app/code/local/Wyomind/Advancedinventory/Model/Observer.php and look for:
if (get_class($block) == Mage::getStoreConfig("advancedinventory/system/ordergrid")) {
Replace this with:
if ($block instanceof Mage_Adminhtml_Block_Sales_Order_Grid) {
Look for:
$collection->addFieldToFilter('assignation_warehouse', array('finset' => $value));
Replace this with:
$collection->addFieldToFilter('main_table.assignation_warehouse', array('finset' => $value));
Save the file, log out of Magento and log in again, refresh the Magento cache/compiler. Done.
Amasty Sales Reps & Dealers
If you are using this extension from Amasty, the orders grid can become very slow. We are unsure why but we don't think it's an issue on our side. It may be missing indexes.
Amasty Flags
- I am using the Amasty_Flags extension and the grid is not working properly.
Please open the file /code/local/Xtento/EnhancedGrid/Model/Grid/Rewrite.php and look for:
$this->_rewriteClass($collectionModule, $collectionName, $newModelClass, 'model');
Replace this with:
#$this->_rewriteClass($collectionModule, $collectionName, $newModelClass, 'model');
Save the file.
Open the file /code/local/Xtento/EnhancedGrid/etc/config.xml and look for:
</xtento_enhancedgrid_mysql4>
AFTER this add:
<sales_resource><rewrite><order_grid_collection>Xtento_EnhancedGrid_Model_Sales_Order_Grid_Collection</order_grid_collection></rewrite></sales_resource>
Save the file, refresh the Magento cache/compiler. Done.
Order grid shows only 1 page ("Page 1 of 1")
Open the file /code/local/Xtento/EnhancedGrid/etc/config.xml and look for:
</xtento_enhancedgrid_mysql4>
AFTER this add:
<sales_resource><rewrite><order_grid_collection>Xtento_EnhancedGrid_Model_Sales_Order_Grid_Collection</order_grid_collection></rewrite></sales_resource>
Save the file, refresh the Magento cache/compiler. Done.
Aitoc Checkout Fields Manager
- I am using the Aitoc Checkout Fields Manager extension and the grid is not working properly. I get errors saying "main_table.main_table.field_name not found".
Reason: This is caused by a bug in the Checkout Fields Manager extension. They add main_table in front of EVERY field in their grid rewrite, that's wrong.
Please open the file app/code/local/Aitoc/Aitcheckoutfields/Block/Rewrite/AdminhtmlSalesOrderGrid.php and look for:
$field = 'main_table.' . $field;
Replace this with:
#$field = 'main_table.' . $field;
Save the file, refresh the Magento cache/compiler. Done.
BusinessKing_AddColumnToOrderGrid
- I am using the BusinessKing AddColumnToOrderGrid extension and the grid is not working properly. I get errors saying "main_table.main_table.FIELD_NAME not found".
Reason: This is caused by a bug in their extension. They add main_table in front of EVERY field in their grid rewrite, that's wrong.
Please open the file app/code/local/BusinessKing/AddColumnToOrderGrid/Block/Adminhtml/Sales/Order/Grid.php and look for (two occurrences):
$column = "`main_table`.".$column;
Replace this with:
#$column = "`main_table`.".$column;
Save the file, refresh the Magento cache/compiler. Done.
WDCA Enhanced Admin Product Grid
The WDCA extension and our extension use the same configuration page identifier at System > Configuration. Thus, once our extension is installed, you will need to go to System > XTENTO > Enhanced Order Grid to configure the WDCA Product Grid extension. The WDCA Product Grid configuration is BELOW the "Extension Configuration" section of our extension.
BL_CustomGrid
The usage of BL_CustomGrid and our extension at the same time is not recommended. In order for the sales grids to work, please disable BL_CustomGrid rewriting the sales grid by going to System > Configuration > ENHANCED ADMIN GRIDS > Base Configuration and in the "Global Exclusions" list please add an exclusion for: Block Type "adminhtml/sales_*_grid" (Without quotes, and yes including the *) - Rewriting Class: "*" (Without quotes, so this field will just contain a *)
Fatal error: Call to a member function setColumn() on a non-object
If you are using our extension and are getting an error on the Sales grids saying:
Fatal error: Call to a member function setColumn() on a non-object in [...]/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column.php on line 291
This can be caused by a extension that added fields to the Sales grids but has now been disabled. To fix this, go into the xtento_enhancedgrid_grid table in your database and delete your grid configurations. The error will disappear and you will be able to set up your grids again.
Magemaven_OrderComment
The way this extension rewrites the order grid collection is not compatible. Thus, you have to disable the rewrite of the order_grid_collection class in config.xml and comment out the _getCollectionClass() function in Block/Adminhtml/Sales/Order/Grid.php.
New payment method installed, does not show up in grid
Or if other fields remain empty. This is because the grid configuration is cached for performance reasons. Simply go to Sales > Orders, press "Grid Customization" and open your grid configuration. Save it once. You will now see the new fields on the grid.
Grid loads slow
In version 1.8.2 we added an performance improvement: Added ability to add "Entity ID" to orders grid; add this column to the gird, and sort by this column and your grid will load much faster (only affecting store with many orders)
You cannot define a correlation name 'oe' more than once
Seems to be a bug in the Mailchimp module. Fix:
File: /app/code/community/Ebizmarts/MailChimp/Model/Observer.php
Look for:
public function addColumnToSalesOrderGridCollection(Varien_Event_Observer $observer)
{
AFTER the { add:
if (stristr(Mage::app()->getRequest()->getControllerName(), 'sales_') && (Mage::app()->getRequest()->getActionName() == 'exportCsv' || Mage::app()->getRequest()->getActionName() == 'exportExcel')) {
return;
}
Tig_PostNl
Using this module? The following change may be required if you get memory errors or a blank grid upon filtering.
File: /app/code/community/TIG/PostNL/Model/Adminhtml/Observer/OrderGrid.php
Look for: protected function _filterConfirmDate($collection, $column)
Replace with: public function _filterConfirmDate($collection, $column)