Como corrigir erro 524 do Cloudflare quando tenta exportar do Magento 1.9

Nesse artigo ensinarei como corrigir o erro 524 do Cloudflare quando você tenta exportar em relatório dentro do admin do Magento 1.9.

Se você usa o Cloudflare como CDN para sua loja Magento você já deve ter se deparado com esse erro enquanto tentava exportar dados através da ferramenta de exportação em Sistema > Importar / Exportar > Data Flow – Modelo.

Erro 524 do Cloudflare

Isso acontece porque o Cloudflare limita o tempo de resposta do servidor de origem em 100 segundos. Esse tempo só pode ser aumentado se você possuir o plano Enterprise deles.

Existem duas soluções.

Solução 1

Você tenta reduzir a quantidade de informações que seu relatório precisa diminuido assim o tempo de execução do script para menos de 100 segundos ou

Solução 2

Criar um script PHP relatorio.php e rodar esse script dentro do diretório raiz do Magento no servidor de hospedagem via SSH.

<?php

/*
O script inicia o processo de exportação baseado no número do profile de determinado modelo. 
A função é a mesma que clicar em "Rodar perfil em popup" no backend do Magento.
*/

set_time_limit(0);

$profileId = 1; // Sistema > Importar / Exportar > Dataflow Modelos. Você precisa ir no admin do seu Magento checar essa informação.

require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$profile = Mage::getModel('dataflow/profile');
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
Mage::getSingleton('admin/session')->setUser($userModel);
$profile->load($profileId);
if (!$profile->getId()) {
    Mage::getSingleton('adminhtml/session')->addError('ERROR: Incorrect profile id');
}

Mage::register('current_convert_profile', $profile);
$profile->run();
$recordCount = 0;
$batchModel = Mage::getSingleton('dataflow/batch');
echo "EXPORTAÇÃO COMPLETA. BATCHID: " . $batchModel->getId();

?>

O ID do modelo pode ser encontrado conforme destacado em vermelho na tela abaixo.

ID Modelo Exportação Magento 1.9

Para rodar o script basta você usar a linha de comando no SSH do seu servidor:

usuario@servidor:/caminho/da/instalacao/magento/$ php relatorio.php
Fala Comigo!