Erro ao paginar pedido no admin do Magento

Salve salve terráqueos, hoje tem um tutorial de Magento bem simples e funcional pra vocês, na verdade é apenas o tratamento de um erro ao paginar pedido no admin do Magento e não uma nova implementação.

Esses dias me deparei com o admin do Magento sem paginação dos pedidos, ou seja, o Magento exibia apenas as primeiras páginas dos pedidos, eu conseguia definir o número de pedidos a ser exibido (20, 50, 100 ou 200) mas quando eu clicava pra ir pra página dois, ele simplesmente não tinha ação.

Isso ocorreu mesmo sem eu fazer qualquer alteração na parte do Grid dos pedidos, simplesmente o problema apareceu do nada.

Erro ao paginar pedido no admin do Magento, como arrumar?

Bom, sem muitas informações sobre o que poderia ter causado o erro, fui dar uma pesquisada na rede pra ver se era algum erro frequente, ou tinha sido algo específico comigo, depois de várias buscas e testes, encontrei uma solução que foi o fim do erro ao paginar pedido no admin do Magento, confira abaixo.

Você deve acessar o seguinte caminho do seu Magento, / lib / Varien / Data / Collection / Db.php, faça o Download do Db.php abra ele e mais ou menos na linha 225 procure pela seguinte função.

public function getSelectCountSql()
 {
 $this->_renderFilters();

 $countSelect = clone $this->getSelect();
 $countSelect->reset(Zend_Db_Select::ORDER);
 $countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
 $countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
 $countSelect->reset(Zend_Db_Select::COLUMNS);

 $countSelect->columns('COUNT(*)');

 return $countSelect;
 }

Substitua a função acima por essa abaixo para arrumar o erro ao paginar pedido no admin do Magento.

ATENÇÃO: Esse é um arquivo do CORE do Magento e você não deve substituir no servidor, logo menos vou explicar o que fazer com o arquivo Db.php

public function getSelectCountSql()
{
 $this->_renderFilters();

 $countSelect = clone $this->getSelect();
 $countSelect->reset(Zend_Db_Select::ORDER);
 $countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
 $countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
 $countSelect->reset(Zend_Db_Select::COLUMNS);

 if(count($this->getSelect()->getPart(Zend_Db_Select::GROUP)) > 0) {
 $countSelect->reset(Zend_Db_Select::GROUP);
 $countSelect->distinct(true);
 $group = $this->getSelect()->getPart(Zend_Db_Select::GROUP);
 $countSelect->columns("COUNT(DISTINCT ".implode(", ", $group).")");
 } else {
 $countSelect->columns('COUNT(*)');
 }
 return $countSelect;
}

Como já dito nesse tutorial, esse arquivo é do CORE do Magento, então ao invés de alterar ele, vamos criar um novo diretório pra que esse arquivo seja alterado, sem mexer no CORE, vá até o seguinte caminho / app / code / local / e caso dentro da sua pasta local não tenha, crie mais a seguinte estrutura de pastas Varien / Data / Collection /, ficando assim o caminho final / app / code / local / Varien / Data / Collection / Db.php

Agora suba o arquivo para seu servidor e pronto, você arrumou o erro ao paginar pedido no admin do Magento, funcionou certinho?

2017-01-24T20:23:35+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x