Magento

Extraindo uma lista com todos os pedidos no Magento

Tutorial ensinando a como exportar os pedidos gerados no Magento para um arquivo CSV, personalizado e com filtros.

Você não precisa instalar um módulo ou desenvolver um para exportar os seus pedidos.

Primeiro passo, crie o arquivo export.php no diretório raiz “root” de sua loja (servidor), faça isso utilizando o FTP.

Coloque o seguinte código no arquivo:

ini_set('memory_limit', '-1');
ini_set('display_errors', '1');
error_reporting(E_ALL);
require 'app/Mage.php';
$app = Mage::app('default');  
set_time_limit(0);  
 
 
$order_collection = Mage::getModel('sales/order')->getCollection();
// $order_collection->getSelect()->where(" vc pode colocar uma condição aqui... ");
$order_collection->load();
$array_to_convert = array();
foreach ($order_collection as $obj) {
  //Exemplo... numero do pedido... $obj->getIncrement_id();
  $array_to_convert[] = array("numeropedido" => $obj->getIncrement_id(), "data_criacao" => $obj->getCreated_at());  
}

Explicando.

Primeira parte do código é responsável por permitir que acessamos as classes do core do Magento em um arquivo externo.

A segunda irá carregar a collection de pedidos “sales/order”, mecanismo que iremos utilizar para extrair os dados.

Na sequência no foreach iremos percorrer todos os pedidos e montar um array secundário contendo apenas os campos que queremos exportar.

Agora vamos para segunda parte.

Gerando o arquivo CSV

Iremos criar uma funções para gerar o nosso CSV. Dentro dela estaremos utilizando a função nativa fputcsv.

Coloque o código a seguir no mesmo arquivo que foi criado acima.

Função para converter um array em CSV.

function array_to_csv(array &$ar)
{
   if (count($ar) == 0) {
     return null;
   }
   ob_start();
   $df = fopen("php://output", 'w');
   fputcsv($df, array_keys(reset($ar)));
   foreach ($ar as $row) {
      fputcsv($df, $row);
   }
   fclose($df);
   return ob_get_clean();
}

Header que irá forçar o navegador a fazer o download do arquivo CSV

$arquivo = "magento_pedidos_csv_" . date("d-m-Y") . ".csv";

$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
 
header("Content-Disposition: attachment;filename={$arquivo}");
header("Content-Transfer-Encoding: binary");

Coloque na sequência o código que executa a função array_to_csv().

echo array_to_csv($array_to_convert);
die();

Pronto, agora basta executar o arquivo pelo navegador e testar se está tudo Ok.

Testado nas versões 1.7 e 1.9.

 

Post Recentes

CNPJ alfanumérico Magento 2: módulo grátis com máscara e validação

Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…

4 dias atrás

CNPJ alfanumérico no WooCommerce: plugin grátis de máscara e validação

A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…

4 dias atrás

Como remover um modulo do Magento 2

Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…

1 ano atrás

Criar um memorando de crédito (cancelar) invoice no Magento 2

Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…

2 anos atrás

Consultando no banco quantidade disponivel para Venda (estoque)

No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…

2 anos atrás

Admin do Magento 2 não acessa

Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…

2 anos atrás