0

I have followed the guide here by Volodymyr Vygovskyi, everything is working well, apart from when you filter by a sku, it causes the issue:

Strict Notice: call_user_func() expects parameter 1 to be a valid callback, non-static method Atwix_ExtendedGrid_Model_Observer::filterSkus() should not be called statically in /Applications/XAMPP/xamppfiles/htdocs/mag19/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php on line 468

Investigating this I can see that he has the following as his filter_condition_callback:

'filter_condition_callback' => array('Atwix_ExtendedGrid_Model_Observer', 'filterSkus'),

whereby the observer is being called statically here:

'Atwix_ExtendedGrid_Model_Observer'

In my attempts to fix this, I changed this to the variable $this, which causes the filterSkus function to not be found.

Thus, I then attempted to move the filter function to the helper data.php file. This then led to the sku column in sales_flat_order_item to not be found.

Likewise also tried changing the string declaration of the observer to Mage::getSingleton('Atwix_ExtendedGrid_model_observer'). But, this then causes the following error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sales_flat_order_item.sku' in 'where clause', query was: SELECT COUNT(DISTINCT main_table.entity_id) FROM `sales_flat_order_grid` AS `main_table` WHERE ((sales_flat_order_item.sku like '%lab%'))

I am at a loggerhead with how to fix this issue, thus was hoping someone could help me.

0

I have managed to solve this via the following:

  1. changing the string declaration of the observer to Mage::getSingleton('Atwix_ExtendedGrid_model_observer')
  2. Added the following missing join to the salesOrderGridCollectionLoadBefore function:

    $select->join('sales_flat_order_item', 'sales_flat_order_item.order_id=main_table.entity_id', array('skus' => new Zend_Db_Expr('group_concat(sales_flat_order_item.sku SEPARATOR ", ")')));

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.