
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();
}
Pedido que não fatura e e-mail que não sai porque todo job fica missed: como ler a cron_schedule, conferir o…
Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.
O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…
A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…
Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…
Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…
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.