PS PrestaShop Iniciante

Encomendas Recorrentes e Programadas: documentação PrestaShop 8 e 9

Instalar, agendar e explorar as encomendas recorrentes: do cron diário à ligação de carrinho enviada ao cliente.

Atualizado Versão do módulo 1.1.3

O que faz o módulo

O módulo permite aos seus clientes programarem a repetição de uma encomenda a partir da sua conta: todas as semanas, todos os meses, todos os trimestres, todos os anos, ou segundo um intervalo livre expresso em dias.

Antes de cada data prevista, um planificador envia ao cliente um e-mail com uma ligação segura. Quando o cliente clica nessa ligação, o carrinho é reconstruído nesse preciso momento e o cliente é reencaminhado para o processo de encomenda habitual, onde paga com o meio de pagamento que quiser.

Sem qualquer débito automático. O módulo não guarda nenhum meio de pagamento e não desencadeia qualquer cobrança. Não há, por isso, mandato recorrente a recolher, cartão a tokenizar nem autenticação forte a repetir. O cliente valida e paga cada encomenda ele próprio.

Instalação

  1. No back-office, abra Módulos — Gestor de módulos e depois Instalar um módulo.
  2. Carregue o ficheiro ZIP fornecido, ou copie a pasta dfrecurringorder para o diretório modules/ da sua loja.
  3. Clique em Instalar. As tabelas, os separadores de administração e os valores predefinidos são criados automaticamente.
  4. Configure a tarefa agendada, descrita na secção seguinte. Sem ela, não sairá qualquer e-mail de lembrete.

O módulo acrescenta um menu Encomendas — Encomendas programadas, composto por três ecrãs: a lista das programações, o histórico dos envios e a configuração.

Configurar o planificador

O módulo tem de ser chamado uma vez por dia. Uma única execução diária chega: o planificador trata numa só passagem todas as programações cuja data chegou.

Por URL

A página de configuração do módulo apresenta o URL exato, com o token incluído. É parecido com isto:

https://a-sua-loja.tld/module/dfrecurringorder/cron?token=O_SEU_TOKEN

Este URL pode ser usado com o módulo oficial Tarefas cron do PrestaShop, com um serviço de cron externo ou a partir de uma crontab do servidor:

0 6 * * * wget -q -O - "https://a-sua-loja.tld/module/dfrecurringorder/cron?token=O_SEU_TOKEN"

Em linha de comandos

É o método recomendado num servidor dedicado: evita os limites de tempo de execução do servidor web.

0 6 * * * php /caminho/para/a-loja/modules/dfrecurringorder/cli/run.php --token=O_SEU_TOKEN

A opção --id_shop=N restringe a execução a uma única loja em contexto multiloja. Sem essa opção, são tratadas todas as lojas.

Verificar se está tudo a funcionar

A página de configuração tem um botão Executar o planificador agora. Despoleta uma passagem imediata e apresenta um relatório: número de programações tratadas, e-mails enviados e eventuais falhas. A chamada por URL devolve o mesmo relatório em formato JSON.

O token pode ser regenerado a qualquer momento a partir da página de configuração. Lembre-se então de atualizar a sua crontab, caso contrário as chamadas seguintes serão recusadas.

Configuração do módulo

Experiência do cliente

  • Permitir que os clientes criem as suas programações — apresenta o botão «Programar esta encomenda» no detalhe da encomenda e na página de confirmação. Desative esta opção se preferir criar as programações você mesmo a partir do back-office.
  • Número máximo de programações por cliente — 0 para ilimitado. O valor predefinido é 20.
  • Intervalo mínimo em dias — impede a criação de programações demasiado próximas.
  • Conjunto de ícones do tema — os ícones apresentados na área de cliente. O tema Classic do PrestaShop utiliza os Material Icons, enquanto muitos temas comerciais carregam o FontAwesome. Escolha aquele que o seu tema carrega efetivamente, ou nenhum ícone. Um ícone em falta ou substituído por uma palavra na área de cliente significa apenas que esta definição não corresponde ao seu tema.
  • Produtos excluídos das encomendas programadas — uma lista de identificadores de produtos separados por vírgulas. Estes produtos nunca são copiados para uma programação nem acrescentados a um carrinho reconstruído. Ver a secção sobre ofertas e regras de carrinho.

Frequências disponíveis

Cada frequência ativa-se ou desativa-se de forma independente: diária, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual e personalizada em dias. Só as frequências ativadas aparecem no formulário do cliente.

Por predefinição, estão ativas as frequências semanal, quinzenal, mensal, bimestral, trimestral, semestral e anual. A frequência diária e o intervalo personalizado estão desativados, por servirem sobretudo casos B2B específicos.

E-mails e ligação de pagamento

  • Enviar o e-mail X dias antes da data — valor predefinido aplicado às novas programações. O cliente pode ajustar este prazo na sua. Três dias é um bom ponto de partida: cedo o suficiente para dar tempo de reagir e tarde o suficiente para ficar presente na memória do cliente.
  • Validade da ligação de pagamento — em dias, 14 por predefinição. Passado esse prazo, a ligação apresenta uma mensagem de expiração e convida o cliente a gerar outra a partir da sua conta.
  • Ignorar os produtos indisponíveis — ativado por predefinição. Ver a secção sobre casos especiais.
  • Enviar uma cópia ao comerciante — útil na fase de rodagem, para verificar o aspeto real dos e-mails.

Planificador

  • Programações tratadas por execução — 50 por predefinição. Aumente este valor se o seu volume ultrapassar esse limite diário, ou execute o cron várias vezes por dia.
  • Eliminar todos os dados na desinstalação — desativado por predefinição. Ver a secção Desinstalação.

Propor a recorrência durante a encomenda

Por predefinição, o cliente programa a encomenda depois do facto, a partir de uma encomenda já efetuada. Duas opções facultativas permitem propor-lhe a recorrência mais cedo, no momento da compra. Ambas estão desativadas na instalação: ativá-las é uma decisão, não um efeito secundário de uma atualização.

Opção no processo de encomenda

Uma caixa «Transformar esta compra numa encomenda recorrente» aparece no carrinho e no topo da etapa de pagamento, seguida de um seletor de frequência que propõe apenas as frequências que ativou. O cliente assinala, escolhe o seu ritmo e continua a encomenda normalmente.

A escolha é guardada no carrinho, não na sessão. Isso é importante com os meios de pagamento que reencaminham o cliente para uma página externa: a encomenda é aí muitas vezes validada num retorno de pagamento em que a sessão do cliente já não existe, e uma escolha guardada em sessão perder-se-ia sem qualquer aviso.

A programação só é criada depois de a encomenda estar validada. As moradas, a transportadora e a moeda vêm, por isso, de uma encomenda real, e uma nova tentativa de pagamento não pode criar duas programações. A primeira data é calculada a partir da data da encomenda, segundo a frequência escolhida.

A opção só aparece aos clientes com sessão iniciada, uma vez que uma programação pertence a uma conta de cliente. Respeita igualmente a quota de programações por cliente e a lista de produtos excluídos.

Caixa na ficha de produto

Uma caixa curta indica ao visitante que o produto pode ser encomendado de forma recorrente e explica o princípio em duas frases, sem jargão. Os produtos que constam da lista de exclusão nunca a apresentam.

Se não aparecer nada

Estas duas apresentações assentam em pontos de ligação padrão do PrestaShop. Alguns temas, e sobretudo os módulos de encomenda numa só página, não os fornecem todos. A página de configuração do módulo lista esses pontos de ligação com o respetivo estado e propõe um botão para os registar de novo. Se algum continuar inativo depois dessa tentativa, é porque o seu tema ou o seu módulo de encomenda não o expõe.

Do lado do cliente: programar uma encomenda

O percurso parte sempre de uma encomenda já efetuada, o que garante que os produtos, a morada e a transportadora são coerentes.

  1. O cliente abre uma das suas encomendas a partir do histórico, ou permanece na página de confirmação logo após uma compra.
  2. Clica em Programar esta encomenda.
  3. Ajusta as quantidades, se necessário. Uma quantidade definida a 0 retira o produto da programação.
  4. Escolhe a frequência, a data da próxima encomenda e, se quiser, uma data de fim ou um número máximo de encomendas.
  5. Grava. Um e-mail de confirmação resume a programação.

A programação passa depois a aparecer em A minha conta — As minhas encomendas programadas. A partir desse ecrã, o cliente pode a qualquer momento:

  • alterar a frequência, a data ou as quantidades;
  • colocar em pausa e voltar a ativar, sendo então a data seguinte recalculada para o futuro;
  • eliminar definitivamente a programação;
  • clicar em Encomendar agora para desencadear imediatamente o seu carrinho, sem esperar pela data.

Do lado do comerciante: acompanhar as programações

Lista das encomendas programadas

Apresenta, para cada programação, o cliente, a frequência, o número de produtos, a data seguinte, o número de e-mails já enviados, o número de encomendas realmente efetuadas e o estado. A coluna das encomendas é a medida mais útil: indica quantas programações se transformam efetivamente em volume de negócios.

A ficha detalhada de uma programação permite enviar de imediato a ligação de pagamento ao cliente, o que é prático no apoio ao cliente quando alguém diz não ter recebido o e-mail.

Histórico dos envios

Cada ligação gerada dá origem a uma linha de histórico cujo estado evolui ao longo do percurso:

  • Enviado — o e-mail saiu e a ligação ainda não foi aberta.
  • Ligação aberta — o cliente clicou e foi construído um carrinho.
  • Transformado em encomenda — o carrinho tornou-se uma encomenda. A referência da encomenda é associada automaticamente.
  • Expirado — o prazo de validade terminou sem encomenda.
  • Erro — o envio do e-mail falhou. Verifique a configuração de e-mail da loja.

Na ficha da encomenda

Um painel no fundo da ficha da encomenda lista as programações criadas a partir dessa encomenda, com acesso direto ao seu detalhe.

Como funciona a ligação de pagamento

Compreender este mecanismo ajuda a responder às questões dos seus clientes.

  1. No envio do e-mail, o módulo não cria qualquer carrinho. Gera apenas um token aleatório de 48 caracteres, de utilização única e com data.
  2. Quando o cliente clica, o módulo verifica o token e a sua data de expiração.
  3. Se o cliente não tiver sessão iniciada, é reencaminhado para a página de início de sessão padrão e trazido automaticamente de volta à sua ligação. A ligação nunca autentica o visitante por si só.
  4. Uma vez identificado o cliente, o carrinho é construído a partir da programação, com os preços, promoções, regras de carrinho e stocks do momento.
  5. O cliente é reencaminhado para o processo de encomenda. Um segundo clique na mesma ligação reutiliza o carrinho já criado enquanto este não tiver dado origem a uma encomenda.

É por o carrinho ser construído no clique, e não no envio, que se mantém sempre correto. Um carrinho pré-gerado no momento do e-mail ficaria errado assim que um preço, uma promoção ou um stock mudasse entre o envio e o clique.

Casos especiais

Produto indisponível na data

Com a opção Ignorar os produtos indisponíveis ativada, o produto em causa é simplesmente posto de lado e os restantes artigos continuam encomendáveis. O carrinho só é recusado se nenhum produto estiver disponível: o cliente vê então uma mensagem a convidá-lo a contactá-lo ou a alterar a sua programação.

Se desativar esta opção, uma rutura bloqueia a reconstituição do carrinho. Este comportamento serve as lojas cujas encomendas têm de sair completas ou não sair de todo.

Morada eliminada entre duas datas

Se a morada de entrega guardada na programação tiver sido eliminada pelo cliente, o módulo passa automaticamente para a primeira morada disponível. A morada de faturação segue a mesma lógica. O cliente pode sempre mudar de morada no processo de encomenda.

Ofertas e regras de carrinho

Um produto oferecido por uma regra de carrinho nunca é copiado para a programação. É deliberado: a oferta não foi escolhida pelo cliente e a regra de carrinho acrescenta-a por si própria em cada reconstrução do carrinho, assim que as condições estejam reunidas. Mantê-la na programação faria com que aparecesse duas vezes.

A oferta continua, portanto, a ser dada normalmente em cada data e segue o estado atual da sua regra: se alterar o limiar ou mudar o produto oferecido, a encomenda programada tem isso em conta de imediato.

Se uma oferta for acrescentada por um módulo de terceiros em vez de uma regra de carrinho nativa, a deteção automática não a consegue reconhecer. Acrescente então o identificador do produto à definição Produtos excluídos das encomendas programadas. Esta exclusão aplica-se também às programações existentes, sem que os seus clientes tenham de as recriar.

Fins de mês

Uma programação mensal iniciada a 31 de janeiro não se desvia. O módulo recua a data para o último dia do mês quando este é mais curto: 28 ou 29 de fevereiro e depois 31 de março. O dia de origem fica memorizado, pelo que nunca se perde.

Multiloja

Cada programação está associada à loja onde foi criada. Os e-mails saem com a identidade dessa loja e a ligação de pagamento aponta para o seu domínio.

Fim de uma programação

Uma programação termina automaticamente quando a data de fim é ultrapassada ou quando o número máximo de encomendas é atingido. Passa então ao estado Terminada e deixa de enviar e-mails, continuando consultável no histórico.

Personalizar os e-mails

O módulo fornece dois modelos, em versão HTML e em texto, em sete idiomas: francês, inglês, espanhol, italiano, português, alemão e polaco:

  • dfro_reminder — o lembrete enviado antes de cada data, com a ligação de pagamento.
  • dfro_created — a confirmação enviada na criação de uma programação.

Podem ser alterados em Design — Tema e logótipo — E-mails, ou diretamente na pasta mails/ do módulo. As variáveis disponíveis no lembrete são: nome próprio e apelido do cliente, designação e frequência da programação, data da próxima encomenda, tabela dos produtos, total estimado, ligação de pagamento, ligação de gestão, validade da ligação e nome da loja.

O total apresentado no e-mail é uma estimativa calculada no envio, a título indicativo. O montante realmente faturado é o do carrinho reconstruído no clique. Nunca apresente, por isso, esse total como um compromisso de preço.

Resolução de problemas

Não é enviado qualquer e-mail

Verifique por esta ordem: se a tarefa agendada está mesmo a executar-se, se o token da crontab corresponde ao apresentado na configuração, se existe pelo menos uma programação ativa com a data atingida e se o envio de e-mails da loja funciona. O botão Executar o planificador agora permite isolar rapidamente o problema: se enviar os e-mails, a causa está na tarefa agendada.

A ligação apresenta «Ligação inválida»

O token não existe ou foi cortado pelo cliente de e-mail. Gere uma nova ligação a partir da ficha da programação no back-office.

O cliente fica preso num ciclo na página de início de sessão

Isso acontece quando a ligação é aberta com uma conta diferente da do destinatário. O cliente tem de terminar a sessão e voltar a abrir a ligação.

O carrinho reconstruído está vazio

Todos os produtos da programação estão desativados ou esgotados. Verifique o seu estado no catálogo, ou desative temporariamente a opção de exclusão dos produtos indisponíveis para tornar o diagnóstico explícito.

Desinstalação

Por predefinição, a desinstalação conserva as tabelas e as programações. Uma reinstalação posterior recupera, por isso, a totalidade dos dados. Para eliminar tudo, ative a opção Eliminar todos os dados na desinstalação antes de desinstalar o módulo.

Esta eliminação é definitiva e abrange as programações, as suas linhas de produtos e todo o histórico de envios. Faça uma cópia de segurança da sua base de dados antes de a ativar.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte