Cron do PrestaShop que não funciona: a avaria invisível
Stocks por sincronizar, feeds desatualizados, exportações em falta: um cron mudo não gera qualquer alerta. Porque falha na maioria dos alojamentos e como o fiabilizar.

A avaria de que ninguém dá conta
Um cron do PrestaShop que não funciona não provoca nenhum erro visível. A loja funciona, as encomendas chegam. Mas o feed de produtos enviado aos comparadores tem três semanas, os stocks deixaram de sincronizar com o ERP, os lembretes de carrinho abandonado não saem e a exportação contabilística do mês está vazia.
O comerciante descobre o problema por terceiros: um cliente que encomenda um produto esgotado, ou um contabilista que reclama um ficheiro. Entretanto, acumularam-se várias semanas de estragos.
O equívoco de partida
O módulo ps_cronjobs é um agendador interno, não um disparador. Mantém a lista das tarefas e sabe qual delas deve ser executada, mas não acorda sozinho: é preciso que uma tarefa agendada real, configurada no seu alojamento, chame o URL dele a intervalos regulares.
Muitas instalações ficam por aqui: as tarefas são criadas no back-office, tudo parece correto e nada será alguma vez executado. O módulo propõe por vezes apoiar-se no tráfego dos visitantes para se disparar, o que é imprevisível e inutilizável para uma tarefa que tem de correr a horas fixas.
As cinco causas reais
1. Nenhuma tarefa agendada do lado do alojamento. Verifique no painel de administração do alojamento, secção «tarefas agendadas» ou «cron». Se a lista estiver vazia, já encontrou.
2. A versão errada do PHP. É a armadilha do alojamento partilhado. As tarefas agendadas correm com o PHP de linha de comandos, cuja versão é muitas vezes diferente da que o site usa. O script apanha então um PHP antigo e falha de imediato, sem que ninguém leia a saída. É preciso indicar o caminho absoluto do interpretador certo:
/usr/local/php8.2/bin/php /home/compte/site/modules/ps_cronjobs/cron.php
3. Um token inválido. O URL das tarefas contém um token de segurança. Muda quando o módulo é reinstalado ou quando a configuração é alterada. Todas as tarefas registadas no alojamento passam então a devolver um erro de autorização, em silêncio.
4. Uma chamada bloqueada. Uma loja protegida por autenticação HTTP, por uma regra de firewall aplicacional ou por uma restrição de acesso por endereço IP devolve um erro antes mesmo de chegar ao PrestaShop.
5. Um tempo de execução ultrapassado. Uma tarefa pesada, como a reindexação da pesquisa ou uma exportação de catálogo volumosa, ultrapassa o limite permitido e interrompe-se a meio. O pior cenário: deixa dados processados apenas em parte.
O diagnóstico em três minutos
Teste 1: a tarefa funciona em HTTP? Copie o URL completo da tarefa, token incluído, e abra-o numa janela de navegação privada. Se for executada, o problema não está no PrestaShop, mas no disparo externo.
Teste 2: a linha de comandos funciona? Execute-a por SSH com o caminho absoluto do interpretador de PHP. Uma mensagem de erro de sintaxe indica uma versão de PHP inadequada.
Teste 3: o que diz o registo? Acrescente sempre um redirecionamento da saída na sua tarefa agendada:
wget -q -O - "https://boutique.fr/modules/ps_cronjobs/cron.php?token=XXXX" >> /home/compte/logs/cron.log 2>&1
Sem registo, está a diagnosticar às escuras. É a alteração mais rentável de todo este artigo.
A configuração recomendada
Prefira a chamada HTTP à execução por linha de comandos nas tarefas do PrestaShop. Com o wget ou o curl, o script corre no mesmo contexto do site: mesma versão de PHP, mesmas variáveis de ambiente, mesmas permissões. É a primeira fonte de divergências eliminada.
Espace as tarefas. Três exportações de catálogo disparadas no mesmo minuto saturam o servidor e fazem-se falhar umas às outras. Desfase-as em alguns minutos.
Escolha as horas de menor tráfego para os processamentos pesados, tendo em conta os seus horários reais de venda.
Defina um limite de tempo para os scripts pesados e divida-os por lotes. Uma exportação de 50 000 referências tem de ser processada por blocos, com um ponto de retoma.
Monitorizar, ou nada feito
Um cron mudo continua a ser uma avaria invisível, mesmo bem configurado. A única proteção é monitorizar a sua execução.
O princípio é simples: no fim da execução, a sua tarefa chama um URL de controlo fornecido por um serviço de supervisão. Se a chamada não chegar dentro da janela prevista, recebe um alerta. Fica a saber que a execução não aconteceu, e não apenas que houve um erro — é exatamente isso que falta aqui.
Na falta de uma ferramenta externa, um controlo semanal chega para limitar os estragos: verificar a data do último feed gerado, a data da última exportação contabilística e a atualidade da sincronização de stock.
Sobre o mesmo tema, os e-mails de lembrete que não saem devem-se muitas vezes a um cron mudo e não a um problema de envio: veja o diagnóstico dos e-mails do PrestaShop.
Fiabilizar as suas tarefas agendadas
Auditamos as suas tarefas, corrigimos o respetivo disparo e implementamos a monitorização. Veja a nossa oferta de gestão de loja online.
Leia também
Vulnerabilidade ps_facetedsearch: a atualização PrestaShop que não pode adiar
Uma falha com pontuação 10 em 10 permite assumir o controlo de uma loja através de um simples URL. Veja como confirmar se a sua está exposta e se já foi visitada.
Ler 30 de julho de 2026PrestaShop pirateada: detetar e remover um skimmer bancário
Um skimmer rouba números de cartão durante semanas sem abrandar a loja. Os sinais a procurar, os comandos de diagnóstico e o procedimento de limpeza completo.
Ler 29 de julho de 2026Update Assistant bloqueado: reparar uma atualização do PrestaShop 9
Cache impossível de esvaziar, serviço Symfony inexistente, processo que para a meio: os erros reais do Update Assistant e o método para passar à linha de comandos.
Ler