
Tutorial com código fonte para montar uma lista com os produtos mais visualizados no Magento nos últimos 90 dias.
No código abaixo, estou buscando os produtos mais visualizados nos últimos 90 dias.
/*Qtd de produtos */$qtdProdutos = 5;
$storeId = Mage::app()->getStore()->getId();
/* Data atual */$hoje = time();
/* 90 dias atrás.. altere o 90 para quantidade que você desejar */$ultimo = $hoje - (60*60*24*90);
$de = date("Y-m-d", $ultimo);
$ate = date("Y-m-d", $hoje);
/* Adiciono os filtros na minha collection */$products = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setStoreId($storeId)
->addStoreFilter($storeId)
->addViewsCount($de, $ate)
->setPageSize($qtdProdutos);
foreach($products as $product){
echo $product->getName();
}
Lembrando, se você for carregar o código em um arquivo externo, fora do Magento utilize:
/* Atenção com o caminho completo até o Mage.php */require_once 'app/Mage.php';
umask(0);
Mage::app('default'); Outro fato importante sobre o código é que ele depende que as estatísticas dos relatórios do Magento estejam atualizadas.
Como atualizar as estatísticas: http://docs.magento.com/m1/ce/user_guide/store-operations/reports-refresh.html
Se você não deseja filtrar os mais visualizados por um período, utilize o exemplo abaixo:
$qtdProdutos = 5;
$id_loja = Mage::app()->getStore()->getId();
$productsCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setStoreId($id_loja)
->addStoreFilter($id_loja)
->addViewsCount()
->setPageSize($qtdProdutos);
Mage::getSingleton('catalog/product_status')
->addVisibleFilterToCollection($productsCollection);
Mage::getSingleton('catalog/product_visibility')
->addVisibleInCatalogFilterToCollection($productsCollection);
foreach($products as $product){
echo $product->getName();
}
Site novo há semanas e nenhuma página indexada? Confira a caixinha de visibilidade em Leitura, o noindex no HTML e…
O retorno do array_map voltou com índice 0, 1, 2 e o código que dependia da chave quebrou. Entenda quando…
Dump de 12 GB que demora horas porque arrasta report_event e cron_schedule. Faça o backup em duas passadas, guarde só…
Escreveu a preference e o Magento 2 continua usando a classe original? Confira a área do di.xml, o generated/code e…
Cadastrou Cor direto na aba Atributos do produto e o filtro por atributo vem vazio. Veja como identificar o tipo,…
Precisa de um SELECT no banco do cliente e só tem SSH? O wp db query pega a senha do…
Ver comentários
Roger por favor.. Preciso de ajuds para criar uma listagem filtrando por atributos personalizados, como faço? Muito obrigado!
Julia, boa tarde,
É bem simples, na "collection" utilize o seguinte método: addAttributeToFilter(), exemplo:
$collection->addAttributeToFilter('codigo_atributo', '678678');
Primeiro campo é o código do atributo personalizado / customizado e o segundo o valor.