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.

como exportar os pedidos no magento em uma lista csv personalizada

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.

 

Avalie este artigo!

Clique nas estrelas, para dar uma nota de 1 à 5.

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (No Ratings Yet)
Loading...

Um comentário sobre “Extraindo uma lista com todos os pedidos no Magento

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *