Recently, we’ve faced a data inconsistency in the Magento sales_flat_order_grid db table. Some of the values in custom columns look like they were shifted. This issue may occur if the order grid has multiple custom fields and when a user archives orders in the Enterprise Edition.
Thanks to this thread, we’ve developed a shell-script, which will refresh the sales_flat_order_grid table to correspond exactly to the sales_flat_order table:
<?php /** * @author Atwix Team * @copyright Copyright (c) 2016 Atwix (https://www.atwix.com/) * @package Atwix_Shell */ require_once 'abstract.php'; class Atwix_Shell_Free_Order_Grid_Update extends Mage_Shell_Abstract { public function run() { try { Mage::getModel('sales/order')->getResource()->updateGridRecords( Mage::getResourceModel('sales/order_collection')->getAllIds() ); echo 'Done!' . PHP_EOL; } catch (Exception $e) { echo $e->getMessage() . PHP_EOL; } } } $shell = new Atwix_Shell_Free_Order_Grid_Update(); $shell->run();
You can run this script from your Magento installation root directory in the following way:
php shell/orders_grid_update.php
Pretty simple and really efficient. I hope, this little blog post will save you some time.
Thanks for reading!
You may also want to read:
- Adding SKU Column to Magento Order Grid
- Adding a Column to Magento Order Grid – Alternative Way Using Layout Handles
- Adding a Custom Attribute/Column to the Order Grid in Magento Admin